optimizacija android aplikacije

Optimizacija android aplikacije

Prvo vprašanje, ki si ga mnogi izmed vas zastavite, je: “Naj optimiziram svojo obstoječo aplikacijo ali zgradim novo?” Medtem ko je vprašanje varljivo preprosto, je lahko odgovor nekoliko bolj zapleten. Odvisno je tudi od dejavnikov, kot so koliko razvojnih virov imate; ali lahko ohranite funkcije v aplikaciji, ki so optimizirane za te naprave; in kakšne vrste scenarijev distribucije želite omogočiti končnim uporabnikom po vsem svetu. Ta članek govori o optimizaciji aplikacij za UX, tole pa preberite, če vas zanima optimizacija spletnih strani za iskalnike.

Obstajajo trije možni scenariji:

Ena aplikacija za vse. U

porabite isto aplikacijo za naprave Android (Go) in vse druge naprave z enako izkušnjo. V tem primeru optimizirate svojo obstoječo aplikacijo, da bo dobro delovala na teh napravah, obstoječi uporabniki pa bodo izboljšali uspešnost teh optimizacij. Ta aplikacija je lahko večbarvna, vendar nima posebnih izkušenj z napravami z nizkim pomnilnikom. Priporočamo vam, da uporabite nov Android App Bundle za do 65% prihrankov v velikosti, ne da bi vam bilo treba ponovno oblikovati kodo.
Ena aplikacija, različni APK-ji.

Uporabite isto aplikacijo za naprave Android (Go izdaja) in vse druge naprave, vendar različne izkušnje. Ustvarite različne APK-je; en APK za ciljanje novega obsega android.hardware.ram.low v primerjavi z APK, ki cilja na vse druge naprave.
Dve aplikaciji.

Ustvarite novo aplikacijo »Lite« in ciljajte naprave Android (Go). Obstoječo aplikacijo lahko zapustite tako, kot je. Aplikacija »Lite« lahko še vedno cilja na vse naprave na vseh področjih, saj ta »lite« aplikacija ne zahteva samo ciljnih naprav Android (Go izdaja).

Obstajajo prednosti in slabosti vsakega od teh, zato bi bilo najbolje, da vse te scenarije ocenite glede na vaše poslovne cilje.

Nasveti za optimizacijo aplikacije

Ko se odločite za strategijo aplikacije, je pri optimizaciji aplikacije za te naprave nekaj ključnih vidikov:

  • Poskrbite, da vaša aplikacija deluje brez ANR-jev in zruši
  • Ciljanje na Android Oreo
  • Ohranjanje nameščene velikosti pod 40 MB za aplikacije in 65 MB za igre
  • Vodenje PSS pod 50 MB za aplikacije in 150 MB za igre
  • Ohranjanje hladnega začetnega časa vaše aplikacije ali igre pod 5 sekundami
  • Potopimo se v vsakega od teh kazalnikov uspešnosti s primeri iz obstoječih razvijalcev Androida.

Prepričajte se, da aplikacija deluje brez ANR-jev in zruši

Študije so pokazale, da lahko napake in zruši ANR (aplikacije, ki se ne odzivajo) imajo velik negativen učinek na zadrževanje uporabnikov in lahko povzročijo visoke stopnje odstranitve. Medtem ko bodo nekateri potrošniki, ki kupujejo telefone Android (Go izdaja), kupovali svoj prvi pametni telefon, bodo pričakovali žilav, čist in učinkovit izziv, ki ne zamrzne telefona. Android Vitals v konzoli Google Play vam omogoča sledenje ANR-jem in zrušitvam ter globoko potopitev v napake, ki vplivajo na določene uporabnike ali vrste naprav. Orodje je bilo nepogrešljivo za mnoge naše razvijalce pri prepoznavanju, preverjanju in odpravljanju težav, ki se pojavljajo pri njihovih aplikacijah.

“Za zmanjšanje hitrosti trčenja in ANR uporabljamo Android vitals in Crashlytics s Firebase za aktivno spremljanje in smo uspeli delovati na ~ 99,9% sejah brez trka in ANR stopnji <0,1%, s čimer smo zmanjšali naše nesreče za 10-krat v primerjavi z naše starejše različice, «pravi Arindam Mukherjee, višji direktor, uporabniška izkušnja in rast na Flipkartu . »Da bi to dosegli, smo sledili postopnemu uvajanju naše aplikacije – spremljanju zrušitev in ANR-jev, obširno z uporabo Nullity Annotations, da bi ugotovili vprašanja o NullPointerException pri zagonu orodja za analizo statične kode. Opravljamo tudi preizkušanje na izdelku za sprostitev ProGuard, ki nam pomaga, da zgodaj v ciklu ujamemo težave, povezane z obupanjem.

Pri diagnosticiranju ANR najdete nekaj običajnih vzorcev:

  • Aplikacija počne počasne operacije, ki vključujejo V / I na glavni niti.
  • Aplikacija opravlja dolg izračun na glavni niti.
  • Glavna nit je sinhrono klicanje povezovalca z drugim procesom in ta postopek traja dolgo časa, da se vrne.
  • Glavna nit je blokirana v čakanju na sinhronizirani blok za dolgo operacijo, ki se dogaja na drugi niti.
  • Glavna nit je v mrtvi točki z drugo nitjo, bodisi v vašem procesu ali prek klica s povezovalnikom. Glavna nit ni samo čakanje na dokončanje dolge operacije, ampak je v zastoju. Za več informacij glejte Deadlock .

Preberite več o diagnosticiranju in reproduciranju zrušitev ter si oglejte ta najnovejši videoposnetek podjetja Flipkart o optimizaciji za Android (izdaja Go):

Ciljajte Android Oreo

Android Oreo (ciljni API 26) vključuje veliko optimizacij virov , kot so omejitve izvajanja v ozadju , ki zagotavljajo, da procesi delujejo pravilno v ozadju, pri čemer telefon brezhibno deluje. Mnoge od teh funkcij so bile posebej zasnovane za izboljšanje življenjske dobe baterije in celotne učinkovitosti telefona ter so ključnega pomena za to, da bodo imeli uporabniki teh naprav veliko izkušenj z vašo aplikacijo. Priporočamo, da si preberete vodnik za selitev, ki ga pripravi Google Play, če vaša aplikacija ali igra še vedno ne cilja na API 26 ali novejšo. Zlasti pozorno spremljajte omejitve izvedbe ozadja in kanale obveščanja . Zapomni si toobjavljene so bile varnostne posodobitve : nove aplikacije, objavljene v konzoli Play, bodo morale ciljati vsaj API 26 (Android 8.0) ali višje do 1. avgusta 2018, posodobitve obstoječih / objavljenih aplikacij pa bodo morale to storiti do 1. novembra 2018. Za izpolnitev teh zahtev boste morali čim prej ciljati na Oreo.

Vgrajena velikost naj bo majhna

Obstaja zelo jasna povezava med velikostjo APK in hitrostjo namestitve : nižja je velikost APK, višje so vaše namestitve. Ljudje na napravah Android (Go izdaja) bodo zelo občutljivi na velikost diska, saj imajo ti telefoni na splošno omejeno zmogljivost shranjevanja. To je eden od razlogov, zakaj bo Play Store v določenih situacijah, kot so rezultati iskanja in oglasi v Trgovini Play, prikazal velikost aplikacije v primerjavi z oceno aplikacije. Medtem ko je Play Store na napravah Android (Go izdaj) ista trgovina Google Play, ki je na voljo uporabnikom na vseh napravah po vsem svetu, izkušnjo v trgovini prilagodimo tam, kjer menimo, da je za uporabnike na teh napravah pomembna.

»Ključni poudarek za našo ekipo Android je bil, da imamo empatijo za uporabnike, ki delajo z omejenimi omrežnimi in napravnimi viri,« pravi AJ Cihla, vodja mednarodne rasti na Tinderju . »Še bolje, z uvedbo paketa Android App smo uspeli zmanjšati še za 20% in to narediti na preprost, trajnosten način, ki se naravno ujema z našim stalnim integracijskim in uvajalnim cevovodom. Na splošno gledamo 27MB APK za naprave Android Go; velik korak naprej od paketa 90MB +, ki smo ga lani distribuirali. “

Zaradi omejitev zmogljivosti na teh napravah je najbolje, da vašo aplikacijo obdržite pod 40 MB in igro pod 65 MB. Mnogi razvijalci storitve Google Play so ugotovili, da je to ključni razlog, zakaj so se odločili za optimizacijo obstoječega APK ali za izdelavo ločene APK, ki je usmerjena na naprave Android (Go).

Tukaj je nekaj predlogov, kako ohraniti majhnost APK:

Z novo aplikacijo Android App takoj poiščite prihranke velikosti. V Googlovem I / O letos smo objavili paket Android App, ki je nova oblika objavljanja v Googlu Play. S paketom aplikacij za Android ustvarite en artefakt, ki vključuje vso prevedeno kodo, vire in izvorne knjižnice aplikacije. Ni treba več graditi, podpisovati, nalagati in upravljati kod različic za več APK-jev. S tem so razvijalci do 65% prihranili v velikosti aplikacij za njihove uporabnike, pri čemer je relativno malo dela vnaprej. Če želite izvedeti več, si oglejte program za Android App .
Zamenjajte datoteke PNG / JPG (če obstajajo) s sredstvi WebP . Z izgubo WebP stiskanja je mogoče izdelati skoraj enake slike z bistveno manjšimi velikostmi datotek. Za vektorsko grafiko uporabite SVG-je. Za več podrobnosti si oglejte Povezave za milijarde: Optimizirajte slike in ta pregled WebP .
Zamenjajte surove avdio formate (npr. WAV) z MP3 ali AAC za vse zvočne vire . Izguba katere koli kakovosti zvoka mora biti za večino uporabnikov neopazna in bo še vedno zagotavljala kakovostno predvajanje / poslušanje zvoka z manj virov.
Zagotovite, da so uporabljene knjižnice ažurne in potrebne . Razmislite o odstranitvi podvojenih knjižnic in posodobitvi opuščenih knjižnic. Če so na voljo, uporabite knjižnice, ki so optimizirane za mobilne naprave, namesto knjižnic, optimiziranih za strežnik. Če želite izvedeti več, si oglejte ClassyShark .
Ohranite DEX v razumnem smislu . Dex koda lahko zavzame precejšen prostor v APK. Razmislite o nadaljnji optimizaciji kode, da zmanjšate velikost APK. Preberite več o zmanjšanju kode in si oglejte ustrezne podrobnosti v smernicah za zgradbo za milijarde .
AliExpress je vedel, da ohranjanje njihovega APK pomeni dober poslovni občutek: ne pozabite, manjši je APK, več namestitev boste dobili . »Da bi ohranili manjšo velikost našega Android Go APK, smo najprej razdelili našo kodo na več modulov, nato pa uporabili okuse izdelkov, da bi definirali posebne Go in redne gradnje,« pravi Donghua Xun, višji Android inženir pri AliExpress. »To nam je omogočilo, da smo izbrali modele, značilne za funkcijo (npr. Video v živo), da bi jih izključili iz naše različice Go. Nato smo uporabili skript Gradle za pakiranje te Go-edition APK, skupaj z našo redno APK, vse iz iste baze kod. Slike smo tudi prepisali v knjižnicah drugih izdelovalcev z lažnimi slikami, ki so veliko manjše velikosti. Vse to delo je povzročilo zmanjšanje velikosti Android Go APK v višini 8,8 MB v primerjavi z običajno APK velikostjo 43 MB. ”
Če vas zanima več o tem, kako lahko svojim uporabnikom zagotovite funkcije na zahtevo (s tem ohranite začetno količino prenosa), izpolnite obrazec za zanimanje .

Poskrbite, da bo vaša spominska sled

Telefoni Android (Go izdaja) so naprave, ki imajo na napravi <1 GB RAM-a. Operacijski sistem je optimiziran za dobro in učinkovito delovanje v okoljih z majhnim številom pomnilnikov in ključni poudarek za razvijalce je zagotoviti, da je njihova aplikacija ali igra optimizirana za učinkovito uporabo pomnilnika. Ko preizkušamo vaš APK, si ogledamo PSS (Proportional Set Size), da vidimo, koliko pomnilnika aplikacija ali igra prevzame hladen zagon na napravi. PSS se meri kot vsota zasebnega pomnilnika vaše aplikacije in delež skupnega pomnilnika, ki ga vaša aplikacija uporablja na napravi.

Sledite spodnjim navodilom, da preizkusite dodelitve pomnilnika:

Ko je aplikacija nameščena in je naprava povezana z delovno postajo / prenosnim računalnikom, zaženite aplikacijo in počakajte, da prispe na pozdravni zaslon ( priporočamo, da počakate 5 sekund, da se prepričate, ali je vse naloženo )

  1. V terminalu zaženite ukaz adb shell dumpsys meminfo <com.test.app> -d (kjer je <com.test.app> pkg_id preizkušene aplikacije, npr. Com.tinder)
  2. Zapišite vrednost v vrstici Skupaj , za stolpec PssTotal (ta vrednost se prikaže v KB -> pretvorite v MB z deljenjem s 1000)
  3. Ponovite korake 2 in 3 večkratno (vsaj 5) krat in povprečno vrednost PssTotal (KB)
  4. Mercado Libre , največja LATAM-ova nakupovalna aplikacija, je lahko usmerjala tako dodelitve pomnilnika kot zahteve glede velikosti APK tako, da je svoja prizadevanja usmerila v arhitekturo svoje aplikacije.

»Da bi zmanjšali velikost našega APK, smo prvič izvedli multi-APK po arhitekturi in gostoti, nato pa smo s pomočjo ProGuarda odstranili vse dodatne razrede ali vire v zunanjih knjižnicah,« pravi Nicolas Palermo, inženir pri Mercado Libre. »Od tam smo se osredotočili na našo kodo in naše vire, tako da smo analizirali, ali smo potrebovali določene knjižnice, in odstranili tiste, ki jih nismo. Vse naše slike so bile, kjer je bilo mogoče, spremenjene v WebP in vse slike, ki niso bile pretvorjene v WebP, so bile stisnjene strogo glede na kakovost, ki smo jo potrebovali. Nazadnje smo uporabili APK Analyzer, da bi izvedeli več o uporabi pomnilnika, da bi zagotovili, da je PSS v sprejemljivem obsegu. ”

»Začel sem s ciljanjem na SDK 26, da bi zagotovil, da uporabniki dobijo najnovejšo izkušnjo z Androidom. Od tam sem našel vse statične funkcije in statične spremenljivke, da vidim, ali so res potrebne in odstranim tiste, ki niso. Prenos vrednosti med Dejavnosti in Fragmenti zamenja javne statične funkcije z javnimi vmesniki, «pravi Michel Carvajal, ustvarjalec proračunovske aplikacije Gastos Diarios 3 . Dodal je: »Prav tako sem našel cikle, kot sta Med in Za, ki so izvajali ukrepe za branje baze podatkov in poskušali večino teh procesov postaviti v asinhrone razrede z AsyncTask. In nazadnje, iskal sem dvoumne stavke SQL, ki bi zamenjali učinkovitejše stavke SQL. Vsi ti elementi skupaj z nekaterimi drugimi so mi skupaj pomagali zmanjšati PSS za skoraj 60%. «

Hranite svoj hladni zagonski čas pod 5 sekundami

Zaznavanje je ključnega pomena. Pri testiranju uporabnikov in študijah ljudje postanejo razočarani po 5 sekundah čakanja na nalaganje aplikacije ali igre, kar vodi do opustitve in odstranitve. To morate obravnavati kot okno, da zagotovite, da boste zajeli uporabnika in jim ne dovolite, da opustijo aplikacijo, potem ko so namestili aplikacijo na telefon. Vedno merimo hladni zagonski čas kot čas, ki je potreben, da je aplikacija popolnoma interaktivna za uporabnika. Najbolje je zagnati teste za hladen zagonski čas po popolnem ponovnem zagonu testne naprave.

»Ko smo gledali na zahtevo po velikosti, smo svoja prizadevanja osredotočili na kompresijski format slik, dolžino zvočnih posnetkov in ločljivost slik,« pravi Amitabh Lakhera, podpredsednica produkcije JetSynthesys, ustvarjalca kriket prvakov Sachin Saga . »Pri optimizaciji časa zagona, zmanjšanju obremenitve podatkov, namestitvi in ​​orodjih za ozadje, smo dosegli velike prihranke časa. Poleg optimiziranja shaderjev iger in izogibanja preverjanjem, kot je profil igralca, datoteke za uravnoteženje iger in posodobitve sile, so se pospešeno zagnali. Odstranjevanje internetne povezave ob zagonu in uporaba orodij za preprečevanje goljufij preprečuje morebitno neprimerno vedenje igralcev in zmanjšuje porabo pomnilnika. «

Ko razmišljate o tem, kako pripraviti aplikacijo za Android (Go izdaja), ne pozabite na različne optimizacije in prilagoditve, kot je opisano zgoraj. Z vsemi storitvami, ki so jih razvijalci naredili za optimizacijo svojih aplikacij in iger z uporabo zgornjih navodil, sem prepričan, da boste lahko dosegli podobne rezultate! Če želite izvedeti več o gradnji za Android Go in o tem, kako optimizirati globalne trge, si oglejte letošnjo sejo Google I / O.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja