Comparare APK – accesați-o prin butonul din dreapta-susAm făcut multe progrese în ceea ce privește resursele și bibliotecile native, economisind un total de 17MB cu foarte puține modificări în aplicație. Cu toate acestea, pot vedea că dimensiunea DEX-ului nostru a regresat, cu classes2.dex crescând cu 400KB.
Debugging DEX issues
În acest caz, diferența a venit din actualizarea dependențelor noastre la versiuni mai noi și adăugarea de noi biblioteci. Proguard și Multidex erau deja activate pentru compilările noastre, așa că nu se pot face prea multe în legătură cu dimensiunea DEX-ului nostru. Totuși, APK analyzer este un instrument excelent pentru a depana orice problemă cu această configurație, în special atunci când activați Multidex sau Proguard pentru proiectul dvs. pentru prima dată.
Când faceți clic pe orice fișier DEX, veți vedea un rezumat al numărului de clase și metode pe care le definește și al numărului total de referințe pe care le conține (referințele sunt cele care se iau în considerare în limita de 64K într-un singur fișier DEX). În acest exemplu de captură de ecran, aplicația este pe cale să atingă limita, ceea ce înseamnă că va avea nevoie de MultiDex pentru a împărți clasele în fișiere separate în viitorul apropiat.
Puteți detalia pachetele pentru a vedea care dintre ele utilizează toate referințele. În acest caz, putem vedea că biblioteca Support și Google Play Services sunt principalele cauze pentru această situație:
După ce ați activat MultiDex și ați compilat aplicația, veți observa o a doua clasă2.dex (și, eventual, classes3.dex, și așa mai departe). Soluția MultiDex din pluginul Android gradle își dă seama ce clase sunt necesare pentru a porni aplicația dvs. și le pune în fișierul primar classes.dex, dar în cazul rar în care nu funcționează și primiți o excepție ClassNotFoundException, puteți utiliza APK Analyzer pentru a inspecta fișierele DEX și apoi să forțați clasele care lipsesc să fie puse în fișierul DEX primar.
Voi întâlni probleme similare atunci când activați Proguard și utilizați clase sau metode prin reflexie sau din layout-uri XML. APK Analyzer vă poate ajuta la verificarea faptului că configurația Proguard este corectă, permițându-vă să verificați cu ușurință dacă metodele și clasele de care aveți nevoie sunt prezente în APK și dacă sunt redenumite (ofuscate). De asemenea, vă puteți asigura că clasele pe care doriți să dispară sunt de fapt eliminate și nu ocupă numărul prețios de metode de referință.
Suntem curioși să aflăm ce alte utilizări găsiți pentru APK Analyzer și ce alte caracteristici ați dori să vedeți integrate în acest instrument!
.