- Išplėstinis produktų variantų ir kompiliavimo tipų valdymas naudojant „Gradle“, siekiant optimizuoti diegimą.
- Išsami SDK, vardų erdvių ir programų ID kontrolė, siekiant užtikrinti suderinamumą ir unikalumą „Google Play“.
- IDE ir kūrimo sistemos našumo optimizavimas ribotų išteklių aplinkoje.
- Natūralių C++ bibliotekų integravimas ir „BuildConfig“ klasės naudojimas dinaminėms aplinkoms.
Jei pradedate kurti mobiliąsias programėles, tikriausiai supratote, kad sukurti versiją nėra vien tik mygtuko „Vykdyti“ paspaudimas. „Android“ kūrimo sistema yra variklis, kuris visą jūsų kodą ir išteklius paverčia APK failu arba „Android App Bundle“ (AAB) – paketais, kurie galiausiai pasiekia naudotojų įrenginius.
Kad visa tai vyktų sklandžiai, „Android Studio“ naudoja „Gradle“ ir jam skirtą papildinį , leidžiantį mums pritaikyti viską – nuo programos parašo iki to, kurias operacinės sistemos versijas palaikysime. Iš pradžių tai nėra lengva, bet kai įvaldysite, kaip tvarkyti variantus ir priklausomybes, galėsite išleisti nemokamas, mokamas ar bandomąsias versijas nereikės dubliuoti projekto.
Sukūrimo esmė: „Gradle“ ir jo failai
Norėdami valdyti kūrimo procesą, turime sąveikauti su keliais tekstiniais failais, kurie naudoja tokias kalbas kaip „Kotlin DSL“ arba „Groovy“. Pirma, turime „ Gradle Wrapper“ (gradlew) , kuris yra fantastiškas, nes užtikrina, kad visa komanda naudotų tą pačią „Gradle“ versiją, ir išvengiama įprasto scenarijaus „viskas veikia mano kompiuteryje“.
Projekto šaknyje randame failą „settings.gradle.kts“ , kuriame nurodome „Gradle“, kurie moduliai yra programos dalis, ir konfigūruojame saugyklas. Taip pat yra aukščiausio lygio failas „build.gradle“ , kuriame apibrėžiamos įskiepių versijos, kurios bus bendrinamos tarp visų modulių. Tačiau tikrasis perlas yra modulio lygio failas „build.gradle“ , kuriame konfigūruojame programai būdingą informaciją, pvz., SDK ir priklausomybes.
„Android SDK“ įvaldymas
SDK konfigūravimas yra labai svarbus norint išvengti programos strigimo senesniuose įrenginiuose arba jos pasenimo. „compileSdk“ apibrėžia, kurios „Android“ API yra prieinamos, kol rašote kodą; idealiu atveju visada turėtumėte naudoti naujausią versiją, kad galėtumėte pasinaudoti naujausiomis funkcijomis. Kita vertus, „ minSdk“ yra raudona linija: bet kuris įrenginys, kuriame yra senesnė versija, negalės įdiegti programos.
Negalime pamiršti „ targetSdk“ , kuris iš esmės nurodo operacinei sistemai, kad programėlę jau išbandėme toje konkrečioje versijoje. Jei įrenginyje yra naujesnė „Android“ versija nei mūsų tiksliniame įrenginyje, sistema suaktyvins suderinamumo režimą , kad programėlė neveiktų netinkamai.
Produkto variantai ir konstrukcijos tipai
Štai čia ir pasidaro įdomu. Sukūrimo tipai Jie padeda atskirti vystymosi etapus. Pagal nutylėjimą mes turime debugkuris leidžia derinti ir naudoja bendrinį raktą, ir release, kuri yra optimizuota, užmaskuota ir pasirašyta versija visuomenei.
Jei norite paleisti „Lite“ ir „Pro“ versijas, turite naudoti Produkto skoniaiTai leidžia pakartotinai naudoti įprastą kodą, bet keisti išteklius ar funkcijas priklausomai nuo versijos. Kai sujungiame kūrimo tipą su produkto variantu, gauname kompiliavimo variantas (pvz., demoDebugNorėdami tai valdyti, naudojame variantų matmenyskurie leidžia grupuoti skirtingus skonius iš programėlės ir juos maišyti.
ID ir vardų sričių valdymas
El taikymo ID Tai jūsų programėlės ID „Google Play“ parduotuvėje; jei jį pakeisite po paskelbimo, parduotuvė manys, kad tai visiškai nauja programėlė. Galima naudoti applicationIdSuffix kad derinimo versija turėtų kitą ID ir būtų galima įdiegti abi versijos tame pačiame mobiliajame telefone nesusiduriant.
Kita vertus, vardų erdvė apibrėžia paketą, kuriame generuojamos R ir BuildConfig klasės. Nors rekomenduojama, kad vardų erdvė ir applicationId būtų vienodi, siekiant išvengti komplikacijų, juos galima atskirti, jei reikia pertvarkyti šaltinio kodą nekeičiant programos tapatybės parduotuvėje.
Parašo ir saugumo konfigūracija
Išleidimo programos negalima platinti, jei ji nėra pasirašyta. Tam mums reikia raktų saugyklos ir privataus rakto. Labai svarbu nerašyti slaptažodžių tiesiai į „Gradle“ failą; geriausia praktika yra juos įkelti iš aplinkos kintamųjų arba vietinio ypatybių failo, kuris nėra įkeltas į versijų kontrolę.
IDE našumo optimizavimas
„Android Studio“ gali būti RAM eikvojanti programa. Norėdami to išvengti, galite redaguoti failą „studio.vmoptions“ ir padidinti maksimalų kaupo dydį (Xmx). Jei jūsų kompiuteris veikia su mažai išteklių, geriausia įjungti energijos taupymo režimą , išjungti nereikalingus pūkų patikrinimus ir, svarbiausia, derinti fiziniame įrenginyje, o ne naudoti emuliatorių.
„Windows“ sistemoje antivirusinė programinė įranga gali sulėtinti kūrimo procesą nuskaitydama kiekvieną „Gradle“ sukurtą failą. Sprendimas – neįtraukti „Gradle“ aplankų , „Android SDK“ ir projektų į nuskaitymą realiuoju laiku, kad būtų pasiektas reikšmingas greičio padidėjimas.
Naudojant „BuildConfig“ ir vietines bibliotekas
Klasė Sukurti konfigūraciją Tai esminis įrankis, kurį „Gradle“ generuoja automatiškai. Jis praneša mums, ar esame režime DEBUG o RELEASE per kodą, kuris idealiai tinka slėpti žurnalus gamyboje arba pakeiskite serverio URL tarp kūrimo aplinkos ir realios aplinkos.
Tiems, kuriems reikia neapdorotos galios, „Android Studio“ leidžia integruoti C++ naudojant CMake arba ndk-buildGalime susieti išorinius projektus ir kontroliuoti, ką. ABI (dvejetainės sąsajos)Norime pakuoti naudodami abiFiltersapsaugodami galutinį failą nuo per didelio dydžio, įtraukdami architektūras, kurių mums nereikia.
Šaltinių rinkinių tvarkymas
„Gradle“ kodą sutvarko į kilmės rinkiniaiKatalogas src/main/ Jame yra tai, kas bendrinama visiems, bet galime kurti aplankus, pvz. src/debug/ o src/full/ įterpti kodą, kuris egzistuoja tik toje versijoje. Yra vienas prioritetų hierarchija: kūrimo varianto failai turi pirmenybę prieš kūrimo tipo failus, o šie – prieš produkto varianto ir pagrindinio kodo failus.
Pasitelkus visą šią konfigūracijos failų, atminties valdymo ir versijų skaidymo ekosistemą, paprastą projektą galima paversti profesionalia infrastruktūra, galinčia prisitaikyti prie bet kurio „Android“ įrenginio ir jį pritaikyti, užtikrinant efektyvų pakavimo procesą ir saugų platinimą parduotuvėje.




