Tegye diétára az APK-kat
Az előző cikkben arról beszéltünk, hogyan lehet csökkenteni az Android-alkalmazások méretét a fel nem használt erőforrások megszüntetésével. Cyril Mottier blogjában találtam egy nagyon érdekes cikket, amely számos tippet tartalmaz az APK méretének csökkentésére és a kód optimalizálására a gyártásban. Ezután folytatjuk a fontos részek lefordítását.
12 m. (2413 szó.)

Sándor polgármester
Adattudós és számítógépes tudós. A blog készítője.
Az előző cikkben arról beszéltünk, hogyan lehet csökkenteni az Android-alkalmazások méretét a fel nem használt erőforrások megszüntetésével. A blogon Cyril Mottier Találtam egy nagyon érdekes cikket, amely számos tippet tartalmaz az APK méretének csökkentésére és a kód optimalizálására a gyártásban. Ezután folytatjuk a fontos részek lefordítását:
Nem titok, hogy az alkalmazások egyre nagyobb helyet foglalnak el. Az első alkalmazások néhányat elfoglaltak 2 MB az Android eredeti verzióiban. Most elég gyakori olyan alkalmazásokat látni, amelyek súlya 10 és 20 MB között van. Ez a méretnövekedés mind a felhasználói elvárások, mind a fejlesztők tapasztalatszerzésének közvetlen következménye. A méret növekedésének fő okai APK-k vannak:
- További dpi kategóriák ([l | m | tv | h | x | xx | xxx] dpi).
- Az Android platform, a fejlesztőeszközök és a könyvtár ökoszisztéma fejlődése.
- A szüntelen felhasználói elvárások a jobb minőségű grafikus interfészek (UI) iránt.
- stb stb.
Könnyű alkalmazásokat tegyen közzé a A Play Áruház jó gyakorlat, hogy minden jó programozónak figyelnie kell az alkalmazás megtervezésekor. Miért?.
- Először is, mert szinonimája egy egyszerű, karbantartható és jövőbiztos kódalapnak.
- Másodszor, mivel a programozók általában inkább a Play Store jelenlegi korlátja alatt maradnak, 50 MB/per APK ha nem akar további letöltéseket használni.
- Végül, mivel a korlátozások világában élünk:
- Korlátozott sávszélesség.
- Korlátozott lemezterület.
- stb.
Minél kisebb az APK mérete, annál gyorsabb a letöltési sebesség, annál alacsonyabb a felhasználói csalódás, és ami a legfontosabb, annál jobbak az értékelések.
Sok esetben (ha nem minden esetben) kötelező a méret növekedése, hogy megfeleljen a felhasználói igényeknek és elvárásoknak. Mindazonáltal, Cyril meg van győződve arról, hogy az APK súlya általában gyorsabban nő, mint a felhasználói elvárások. Valójában a legtöbb alkalmazás A Play Áruház kétszer vagy többet foglalnak el, mint kellene. Néhány technikát/szabályt, amelyek felhasználhatók az alkalmazás végleges méretének csökkentésére, az alábbiakban tárgyaljuk.
Optimalizálás előtt fontos megérteni az APK formátumot. Nagy vonalakban a APK ez egy archivált fájl, amely több fájlból áll, tömörítve. Programozóként könnyedén megtekintheti annak tartalmát, kicsomagolva az unzip paranccsal .
Ez az, amit a APK kibontás után:
A fenti tartalom nagy részét minden programozónak ismernie kell. Ez tükrözi a projekt szerkezetét, amely a fejlesztés során megfigyelhető./asset,/lib,/res, AndroidManifest.xml. A class.dex tartalmazza a kód fordított verzióját (dex) a Java-ban és az resources.arsc az előre lefordított erőforrásokat, például bináris XML-t (értékek, XML-rajzolók stb.).
Mert a APK ez egy egyszerű archivált fájl, ez azt jelenti, hogy két mérete van, a tömörített és a kibontott méret. Mindkettő fontos, de ebben a cikkben a tömörített méretre fogunk összpontosítani. Minél kisebb az APK, annál kisebb a kibontott verzió.
Ezt különféle technikákkal lehet megtenni. Mivel az egyes alkalmazások eltérőek, nincs abszolút szabály, hogy "karcsúbb" legyen APK. Azonban a APK 3 komponensből áll, amelyekre tudunk hatni:
- Java forráskód.
- Források/eszközök
- Natív kód
Az alábbi tippek minimalizálják a komponensek által felhasznált helyet. Így minimalizálva az APK méretét.
Legyen megfelelő higiéniai kód
Valószínűleg nagyon nyilvánvaló, de a tiszta kód használatának szokása az első lépés a végső alkalmazás méretének csökkentésében. - Ismerje a kódját, mint a tenyerét. Szabaduljon meg az összes fel nem használt függőségi könyvtárból. Tedd jobbá a kódot napról napra. Tisztítsa folyamatosan. A tiszta és naprakész kódbázis fenntartására való összpontosítás általában a legjobb módszer a gyártásra APK-k kisebb csak azt tartalmazza, ami feltétlenül szükséges az alkalmazáshoz.
Ennek elérése általában könnyebb, ha a projektet a semmiből kezdi. Nehezebb az idősebb vázlattal szemben. Valójában a nagy történelmi háttérrel rendelkező projektek általában elhalt és/vagy gyakorlatilag haszontalan kóddarabokkal foglalkoznak. Szerencsére vannak olyan eszközök, amelyek segítenek a mosásban ...
Futtassa a Proguard-ot
Proguard egy rendkívül hasznos eszköz, amely lefedi, optimalizálja és összehúzza a kódot fordításkor. A méret csökkentésének egyik fő jellemzője a fa rázása. Proguard alapvetően az összes könyvtárat átjárja kóddal a fel nem használt darabok felderítésére. Minden, amit talál (vagyis a fel nem használtakat), eltávolításra kerül a APK végső. Proguard nevezze át a mezőket, osztályokat és interfészeket is, hogy a kód a lehető legkönnyebb legyen.
Ahogy sejtetted Proguard rendkívül hasznos és hatékony. De nagy hatalommal jár a nagy felelősség. Sok fejlesztő fontolgatja Proguard nagyon idegesítő eszköz, mert alapértelmezés szerint megtöri azokat az alkalmazásokat, amelyek nagyban támaszkodnak a reflexióra. A konfigurálás a fejlesztők feladata Proguard annak meghatározása, hogy mely osztályokban, mezőkben stb végezhet optimalizálást.
Használja széles körben a Lint alkalmazást
Proguard Java oldalon működik. Sajnos az erőforrás oldalon nem működik. Ennek következménye, hogy ha a res/drawable fájlban a my_image képet nem használják, Proguard csak távolítsa el a referenciát az R osztályból, de ne képet.