我的apk是13MB,在安装时占用的空间是25MB。但是,经过一些更改(添加库,创建模块和更好地组织应用程序)后,apk大小已增加到14MB,而odex文件现在为56MB。有没有办法确定尺寸增加的原因?
我有一个root设备。如果有的话,我也可以使用比传统方法更多的方法。我检查了几个博客和论坛。所有这些都解释了odexing和deodex-ing相关的功能。
编辑:odex文件的大小会随着时间的推移而增加。 (现在25MB到81MB)。
This SO Q / A解释了什么是odex,但我找不到任何解释odex文件(缺少更好的词)增长的地方。
一个可能的选择是,当使用应用程序的资源时,app odex文件会生成更多引用以保持启动时间不变/更快?
编辑2 :由于很多人通过建议我检查我的库/依赖关系并减少它们来回答这个问题。
我想强调观察。
在应用程序的下几次启动中安装后文件大小增加。如果是因为添加了库,则APK大小增加,这是完全可以理解的。其余文件(.db,共享首选项等)的大小增加,这是预期。
我无法弄清楚为什么.odex
在安装后会增加,并且在每次启动后都会不断增加。对于.odex文件,此增加的大小仅为 。
我已检查过这些文件,因为我使用的是root设备。
答案 0 :(得分:0)
它增长了,因为你添加了库。也许你只需要一个来自库的函数,但你已经添加了具有大量资源和功能的整个库,所以apk增长了。 关于时间增加:您的程序(或您使用的库)可以缓存图像,网络请求,写入数据库等,因此程序的大小会增加。
答案 1 :(得分:0)
我相信它随着APK文件大小的增长而增长,主要是因为添加了库,图像资源等等。
您可以尝试使用ProGuard缩小APK尺寸,也许odex文件也会缩小。
答案 2 :(得分:0)
尝试在gralde构建文件中设置shrinkResources true
以删除未使用的资源
答案 3 :(得分:0)
问题是
进行一些更改(添加库,创建模块和 更好地组织应用程序
现在,想想这个。
您添加了不同的库。 当库是外部或第三方库时,代码与apk一起打包。但是当库是设备上已有的android框架库时,它们将不会被捆绑在apk中。但是这些将包含在odex文件中,这就是你看到膨胀的原因。
所以我的假设是你使用的附加模块和库有很多新的系统库。或者您在内部使用的库使用系统库。您可以通过尝试删除或使用这些库的最小版本来查看odex文件大小受影响。
中的说明