Android Studio提供了 Apk Analyzer功能,它能让你在编译安卓程序完成之后直接看到你的APK文件内部组成。使用Apk Analyzer可以减少你花费在debug DEX文件和资源文件问题上的时间,和帮助你减少你的APK文件体积。同样的,你也可以使用命令行敲入apkanalyzer来使用此功能。
使用Apk Analyzer,你可以使用以下几点功能:
1.查看APK文件中包含的子文件以及大小
2.理解DEX文件的组成
3.快速查看一些文件的最终版本,比如AndroidMainfest.xml
4.对两个APK进行并排视角的比较
Apk Analyzer工具的打开方式:
- 直接把APK文件拖进Android Studio窗口中
- 首先切换到project视图,然后双击build/output/apks目录下的APK文件
- 打开Build->Analyzer Apk ,接着选择到APK文件即可
=================================================
查看文件和文件大小信息
APK文件是一种压缩文件,Apk Analyzer工具把每一个文件或者目录都显示为一个结构实体,视图的结构也就反映了APK内文件和文件夹的目录结构。
APK Analyzer为每一行显示了源文件大小和下载时大小,源文件大小指的是文件存放于磁盘里未压缩时的大小,下载时文件大小显示了压缩后将来推送到谷歌商店里的此条目的大小。%显示了所占总大小的百分比。
如下图:
image.png
查看AndroidMainfest.xml文件
如果你的工程包括了多个AndroidMainfest.xml(比如多渠道打包),或者引用的库包含AndroidMainfest.xml文件,他们将会合并为一个文件打包到APK文件中。manifest文件通常是已二进制的形式存在,但是当你在Apk Analyzer中打开时,将会已XML的形式显示出来。这样你就能直观的查看出在APP编译期间发生了什么改变。例如:可以查看出项目依赖的库中携带的manifest文件如何合并到最终的AndroidMainfest.xml中。
另外,显示器还提供了lint功能,警告和错误提示将会显示在右上角。
image.png
查看DEX文件
通过DEX文件视图你能清楚直观的看到DEX文件中的基础信息,包括 类,包,引用,声明 都会显示出来。这样可以帮助你决定是否使用multiDex技术或者去移除依赖来使总方法数量少于65535限制.
下图展示了一个方法数小于限制的应用,图中列出了在DEX文件中的每一个package,class,的定义方法数量和引用方法数量。引用数量统计了DEX文件引用的所以方法数量,(自己java文件中定义的,依赖库,标准java和android库中)。定义方法数量只显示在一个dex文件中定义方法数量统计。所以它的数量肯定比引用方法数量小。
image.png
DEX视图树操作
1.点击F 显示或者隐藏类属性
2.点击M 显示或者隐藏类方法
3.M/F按钮来隐藏和显示引用包/类/方法/和属性
查看资源文件
大体意思就是查看最终输出的资源,打开resources.arsc可以查看翻译内容。
image.png
APK文件比较
添加之前打包的APK,点击比较后可以查看新编译的APK和原APK发生了那些变化。
image.png
网友评论