我在安装后阅读了很多关于不同应用程序大小的内容。 E.G。:Why apk size increase in different android version
但我仍然不明白。我有一个应用程序(在LibGDX中制作的com.onhost.skuska)和 Android 4.3 。安装后立即(例如没有额外数据)需要 17.54 MB , Android 5.0 ,Galaxy S6需要 30.73 MB 。
起初我认为这是关于不同的硬件或屏幕分辨率。我试图在Android版本4.3的版本的Genymotion模拟器上安装应用程序,它或多或少是17.5 MB。当我使用Android 5.0在我的S4上安装应用程序时,安装后的应用程序大小增加到29.21 MB。
我在安装后调查了实际文件(在终端上使用find -name“ skuska ”)。在Android 5.0上,Galaxy S6(Genymotion)的主要文件夹和文件是:
Android 4.3上的文件如下:
正如我们所看到的,主要区别在于.dex文件。我想问你是否有任何方法可以使.dex文件的大小与Android 4.3相同?或者为什么Android 5.0中有两次* .so文件?
非常感谢您提出任何解决此问题的建议。
编辑:我确实使用Proguard进行缩小(没有优化或混淆)。 编辑2:我还检查了一些其他未在LibGDX中编程的应用程序,它们的5.0版本更大但不那么显着。答案 0 :(得分:1)
它们大小不同的原因是因为Android 5.0具有其他功能,这些功能由于兼容性原因而包含在classes.dex中(即使您不使用它们)。这有时也称为样板代码。此外,如果你有两个不同的安装,它们都签名不同,但使用相同的应用程序名称(com.onhost.skuska),那么android将安装它们,而不是覆盖第一个,而是添加-1到结束(com.onhost.skuska-1)等。
/data/dalvik-cache/x86/data@app@com.onhost.skuska-1@base.apk@classes.dex 是一个缓存文件,用于加速常用应用程序的加载,以便每次都不必提取apk文件。