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ó.)

apk-kat

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.