Ak chcete vytvoriť modul v android štúdio vyberte si

Súbor > Nový > Nový modul

Potom sú 2 možnosti. Ak plánujete vytvoriť „čistú“ knižnicu java, uveďte ako typ Java Library v dôsledku toho bude kód takejto knižnice skompilovaný JAR súbor. Je to pohodlné, pretože ho môžete použiť nielen v aplikáciách pre Android. Ak budete používať veci špecifické pre android a potrebujete triedy z balíčkov android.*, tak vytvorte Knižnica Android , ktorý je zostavený do AAR súbor. V tomto prípade budete potrebovať druhú možnosť.

DÔLEŽITÉ: Hodnota minSDKVersion (súbory modulov build.gradle) aplikácie sa musí zhodovať alebo byť väčšia ako hodnota uvedená v module knižnice. Zadaná verzia buildToolsVersion musí byť nastavená v súprave Android SDK. Každý modul knižnice generuje svoju vlastnú triedu prostriedkov (*.R.class). Keď sa do projektu pridajú knižnice Android a projekt sa vytvorí, ich zdroje sa zlúčia, čo môže viesť ku konfliktom. Preto sú v dokumentácii definované nasledujúce konvencie:

  • Ak sa ID prostriedku aplikácie zhoduje s ID prostriedku v knižnici, použije sa prostriedok aplikácie
  • Ak sa ID prostriedku zhoduje v rôznych knižniciach, použije sa prostriedok knižnice, ktorá je uvedená ako prvá v zozname závislostí (umiestnená vyššie v bloku závislostí)
  • Aby sa predišlo konfliktom popísaným vyššie, odporúča sa použiť predponu alebo inú konzistentnú schému pomenovania zdrojov, ktorá je jedinečná pre každý z modulov (alebo jedinečná pre celú aplikáciu ako celok)

Pripojenie knižnice Android

Knižnice Android sú zahrnuté ako závislosti (ak bola knižnica vytvorená ako samostatný projekt v AndroidStudio). Tu sú tiež 2 možnosti:

1. Pridajte skompilovaný súbor AAR (alebo JAR):

Súbor > Nový modul - Importovať balík .JAR/.AAR > Ďalej - zadajte cestu k súboru ARR (alebo JAR) > Dokončiť

2. Alebo importujte knižnicu zo zdroja:

Súbor > Nový > Importovať modul - zadajte cestu k adresáru, kde sa nachádzajú zdroje knižnice > Dokončiť

DÔLEŽITÉ: uistite sa, že názov knižnice pre Android bol pridaný do nastavenia.gradle

Zahrňte „:app“, „:core“, „:personal“, „:client“

a objavil sa v bloku závislostí súboru stavať.gradle aplikácie

Závislosti ( skompilovať projekt(":core") skompilovať projekt(":osobné") skompilovať projekt(":klient") )

Knižnice Android môžu obsahovať zdroje, iné knižnice JAR, vlastné AndroidManifest.xml.

Kompilovaná štruktúra knižnice Android

Kompilovaná knižnica pre Android je bežný archív zip s príponou .arr, ktorý obsahuje nasledujúce požadované súbory a adresáre:

  • /AndroidManifest.xml
  • /classes.jar
  • /res/
  • /R.txt

a voliteľné:

  • /aktíva/
  • /libs/ názov.jar
  • /jni/ abi_name/názov.Tak kde abi_name jeden z podporovaných Android ABI)
  • /proguard.txt
  • /lint.jar


Android Studio: Modul sa nezobrazí v časti „Upraviť konfiguráciu“ (13)

Niekedy sa v Manifeste Androidu vyskytujú chyby, pretože v konfigurácii spustenia/ladenia existuje krížový obrázok, takže skúste zistiť, či Manifest Android nemá v jednom prípade nejaké chyby.

Do Android Studia som importoval projekt s niekoľkými podprojektmi.

Chcem spustiť podprojekt.

Úspešne som z neho urobil podprojekty build.gradle ako modul.

Aby som to spustil, prešiel som na Spustiť > Upraviť konfigurácie > Aplikácia pre Android.

Problém. Keď sa pokúšam vybrať modul, žiadny z nich sa nezobrazí v rozbaľovacej ponuke.

Prečo je toto?

EDIT: Zobrazuje sa ako modul pod Groovy, ale nie v aplikácii pre Android. Ako to môžem získať v aplikácii pre Android?

goto Android >> Gradle Scripts >> Build Gradle (Modul: app)

uistite sa, že prvý riadok tohto súboru je takýto.

Použiť doplnok: "com.android.library"

Pre mňa to bolo opravené jednoduchým reštartovaním Android Studio.. Rovnako ako staré dobré časy Eclipse

V mojom prípade, nováčika, som zareval svoj projekt, neviem ako, ale už to nebude fungovať a sťažoval som sa na manifest, R, všetko. Prišiel som na niektoré ako v mojich nastaveniach. Gradle neobsahuje ":app" len som to pridal, bol som opäť na ceste.

Nakoniec som prišiel na to, prečo sa modul nezobrazuje, keď pridám konfiguráciu pre AndroidTests do modulu com.android.library.

Ak svoj modul knižnice build.gradle v build.gradle aplikácie vytvoríte takto:

Kompilovať projekt(":vaša knižnica")

Pretože modul knižnice je predvolene skompilovaný s režimom vydania, nemôžete na ňom spustiť testy Androidu, takže sa nezobrazí v zozname modulov. Opravil som to nasledujúcou úpravou:

Pridajte nasledujúcu konfiguráciu do svojho modulu knižnice build.gradle:

PublishNonDefault true

build.gradle po zmenách môžete odladiť kompiláciu vašej knižnice úpravou build.gradle vášho aplikačného modulu, napríklad:

Compile project(":yourlibrary") + debugCompile project(path: ":yourlibrary", configuration: "debug") + releaseCompile project(path: ":yourlibrary", configuration: "release")

Potom ho synchronizujte a nájdete ho v zozname.

Zdá sa, že rôzne riešenia fungujú pre ľudí s rozdielom, pretože som práve zatvoril projekt a jeho opätovný import vyriešil problém.

Mal som podobný problém, keď som vybral nadradený adresár svojho projektu, povolil som Zatvorte projekt -> Odstrániť projekt z Android Studio -> Importovať projekt výberom súboru vpravo stavať.gradle .

Počas importu sa uistite, že ste vybrali správny súbor build.gradle.

Uistite sa, že vaše stavať.gradle

Použiť doplnok: "com.android.application"

Po vykonaní zmien znova synchronizujte.

Stáva sa to hlavne pri kopírovaní projektu knižnice a jej budovaní. Riešením by bolo pridať

Použiť doplnok: "com.android.application"

v súbore build.gradle namiesto

Použiť doplnok: "com.android.library"

Potom vykonajte synchronizáciu prechodu

orderEntry type="library" exported="" name="appcompat-v7-19.1.0" level="project" />

Opravil som to pridaním okrajov nastavenia modulu. Zmizli. > otvorte nastavenia modulu > Hranice > Pridajte tváre(znamienko + hore)> Android. Po pridaní tvárí budete mať moduly.

AKTUALIZÁCIA:

Pre najnovšiu verziu gradle Fazety boli odstránené, teraz môžete pridávať moduly priamo. kliknite pravým tlačidlom myši na projekt > otvorte nastavenia modulu > Pridajte modul(v hornej časti znamienka „+“)> Aplikácia pre telefón a tablet(teraz môžete vytvoriť nový modul a prispôsobiť ho).

pridajte svoj model do svojich aplikácií. iml súbor ako: orderEntry type="module" module-name="názov vášhomoudle" exported=""

Keď hovoríme o zásuvných moduloch a modulárnych aplikáciách, máme na mysli predovšetkým bežný používateľský softvér. Modulárny dizajn však môže byť rovnako užitočný pri vývoji rootkitov a backdoorov. Používanie konvenčných prostriedkov na aktualizáciu takéhoto softvéru je príliš bledé a nie vždy možné, ale môžete potichu načítať modul s novými funkciami cez sieť - to je všetko. A ak vložíte kľúčovú funkcionalitu do modulov a vymažete ich ihneď po načítaní, môžete vážne pokaziť životnosť reverzora.

Namiesto úvodu

Klasická Java má triedu s názvom java.lang.ClassLoader . Jeho úlohou je načítať bajtový kód zadanej triedy (súbor s príponou .class) do virtuálneho stroja počas vykonávania aplikácie. Potom môžete vytvoriť objekt tejto triedy a volať jeho metódy pomocou reflexie. Toto je spôsob, ako dynamicky načítať kód, ktorý možno použiť na písanie aplikácií s rozšíriteľnou funkcionalitou alebo jednoducho povedané s podporou pluginov.

Android nemá Java Virtual Machine a žiadnu triedu ClassLoader, ale jeho náprotivok DexClassLoader robí presne to isté, ale s ohľadom na Dalvik bytecode (a súbory .dex namiesto súborov .class). A na rozdiel od desktopovej Javy, kde je jednoduchšie vložiť požadovaný jar súbor do CLASSPATH a nezahrávať sa s dynamickým načítavaním, v Androide tento prístup naozaj prináša množstvo výhod, z ktorých hlavnou je, že funkčnosť aplikácie sa dá rozšíriť a aktualizované bez toho, aby si to používateľ všimol a bez toho, aby sa ho na niečo pýtal. Vaša aplikácia môže kedykoľvek stiahnuť súbor s triedou zo servera, stiahnuť a potom súbor odstrániť.

Okrem toho môžu byť triedy uložené priamo v balíku APK a načítané pri spustení aplikácie. Výhodou tu je, že kód načítaných tried bude oddelený od kódu samotnej aplikácie a bude umiestnený v APK „na nesprávnej adrese“; nástroje ako apktool, ktoré obracáci radi používajú, ich jednoducho neuvidia. Na druhej strane je to skôr spoľahlivá ochrana, pretože bežný reverzor si rýchlo uvedomí, čo je čo.

Nech je to akokoľvek, dynamické načítanie tried je veľmi užitočná vec pri písaní nie celkom „bielych“ aplikácií, takže každý bezpečnostný špecialista by mal vedieť, ako tento mechanizmus funguje a ako sa používa v trójskych koňoch.

Najjednoduchší príklad

// Cesta k archívu jar s našou triedou String modFile = "/sdcard/myapp/module.jar"; // Cesta k súkromnému adresáru aplikácie String appDir = getApplicationInfo().dataDir; // Načítanie súboru z disku DexClassLoader classLoader = new DexClassLoader(modFile, appDir, null, getClass().getClassLoader()); // Načítajte triedu, vytvorte objekt a skúste zavolať metódu run() pomocou reflexie try ( Class c = classLoader.loadClass("com.example.modules.simple.Module"); Metóda m = c.getMethod( "run", null); m.invoke(c.newInstance(), null); ) catch (Exception e) ( e.printStackTrace(); )

Vo všeobecnosti je tu všetko jednoduché: kód načíta jar archív /sdcard/myapp/module.jar s našou triedou, načíta z neho triedu com.example.modules.simple.Module, vytvorí objekt a zavolá run() metóda. Venujte pozornosť trom bodom:

  • DexClassLoader dokáže načítať „jednoduché“ súbory .dex aj archívy jar, pričom posledný z nich je vhodnejší kvôli kompresii a možnosti používať digitálny podpis;
  • druhým argumentom konštruktora DexClassLoader je adresár, ktorý používa na uloženie optimalizovaného bajtkódu (odex), pre jednoduchosť špecifikujeme súkromný adresár samotnej aplikácie;
  • ako argument metódy loadClass musíte vždy zadať adresu triedy spolu s názvom balíka.

Ak chcete otestovať funkčnosť tohto kódu, vytvorte jednoduchý modul:

Package com.example.modules.simple.Module; importovať android.util.Log; modul verejnej triedy ( public void run() ( Log.d("Modul", "Som nažive!!!"); ) )

Nájdite si čas na vytvorenie nového projektu v Android Studio, tento kód môžete zadať do poznámkového bloku a skompilovať ho do archívu jar priamo z príkazového riadku:

Javac -classpath /path/to/sdk/platforms/android-23/android.jar Module.java /path/to/sdk/build-tools/23.0.3/dx --dex --output=module.jar Modul. trieda

Uistite sa, že existujú adresáre platformy/android-23 a build-tools/23.0.3, vo vašom prípade môžu byť ich názvy odlišné.

Ak všetko pôjde hladko, mali by ste skončiť so súborom module.jar. Ostáva už len pridať do aplikácie kód zavádzača, vložiť modul.jar na pamäťovú kartu, zostaviť a spustiť aplikáciu.

Dole s odrazom

Odraz je dobrá vec, ale v tomto prípade len prekáža. Nie je ťažké zavolať jednu metódu bez argumentov, ak však chceme, aby naša aplikácia mala vyvinuté modulové API s mnohými metódami, ktoré majú viacero parametrov, musíme vymyslieť niečo pohodlnejšie. Napríklad použite preddefinované rozhranie, ktoré bude implementovať každý modul.

Aplikovaním tohto prístupu na vyššie uvedený príklad získame nasledujúce tri súbory:

  1. Súbor ModuleInterface.java s popisom API: package com.example.modules; verejné rozhranie ModuleInterface ( public void run(); )
  2. Súbor Module.java s implementáciou nášho modulu: package com.example.modules.simple.Module; importovať android.util.Log; modul verejnej triedy implementuje ModuleInterface ( public void run() ( Log.d("Modul", "Som nažive!!!"); ) )
  3. Nový zavádzač modulov (umiestnite do vašej aplikácie): String modFile = "/sdcard/myapp/module.jar"; String appDir = getApplicationInfo().dataDir; DexClassLoader classLoader = new DexClassLoader(modFile, appDir, null, getClass().getClassLoader()); // Načítajte triedu a vytvorte objekt s rozhraním ModuleInterface ModuleInterface modul; skúste (triedaclass = classLoader.loadClass("com.example.modules.simple.Module"); module = (ModuleInterface) class.newInstance(); ) catch (Výnimka e) ( e.printStackTrace(); ) module.run()

To je všetko. Teraz môžeme s modulom pracovať ako s bežným objektom. Okrem toho samotný systém odmieta moduly (triedy), ktoré sú nekompatibilné s rozhraním vo fáze načítania, takže sa nemusíme pýtať, či modul obsahuje metódu, ktorú potrebujeme.

Keď je veľa modulov

Prišli sme na jeden modul, ale čo ak ich je veľa? Ako viesť evidenciu týchto modulov a nestratiť sa medzi nimi? V skutočnosti je všetko jednoduché - na to môžete použiť hashmap. Opäť zmeňme bootloader:

Pokračovanie dostupné len pre členov

Možnosť 1. Pripojte sa ku komunite „stránky“ a prečítajte si všetky materiály na stránke

Členstvo v komunite počas určeného obdobia vám umožní prístup ku VŠETKÝM materiálom Hackerov, zvýši vašu osobnú kumulatívnu zľavu a umožní vám získať profesionálne hodnotenie Xakep Score!

Moduly poskytujú kontajner pre zdrojový kód vašej aplikácie, zdrojové súbory a nastavenia na úrovni aplikácie, ako je súbor zostavy na úrovni modulu a súbor manifestu systému Android. Každý modul je možné zostaviť, testovať a ladiť nezávisle.

Android Studio používa moduly, ktoré zjednodušujú pridávanie nových zariadení do vášho projektu. Podľa niekoľkých jednoduchých krokov v Android Studio môžete vytvoriť modul, ktorý bude obsahovať kód, ktorý je špecifický pre typ zariadenia, ako je Wear OS alebo Android TV. Android Studio automaticky vytvorí adresáre modulov, ako sú zdrojové a zdrojové adresáre a predvolený súbor build.gradle vhodný pre typ zariadenia. Android Studio tiež vytvára moduly zariadení s odporúčanými konfiguráciami zostavy, ako je napríklad použitie knižnice Leanback pre moduly Android TV.

Táto stránka popisuje, ako pridať nový modul pre konkrétne zariadenie.

Android Studio tiež uľahčuje pridanie knižnice alebo modulu Google Cloud do vášho projektu. Podrobnosti o vytvorení modulu knižnice nájdete v časti Vytvorenie modulu knižnice .

Vytvorte nový modul

Ak chcete do projektu pridať nový modul pre nové zariadenie, postupujte takto:

  1. Kliknite súbor > Nový > Nový modul.
  2. V Vytvoriť nový modul Android Studio ponúka nasledujúce moduly zariadení:
    • Modul telefónu a tabletu
    • Modul Wear OS
    • Modul Android TV
    • sklenený modul
    Vyberte modul pre požadované zariadenie a potom kliknite Ďalšie.
  3. V Nakonfigurujte svoj nový modul do formulára zadajte nasledujúce údaje:
    • názov aplikácie: Tento názov sa používa ako názov vašej ikony spúšťača aplikácií pre nový modul.
    • názov modulu: Tento text sa používa ako názov priečinka, v ktorom sú viditeľné súbory zdrojového kódu a zdrojov.
    • názov balíka: Toto je priestor názvov Java pre kód vo vašom module. Je pridaný ako atribút balíka v súbore manifestu systému Android modulu.
    • Minimálna súprava SDK: Toto nastavenie označuje najnižšiu verziu platformy Android, ktorú modul aplikácie podporuje. Táto hodnota nastavuje atribút minSdkVersion v súbore build.gradle, ktorý môžete neskôr upraviť.

    Potom kliknite Ďalšie.

  4. V závislosti od toho, ktorý modul zariadenia ste vybrali, nasledujúca stránka zobrazuje výber vhodných šablón kódu, ktoré môžete použiť ako svoju hlavnú aktivitu. Kliknite na šablónu aktivity, s ktorou chcete začať, a potom kliknite Ďalšie. Ak aktivitu nepotrebujete, kliknite Pridať žiadnu aktivitu, kliknite Skončiť, a potom máte hotovo.
  5. Ak ste si vybrali šablónu aktivity, zadajte nastavenia aktivity na Prispôsobte aktivitu stránku. Väčšina šablón požaduje názov aktivity, Názov rozloženia, Názov, a zdrojový jazyk, ale každá šablóna má nastavenia špecifické pre aktivitu. Kliknite Skončiť. Keď vytvoríte modul aplikácie so šablónou aktivity, môžete modul okamžite spustiť a otestovať na svojom zariadení.

Android Studio vytvorí všetky potrebné súbory pre nový modul a synchronizuje projekt s novými súbormi gradle modulu. Pridanie modulu pre nové zariadenie tiež pridá všetky požadované závislosti pre cieľové zariadenie do súboru zostavy modulu.

Po dokončení synchronizácie projektu Gradle sa nový modul zobrazí v projektu okno vľavo. Ak nevidíte nový priečinok modulu, uistite sa, že okno zobrazuje zobrazenie Android .

Importujte modul

Ak chcete importovať existujúci modul do svojho projektu, postupujte takto:

  1. Kliknite Súbor > Nový > Importovať modul.
  2. V zdrojový adresár zadajte alebo vyberte adresár modulu (modulov), ktorý chcete importovať:
    • Ak importujete jeden modul, uveďte jeho koreňový adresár.
    • Ak importujete viacero modulov z projektu, uveďte priečinok projektu. Pre každý modul v priečinku sa zobrazí rámček s označením zdrojové umiestnenie a názov modulu. Uistite sa, že Importovať políčko je začiarknuté pre každý modul, ktorý chcete importovať.
    Ak vaše moduly majú iné závislosti, budú uvedené na importovanie pod Ďalšie požadované moduly.
  3. Zadajte požadovaný názov modulu (názvov) do poľa názov modulu polia.
  4. Kliknite Skončiť.

Ďalšie kroky

Po pridaní nového modulu môžete upraviť kód modulu a prostriedky, nakonfigurovať nastavenia zostavy modulu a zostaviť modul. Modul môžete tiež spustiť a ladiť ako akúkoľvek inú aplikáciu.

  • Ak sa chcete dozvedieť o nastaveniach zostavy pre modul, pozrite si Súbor zostavy na úrovni modulu .
  • Ak chcete zostaviť a spustiť konkrétny modul, pozrite si tému Výber a zostavenie iného modulu.

Budete tiež chcieť pridať kód a prostriedky na správnu podporu nového zariadenia. Ďalšie informácie o vývoji modulov aplikácií pre rôzne typy zariadení nájdete v príslušnej dokumentácii:

  • Pre moduly WearOS:
  • Pre moduly Android TV:
  • Pre moduly Glass: Rýchly štart GDK

Pri vývoji nového modulu môžete vytvoriť kód nezávislý od zariadenia, ktorý je už duplikovaný v inom module aplikácie. Namiesto udržiavania duplicitného kódu zvážte presun zdieľaného kódu do modulu knižnice a pridanie knižnice ako závislosti do modulov vašej aplikácie. Ďalšie informácie o vytvorení modulu knižnice a jeho pridaní ako závislosti nájdete v časti

Pri nedávnom Google I/O 2018, medzi mnohými novinkami ohlásil aj pridanie nového formátu aplikácie.

Tento formát sa nazýva Android App Bundle a predstavuje vylepšený spôsob vytvárania vašej aplikácie. S ním môžete jednoducho optimalizovať veľkosť aplikácie bez toho, aby ste museli robiť akékoľvek zmeny v kóde. Android App Bundle obsahuje všetok skompilovaný kód a zdroje a následne odfiltruje, čo nie je potrebné pre konkrétne zariadenie.

Dôležité! Android App Bundle momentálne funguje iba v ukážkovej verzii Android Studio. Najnovšia verzia Android Studio 3.2 Canary k dispozícii .

Formát balíka Android App Bundle

Android App Bundle je súbor (s príponou .aab), ktorý sa nahrá do Googlu. Každý balík obsahuje skompilovaný kód a prostriedky pre všetky aplikačné moduly a podporované konfigurácie zariadení.

Jednoducho povedané, balíky sú podpísané súbory ZIP, ktoré organizujú kód aplikácie a zdroje do modulov.

Z týchto modulov Google Play generuje rôzne súbory APK, ktoré sú poskytované používateľom, ako sú základné súbory APK, súbory APK s dynamickými funkciami, konfiguračné súbory APK a (v prípade zariadení, ktoré nepodporujú rozdelené súbory APK) viaceré súbory APK. Modré adresáre predstavujú kód a zdroje, ktoré služba Google Play používa na vytvorenie konfiguračného súboru APK pre každý modul.

Poznámka: pre každú jedinečnú aplikáciu je potrebné vytvoriť balík, príp applicationID. To znamená, že ak vo svojej aplikácii používate viaceré varianty produktov na vytváranie rôznych súborov APK a každá z týchto vetiev používa jedinečné ID aplikácie, budete musieť pre každú vetvu vytvoriť samostatný balík.

Kód a zdroje pre každý modul sú usporiadané podobne ako štandardné súbory APK, čo dáva zmysel, pretože každý z týchto modulov možno vygenerovať ako samostatný súbor APK. Nižšie si môžete pozrieť podrobnejší popis niektorých súborov a adresárov balíka Android App Bundle:

  • základ/, vlastnosť1/, vlastnosť2/. Každý z týchto adresárov predstavuje aplikačný modul. Základný aplikačný modul je vždy obsiahnutý v základnom adresári balíka. Adresáre s ďalšími funkciami, z ktorých každý má priradený špeciálny názov, sú umiestnené samostatne.
  • súbory Protocol Buffer (.pb). Tieto súbory obsahujú metadáta, ktoré pomáhajú opísať obsah balíka v obchodoch s aplikáciami. Napríklad, BundleConfig.pb, ktorý sa nachádza v koreňovom adresári balíka, poskytuje informácie o samotnom balíku, napríklad o akej verzii stavebné nástroje používané na montáž. Ostatné súbory ako regres.pb a native.pb, popísať, ako by sa mal určitý kód a prostriedky použiť pre rôzne konfigurácie zariadení. Google Play používa tieto informácie na generovanie súboru APK optimalizovaného pre zariadenie používateľa.
  • manifest/. Na rozdiel od súborov APK balíky ukladajú súbor AndroidManifest.xml každého modulu do samostatného adresára.
  • dex/. Na rozdiel od súborov APK balíky ukladajú súbory DEX každého modulu do samostatného adresára.
  • koreň/. Tento adresár ukladá súbory, ktoré sa neskôr presunú do tohto adresára koreň akýkoľvek súbor APK, ktorý obsahuje modul, ktorý obsahuje tento adresár. Napríklad adresár základňa/koreň/ balík môže obsahovať prostriedky Java, ktoré načíta aplikácia pomocou Class.getResources(). Tieto súbory sa neskôr presunú do koreňového adresára APK aplikácie a každého súboru APK, ktorý Google Play vygeneruje. Cesty v tomto adresári sú tiež zachované, to znamená, že podadresáre sa tiež presúvajú spolu s rootom.
    Poznámka: ak je obsah tohto adresára v konflikte s inými súbormi a adresármi v koreňovom adresári súboru APK, Play Console odmietne stiahnutie balíka. Napríklad nebudete môcť zahrnúť adresár root/lib/, pretože bude v konflikte s adresárom lib, ktorý je už v súbore APK.
  • res/, lib/, aktíva/. Tieto adresáre sú identické s adresármi používanými v štandardnom súbore APK. Pri sťahovaní aplikácie Google Play kontroluje tieto adresáre a balíky iba pre súbory, ktoré zodpovedajú konfigurácii cieľového zariadenia.

Vytvorenie balíka aplikácií pomocou aplikácie Android Studio

Vytvorenie balíka pomocou aplikácie Android Studio je veľmi podobné vytváraniu súboru APK. Na zostavenie stačí vybrať z ponuky Zostava - Zostavte balíky/súbory APK > Zostavte balíky a IDE vytvorí balík pre vybratú možnosť zostavenia a umiestni ho do adresára //build/outputs/bundle/.

Ak sa vytvorí balík pre ladiacu verziu aplikácie, Android Studio balík automaticky podpíše pomocou podpisového kľúča ladenia. Ak chcete nahrať balík do služby Google Play, musí byť podpísaný.

Keď Android Studio dokončí vytváranie podpísaného balíka, môžete ho otvoriť a analyzovať. Bundle analýza vám umožňuje kontrolovať obsah a funguje podobne APK Analyzer.

Na vytvorenie balíka aplikácií používa IDE rovnaký open source nástroj s názvom balíkový nástroj, ktoré služba Google Play používa na neskoršiu konverziu balíka na podpísané súbory APK.

Pred nahraním balíka do služby Google Play Console je potrebné ho podpísať. Ak chcete vytvoriť podpísaný balík aplikácií, postupujte takto:


Keď Android Studio dokončí vytváranie podpísaného balíka, môžete ho nájsť a analyzovať výberom príslušnej možnosti vo vyskakovacom upozornení. Ak sa rozhodnete exportovať podpisový kľúč, môžete k nemu rýchlo prejsť kliknutím na šípku nadol v pravom dolnom rohu toastu, čím ho rozbalíte, a potom vyberte Zobraziť exportovaný súbor kľúča.

Nahranie balíka App Bundle do služby Google Play Console

Po vytvorení balíka je možné ho nahrať do služby Google Play a skontrolovať, otestovať alebo zverejniť aplikáciu. Pred začatím práce je potrebné splniť nasledujúce podmienky:

  1. Zaregistrujte sa do programu Podpisovanie aplikácií Google Play.
  2. Ak aplikácia obsahuje moduly dynamických funkcií, môžete si ju stiahnuť a otestovať prostredníctvom interného testovacieho kanála služby Google Play Console. Ak však chcete aplikáciu zverejniť, musíte prijať program Dynamic Feature, ktorý je momentálne vo verzii beta.
  3. Google Play podporuje sťahovanie aplikácií nie väčších ako 100 MB.

Analýza súboru APK pomocou Prieskumníka súborov

Keď sa balík nahrá, Google Play automaticky vygeneruje rozdelené súbory APK a viaceré súbory APK pre všetky konfigurácie zariadení podporované aplikáciou. V službe Play Console môžete pomocou aplikácie App Bundle Explorer zobraziť všetky súbory APK vygenerované službou Google Play; analýza údajov, ako sú podporované zariadenia a úspory vo veľkosti súboru APK; nahrávanie vygenerovaných súborov APK na testovanie.

Aktualizácia aplikácie

Po nahraní aplikácie do Play Console stačí na aktualizáciu aplikácie zvýšiť kód verzie, ako aj vytvoriť a nahrať nový balík. Služba Google Play potom vygeneruje aktualizované súbory APK s novým kódom verzie a podľa potreby ich poskytne.

Záver

Používanie balíka Android App Bundle má veľké výhody na optimalizáciu aplikácií APK. Pomocou tejto metódy sme aktualizovali jednu z našich aplikácií, Wi-Fi Password Manager, pričom sme predvolený súbor APK nahradili balíkom aplikácií. Veľkosť APK súborov sa teda zmenšila o celý megabajt, čo je veľmi dobrý výsledok.

Okrem toho Google v súčasnosti testuje doplnok App Bundle, moduly funkcií Dynamic, pomocou ktorých môžete základný APK rozdeliť na časti, ktoré sa v prípade potreby stiahnu, zatiaľ je táto technológia v beta verzii.

Snáď jedinou nevýhodou balíkov v súčasnosti je potreba použiť ukážkovú verziu Android Studio, ale tento problém je dočasný.