- Produktu variantu un būvējumu veidu uzlabota pārvaldība, izmantojot Gradle, lai optimizētu izvietošanu.
- Detalizēta SDK, nosaukumtelpu un lietojumprogrammu ID kontrole, lai nodrošinātu saderību un unikalitāti pakalpojumā Google Play.
- IDE un būvēšanas sistēmas veiktspējas optimizēšana resursiem ierobežotām vidēm.
- Vietējo C++ bibliotēku integrācija un BuildConfig klases izmantošana dinamiskām vidēm.
Ja jūs sākat nodarboties ar mobilo ierīču izstrādi, jūs droši vien esat sapratis, ka būvējuma iestatīšana nav tikai pogas “Palaist” nospiešana. Android būvējuma sistēma ir dzinējs, kas visu jūsu kodu un resursus pārveido APK failā vai Android lietotņu komplektā (AAB), kas ir pakotnes, kuras galu galā nonāk lietotāju ierīcēs.
Lai tas viss noritētu gludi, Android Studio izmanto Gradle un tā īpašo spraudni , kas ļauj mums pielāgot visu, sākot no lietotnes paraksta līdz pat atbalstītajām operētājsistēmas versijām. Sākumā tas nav viegli, bet, tiklīdz apgūsiet variantu un atkarību organizēšanu, varēsiet izlaist bezmaksas, maksas vai izmēģinājuma versijas, nedublējot projektu.
Būvēšanas sirds: Gradle un tā faili
Lai pārvaldītu būvēšanas procesu, mums ir jāmijiedarbojas ar vairākiem teksta failiem, kas izmanto tādas valodas kā Kotlin DSL vai Groovy. Pirmkārt, mums ir Gradle Wrapper (gradlew) , kas ir fantastisks, jo nodrošina, ka visa komanda izmanto vienu un to pašu Gradle versiju, novēršot tipisko scenāriju "tas darbojas manā datorā".
Projekta saknē atrodam failu settings.gradle.kts , kurā norādām Gradle, kuri moduļi ir daļa no lietotnes, un konfigurējam repozitorijus. Tad ir augstākā līmeņa fails build.gradle , kurā definētas spraudņu versijas, kas tiks koplietotas starp visiem moduļiem. Taču īstais dārgakmens ir moduļu līmeņa fails build.gradle , kurā konfigurējam lietotnei specifisku informāciju, piemēram, SDK un atkarības.
Android SDK apgūšana
SDK konfigurēšana ir ļoti svarīga, lai novērstu lietotnes avāriju vecākās ierīcēs vai novecošanu. compileSdk nosaka , kuri Android API ir pieejami koda rakstīšanas laikā; ideālā gadījumā vienmēr jāizmanto jaunākā versija, lai izmantotu jaunākās funkcijas. Savukārt minSdk ir robeža: jebkura ierīce ar versiju, kas ir vecāka par šo, nevarēs instalēt lietojumprogrammu.
Nedrīkst aizmirst par targetSdk , kas būtībā norāda operētājsistēmai, ka lietotne jau ir pārbaudīta šajā konkrētajā versijā. Ja ierīcē ir jaunāka Android versija nekā mūsu mērķa ierīcē, sistēma aktivizēs saderības režīmu , lai novērstu lietotnes kļūdainu darbību.
Produkta varianti un konstrukcijas veidi
Šeit lietas kļūst interesantas. Būvēšanas veidi Tie kalpo, lai atšķirtu attīstības stadijas. Pēc noklusējuma mums ir debugkas ļauj veikt atkļūdošanu un izmanto vispārīgu atslēgu, un release, kas ir optimizēta, apslēpta un parakstīta versija publiskai lietošanai.
Ja vēlaties palaist gan “Lite” versiju, gan “Pro” versiju, jums jāizmanto Produkta garšasTie ļauj atkārtoti izmantot kopīgu kodu, bet mainīt resursus vai funkcionalitāti atkarībā no versijas. Apvienojot būvējuma veidu ar produkta variantu, iegūstam kompilācijas variants (piemēram, demoDebugLai to pārvaldītu, mēs izmantojam variantu izmērikas ļauj grupēt dažādas garšas no lietotnes un tās sajaukt.
ID un vārdtelpas pārvaldība
El lietojumprogrammas ID Šis ir jūsu lietotnes ID pakalpojumā Google Play; ja to mainīsiet pēc publicēšanas, veikals uzskatīs to par pilnīgi jaunu lietotni. Ir iespējams izmantot applicationIdSuffix lai atkļūdošanas versijai būtu cits ID un to varētu instalēt abas versijas vienā un tajā pašā mobilajā tālrunī bez sadursmes.
Savukārt nosaukumtelpa definē pakotni, kurā tiek ģenerētas R un BuildConfig klases. Lai gan ieteicams, lai nosaukumtelpa un applicationId būtu vienāda, lai izvairītos no sarežģījumiem, tos var atdalīt, ja nepieciešams pārkārtot pirmkodu, nemainot lietotnes identitāti veikalā.
Paraksta un drošības konfigurācija
Laidiena lietotni nevar izplatīt, ja tā nav parakstīta. Šim nolūkam mums ir nepieciešama atslēgu krātuve un privātā atslēga. Ir svarīgi nerakstīt paroles tieši Gradle failā; labākā prakse ir tās ielādēt no vides mainīgajiem vai lokāla rekvizītu faila, kas nav augšupielādēts versiju kontrolē.
IDE veiktspējas optimizācija
Android Studio var būt RAM noslogojums. Lai no tā izvairītos, varat rediģēt failu studio.vmoptions un palielināt maksimālo kaudzes lielumu (Xmx). Ja jūsu dators darbojas ar maziem resursiem, vislabāk ir iespējot enerģijas taupīšanas režīmu , atspējot nevajadzīgas savārstījuma pārbaudes un, pats galvenais, veikt atkļūdošanu fiziskā ierīcē , nevis izmantot emulatoru.
Operētājsistēmā Windows pretvīrusu programmatūra var palēnināt izveides procesu, skenējot katru Gradle izveidoto failu. Risinājums ir izslēgt Gradle mapes , Android SDK un projektus no reāllaika skenēšanas, lai panāktu ievērojamu ātruma pieaugumu.
Izmantojot BuildConfig un vietējās bibliotēkas
Klase Veidošanas konfigurācija Tas ir būtisks rīks, ko Gradle ģenerē automātiski. Tas mums paziņo, vai esam režīmā DEBUG o RELEASE caur kodu, kas ir ideāli piemērots paslēpt žurnālus ražošanas vidē vai mainiet servera URL starp izstrādes vidi un tiešo vidi.
Tiem, kam nepieciešama neapstrādāta jauda, Android Studio nodrošina integrāciju C++, izmantojot CMake vai ndk-buildMēs varam sasaistīt ārējos projektus un kontrolēt, ko. ABI (binārās saskarnes)Mēs vēlamies iepakot, izmantojot abiFiltersnovēršot galīgā faila pārāk lielu apjomu, iekļaujot arhitektūras, kas mums nav nepieciešamas.
Avotu kopu organizēšana
Gradle sakārto kodu šādi: izcelsmes kopasKatalogs src/main/ Tajā ir tas, ko koplieto visi, bet mēs varam izveidot mapes, piemēram, src/debug/ o src/full/ lai ievietotu kodu, kas pastāv tikai šajā versijā. Ir viens prioritāšu hierarhija: būvējuma varianta failiem ir prioritāte pār būvējuma tipa failiem, un šiem failiem ir prioritāte pār produkta varianta un galvenā koda failiem.
Izmantojot visu šo konfigurācijas failu, atmiņas pārvaldības un versiju sagriešanas ekosistēmu, ir iespējams pārveidot vienkāršu projektu par profesionālu infrastruktūru, kas spēj mērogoties un pielāgoties jebkurai Android ierīcei, nodrošinot efektīvu iepakošanas procesu un drošu izplatīšanu veikalā.




