Fejlesztőkörnyezet
Android Studio
Az Android Studio a hivatalos Android IDE: IntelliJ-alapú szerkesztő, Gradle buildrendszer, SDK Manager, emulátor, valamint dokumentált aláírási és kiadási folyamat.
Az Android Studio az Android alkalmazásfejlesztés hivatalos integrált fejlesztőkörnyezete, amely az IntelliJ IDEA szerkesztőjére és fejlesztői eszközeire épül. Az Androidhoz szükséges kiegészítéseket adja hozzá: Gradle-alapú buildrendszert, gyors emulátort, egyetlen környezetet minden Android-eszközhöz, kódsablonokat, tesztelési eszközöket és lintet, valamint C++ és NDK támogatást. A projekt modulokból áll; egy app modul mappái a manifests, a kotlin+java és a res.
Egy IDE, egy projekt
A buildrendszer alapja a Gradle, az Android-specifikus részt az Android Gradle plugin adja hozzá. Ugyanaz a build fut a menüből és a parancssorból is, a beállításokat pedig szöveges fájlok írják le: build.gradle.kts Kotlin esetén (ez a javasolt), build.gradle Groovy esetén; minden projektnek van egy legfelső szintű és modulonként külön build fájlja.
- A függőségeket a modul szintű szkript nevezi meg, a Maven Centralt az IDE állítja be, és ugyanabból a projektből build variánsokkal több verzió is készíthető.
- A szerkesztő Kotlinra, Javára és C/C++-ra ad kódkiegészítést, fordításkor pedig a lint és az IntelliJ vizsgálatai futnak.
- Hibakereséshez a Logcat ablak, a Layout Inspector, a profilerek és az adb kimenete áll rendelkezésre; a nem használt erőforrásokat a resource shrinking veszi ki a csomagból, a kódoptimalizálást az R8 végzi.
Az SDK és az SDK Manager
Az Android SDK külön telepíthető csomagokból áll, ezeket az SDK Manager kezeli (Tools > SDK Manager), a csomagok pedig az Android SDK Location könyvtárba kerülnek. Az SDK Platforms fülön legalább egy platformverziót telepíteni kell a fordításhoz, célszerű a legfrissebbet, mert így az új funkciók is használhatók, miközben az alkalmazás régebbi verziókon is fut. Az SDK Tools fülön jellemzően ezek kellenek:
- Android SDK Build-Tools az APK és az App Bundle összeállításához, Platform-Tools és Command-Line Tools, köztük az adb.
- Android SDK Platform a fordítási cél, Google USB Driver Windows alatt az adb-s hibakereséshez.
- Android Emulator és Intel vagy ARM rendszerkép, mert rendszerkép nélkül az emulátor nem indul.
Ha nincs grafikus felület, például egy Linux CI szerveren, a sdkmanager parancssori eszköz telepíti a csomagokat, a licencek pedig a sdkmanager --licenses paranccsal fogadhatók el; az elfogadott licencek könyvtára átmásolható másik gépre, utána pedig a Gradle maga is letölti a hiányzó csomagokat.
Az emulátor és a virtualizáció
Az Android Emulator Android eszközöket szimulál a gépen, így nem kell minden verzióhoz fizikai telefont tartani, és az IDE tartalmazza, külön telepítés nem kell hozzá. Minden futó példány egy Android Virtual Device-ot (AVD) használ, amely megadja a szimulált eszköz Android-verzióját és hardveres jellemzőit; az AVD a Device Managerben készül, a futtatás a szokásos Run paranccsal történik.
- A gyorsításhoz az emulátor a gép hardverét használja: grafikus gyorsítás a kirajzoláshoz, VM-gyorsítás a sebességhez. A grafikus mód AVD-nként választható (auto, host vagy szoftveres), a VM-gyorsítás hipervizort igényel.
- A processzornak támogatnia kell a virtualizációs kiterjesztéseket (Intel VT-x vagy AMD-V), Intel és AMD esetekben másodszintű címfordítással (EPT vagy RVI), és VM-gyorsított emulátor nem futtatható másik virtuális gépen belül; nálunk ezért az emulátor és a Docker konténerek ugyanazon a host gépen, együtt élnek.
- Az emulátor dokumentált minimuma: 16 GB RAM, 64 bites Windows 10 vagy újabb, macOS 12 vagy újabb, Linux vagy ChromeOS, valamint 16 GB lemezterület. Az Android Studio dokumentált minimuma Windowson: 64 bites Windows 10, 8 GB RAM (emulátorral 16 GB), 8 GB szabad lemezterület (emulátorral 16 GB), 1280x800 felbontás és virtualizációt támogató processzor; javasolt 32 GB RAM, 32 GB szabad SSD, 1920x1080 és 8 GB VRAM-os GPU. Az ARM processzoros Windows gépek nem támogatottak, és minden további AVD akár 6 GB extra tárhelyet igényelhet.
Aláírás és kiadás
Az Android megköveteli, hogy minden APK digitálisan aláírva legyen a telepítés vagy a frissítés előtt, ezért a kiadási folyamat része a kulcskezelés.
- Fejlesztés közben az IDE a debug tanúsítvánnyal írja alá az alkalmazást, amelyet az SDK eszközei generálnak a debug.keystore fájlba, és amelynek érvényessége 30 év; áruházba ez a kulcs nem alkalmas.
- Kiadáshoz a Build > Generate Signed Bundle/APK menüben készül aláírt Android App Bundle vagy APK. Az új kulcstár .jks fájl a kulcs aliasával, jelszavaival és érvényességi idejével; a kulcsot érdemes legalább 25 évre beállítani, hogy az alkalmazás élettartama alatt ugyanazzal lehessen frissíteni.
- A Play App Signing két kulcsot használ: az app signing key írja alá a felhasználói eszközre kerülő csomagokat és nem változik, az upload key pedig a feltöltött csomag aláírására való, és szükség esetén cserélhető.
- Automatikus buildhez a signingConfigs blokk egy keystore.properties fájlból olvassa a kulcstárat és a jelszavakat, így a build szkript nem tartalmaz titkot; a kimenet a build/outputs könyvtárba kerül.
Tovább olvasás
A CyberElectrónál a saját Android alkalmazásunk Kotlin projekt Gradle builddel, Windows-os munkaállomáson, SDK-val és emulátorral, a kiadás előtti aláírás ugyanebben az IDE-ben történik.