前言
Android studio 2.2版本后自帶有一個分析工具:APK Analyzer。這是一個專門分析apk的神器,主要作用如下:
- (重要)直觀的看到apk中各個文件的大小(比如DEX,resource等等)。我們可根據(jù)文件大小信息,減小apk的大小;
- (重要)學(xué)習(xí)大企業(yè)app的命名規(guī)范和目錄架構(gòu)規(guī)范,還可以查看大公司app使用了什么技術(shù)和第三方框架;
- 了解DEX文件的組成;
- 快速查看APK的版本信息(例如androidmanifest.xml等也可以看到);
- 直接比較兩個APK的信息,有對比才有傷害;
如何使用APK Analyzer
使用APK Analyzer有如下三種方式:
第一種,將需要分析的apk拖拽到Android studio中即可;
第二種,若是你項(xiàng)目中已經(jīng)build apk,那么使用project視圖。打開整體project—>app—>bulid—>outputs—>apk—>[XXX].apk,雙擊[XXX].apk即可。其實(shí),只要你的apk在項(xiàng)目中,雙擊即可;

- 第三種,點(diǎn)擊Android studio菜單欄—>build—>Analyze apk,然后選擇apk即可;

APK Analyzer的具體分析
下面,我用最新的知乎apk(4.17.1)演示一下。

首先,圖中第一個紅框的地方,顯示了整個apk的包名,以及版本名。版本名
[XXX]其實(shí)對應(yīng)的是androidmanifest中的android:versionName="[XXX]"。圖中第二個紅框,有兩個size。Raw File Size表示原文件大小,Download Size表示經(jīng)過Google play處理壓縮后的apk大小。分析apk中文件或文件夾的占有比例也是相對于Download Size而言。
圖中第三個紅框,是整個apk的文件結(jié)構(gòu)。我們熟悉的res,AndroidManifest.xml,assets,lib等都在這里。而[XXX].dex可以看到整個項(xiàng)目的目錄框架。

第二個紅框標(biāo)出,我們可以查看dex文件中總共有多少個類,類里面有多少個方法,引用了多少個方法。
第三個紅框可以看出,知乎apk使用了混淆,我們看不到真正的方法名了。
總結(jié)
上述只是講了APK Analyzer的使用,還有很多可以深入的地方等待你去挖掘。
- 比如查看自己開發(fā)的apk文件,哪部分占用的比例較大,是否可以減小apk的體積;
- 比如compare with功能可以簡單比較兩個apk的大小比例。驗(yàn)證你優(yōu)化后的apk和未優(yōu)化的apk,哪部分size減少了,哪部份size反而增大了;
- 通過包名,或者說路徑名,可以看看大公司的框架都封裝了哪些新的技術(shù),然后選擇性的加到自己公司或個人的項(xiàng)目中。
- 看到某個apk的某個效果很贊,可以通過APK Analyzer查看資源文件res,文件夾名稱等窺探該apk是否用了第三方框架展現(xiàn)等等;
- ...
推薦
android APK Analyzer官方介紹
我是如何做到在 5 分鐘之內(nèi)將應(yīng)用大小減少 60% 的