- Menaxhim i avancuar i varianteve të produktit dhe llojeve të ndërtimit duke përdorur Gradle për të optimizuar vendosjen.
- Kontroll i detajuar i SDK-së, hapësirave të emrave dhe ID-ve të aplikacioneve për të siguruar përputhshmërinë dhe veçantinë në Google Play.
- Optimizimi i performancës së IDE-së dhe sistemit të ndërtimit për mjedise me burime të kufizuara.
- Integrimi i bibliotekave native C++ dhe përdorimi i klasës BuildConfig për mjedise dinamike.
Nëse po merreni me zhvillimin e pajisjeve mobile, ndoshta e keni kuptuar se konfigurimi i një versioni të ri nuk është thjesht çështje shtypjeje e butonit "run". Sistemi i ndërtimit Android është motori që merr të gjithë kodin dhe burimet tuaja dhe i transformon ato në një skedar APK ose një Android App Bundle (AAB), të cilat janë paketat që në fund të fundit arrijnë në pajisjet e përdoruesve.
Që e gjithë kjo të funksionojë pa probleme, Android Studio mbështetet në Gradle dhe plugin-in e tij të dedikuar , duke na lejuar të personalizojmë gjithçka, nga nënshkrimi i aplikacionit deri te versionet e sistemit operativ që do të mbështesim. Në fillim nuk është e lehtë, por sapo të mësoni se si të organizoni variantet dhe varësitë tuaja, mund të publikoni versione falas, me pagesë ose provë pa pasur nevojë të dyfishoni projektin tuaj.
Zemra e ndërtimit: Gradle dhe skedarët e tij
Për të menaxhuar procesin e ndërtimit, na duhet të bashkëveprojmë me disa skedarë teksti që përdorin gjuhë si Kotlin DSL ose Groovy. Së pari, kemi Gradle Wrapper (gradlew) , i cili është fantastik sepse siguron që i gjithë ekipi të përdorë të njëjtin version të Gradle, duke parandaluar skenarin tipik "funksionon në makinën time".
Në rrënjë të projektit, gjejmë skedarin settings.gradle.kts , ku i tregojmë Gradle se cilat module janë pjesë e aplikacionit dhe konfigurojmë depot. Pastaj është skedari i nivelit të lartë build.gradle , i cili përcakton versionet e plugin-eve që do të ndahen midis të gjitha moduleve. Por perla e vërtetë është skedari build.gradle në nivel moduli , ku konfigurojmë detajet specifike të aplikacionit, siç janë SDK dhe varësitë.
Zotërimi i SDK-së së Android-it
Konfigurimi i SDK-së është thelbësor për të parandaluar që aplikacioni juaj të rrëzohet në pajisjet më të vjetra ose të bëhet i vjetëruar. compileSdk përcakton se cilat API të Android janë të disponueshme ndërsa shkruani kod; idealisht, gjithmonë duhet të përdorni versionin më të fundit për të përfituar nga veçoritë më të reja. Nga ana tjetër, minSdk është vija e kuqe: çdo pajisje me një version më të ulët se ky nuk do të jetë në gjendje ta instalojë aplikacionin.
Nuk mund ta harrojmë targetSdk , i cili në thelb i tregon sistemit operativ se ne e kemi testuar tashmë aplikacionin në atë version specifik. Nëse pajisja ka një version më të ri të Android-it se versioni ynë i synuar, sistemi do të aktivizojë një modalitet përputhshmërie për të parandaluar që aplikacioni të sillet në mënyrë të çrregullt.
Variantet e produktit dhe llojet e ndërtimit
Këtu gjërat bëhen interesante. Llojet e Ndërtimit Ato shërbejnë për të dalluar fazat e zhvillimit. Si parazgjedhje kemi debuge cila lejon debugging dhe përdor një çelës gjenerik, dhe release, i cili është versioni i optimizuar, i paqartë dhe i nënshkruar për publikun.
Nëse doni të lançoni një version "Lite" dhe një version "Pro", duhet të përdorni Shijet e produkteveKëto lejojnë ripërdorimin e kodit të zakonshëm, por ndryshimin e burimeve ose funksionaliteteve në varësi të versionit. Kur kombinojmë një lloj ndërtimi me një variant produkti, marrim një variant i kompilimit (për shembull, demoDebugPër ta menaxhuar këtë, ne përdorim dimensionet e variantevetë cilat ju lejojnë të gruponi shije të ndryshme nga aplikacioni dhe t'i përzieni ato.
Menaxhimi i ID-ve dhe Hapësirës së Emrave
El ID e aplikacionit Ky është ID-ja e aplikacionit tuaj në Google Play; nëse e ndryshoni pas publikimit, dyqani do të mendojë se është një aplikacion krejtësisht i ri. Është e mundur të përdoret applicationIdSuffix në mënyrë që versioni i debugimit të ketë një ID të ndryshëm dhe të mund të instalohet të dy versionet në të njëjtin telefon celular pa u përplasur.
Hapësira e emrave , nga ana tjetër, përcakton paketën ku gjenerohen klasat R dhe BuildConfig. Edhe pse rekomandohet që hapësira e emrave dhe ID e aplikacionit të jenë të njëjta për të shmangur ndërlikimet, është e mundur t'i ndani ato nëse duhet të riorganizoni kodin burimor pa ndryshuar identitetin e aplikacionit në dyqan.
Nënshkrimi dhe konfigurimi i sigurisë
Një aplikacion publikimi nuk mund të shpërndahet nëse nuk është i nënshkruar. Për këtë, na duhet një ruajtje çelësash dhe një çelës privat. Është shumë e rëndësishme të mos shkruhen fjalëkalimet direkt në skedarin Gradle; praktika më e mirë është t'i ngarkoni ato nga variablat e mjedisit ose një skedar lokal i vetive që nuk është ngarkuar në kontrollin e versionit.
Optimizimi i performancës së IDE-së
Android Studio mund të jetë një konsum i madh i RAM-it. Për ta parandaluar këtë, mund të modifikoni skedarin studio.vmoptions dhe të rrisni madhësinë maksimale të heap-it (Xmx). Nëse kompjuteri juaj po punon me burime të pakta, është më mirë të aktivizoni Modalitetin e Kursimit të Energjisë , të çaktivizoni kontrollet e panevojshme të mbetjeve dhe, mbi të gjitha, të debugoni në një pajisje fizike në vend që të përdorni emulatorin.
Në Windows, softueri antivirus mund ta ngadalësojë procesin e ndërtimit duke skanuar çdo skedar që krijon Gradle. Zgjidhja është të përjashtohen dosjet Gradle , SDK-ja e Android-it dhe projektet nga skanimi në kohë reale për të fituar një rritje të ndjeshme të shpejtësisë.
Duke përdorur BuildConfig dhe Bibliotekat Native
Klasa NdërtoKonfigurimin Është një mjet thelbësor që Gradle e gjeneron automatikisht. Na njofton nëse jemi në modalitet DEBUG o RELEASE përmes kodit, i cili është ideal për fshih regjistrat në prodhim ose ndryshoni URL-në e serverit midis mjedisit të zhvillimit dhe mjedisit live.
Për ata që kanë nevojë për fuqi të papërpunuar, Android Studio lejon integrimin C++ duke përdorur CMake ose ndk-buildNe mund të lidhim projekte të jashtme dhe të kontrollojmë se çfarë. ABI-të (ndërfaqet binare)Ne duam të paketojmë duke përdorur abiFiltersduke parandaluar që skedari përfundimtar të jetë shumë i madh duke përfshirë arkitektura që nuk na duhen.
Organizimi i Bashkësive Burimore
Gradle e organizon kodin në grupe origjinashDrejtoria src/main/ Përmban atë që ndahet nga të gjithë, por ne mund të krijojmë dosje si src/debug/ o src/full/ për të futur kod që ekziston vetëm në atë version. Ekziston një hierarkia e përparësive: skedarët në variantin e ndërtimit kanë përparësi ndaj atyre të tipit të ndërtimit, dhe këta ndaj atyre të variantit të produktit dhe kodit kryesor.
Përmes gjithë këtij ekosistemi të skedarëve të konfigurimit, menaxhimit të memories dhe ndarjes së versioneve, është e mundur të transformohet një projekt i thjeshtë në një infrastrukturë profesionale të aftë për t'u shkallëzuar dhe përshtatur në çdo pajisje Android, duke siguruar që procesi i paketimit të jetë efikas dhe shpërndarja në dyqan të jetë e sigurt.




