不同的Android版本的应用程序大小不同

问题描述:

安装后,我正在阅读很多关于不同应用程序的大小。 E.G .: Why apk size increase in different android version不同的Android版本的应用程序大小不同

但是,我仍然不明白。我有一个应用程序(在LibGDX中制作的com.onhost.skuska)和Android 4.3。在安装后立即(例如没有额外的数据),它需要17.54 MBAndroid 5.0,Galaxy S6需要30.73 MB

起初我以为它是关于不同的硬件或屏幕分辨率。我试图在安卓4.3版的S4的Genymotion模拟器上安装该应用程序,它或多或少地是17.5 MB。当我使用Android 5.0在S4上安装应用程序时,安装后的应用程序大小增加到29.21 MB。

我已经调查过安装后的实际文件(在终端上使用find -name“skuska”)。在Android 5.0的Galaxy S6(Genymotion)主文件夹和文件是这些:

  • 文件,22 MIB,/data/dalvik-cache/x86/[email protected]@[email protected]的apk @ classes.dex
  • 文件夹,912 KIB,/data/data/com.onhost.skuska/lib/含有:
    • 文件,668 KIB,libgdx-freetype.so
    • 文件,244 KiB,libgdx.so
  • 文件夹,8.8 MiB,data/app/com.onhost含.skuska-1 /:
    • 文件,8120 KIB,base.apk
    • 文件夹,920 KIB,LIB/86 /再含有:libgdx-freetype.so和libgdx.so

文件在Android 4.3如下:

  • 文件,8924昆明植物研究所,/data/dalvik-cache/[email protected]@[email protected]
  • 文件,8120 KIB,/data/app/com.onhost.skuska-2.apk
  • 文件夹,912 KIB,/data/app-lib/com.onhost.skuska-2/含有:
    • 文件,668昆明植物研究所,libgdx-freetype.so
    • 文件,244昆明植物研究所,libgdx.so

正如我们所看到的主要区别是在.DEX文件。我想问问你有没有办法让.dex文件的大小与Android 4.3相同?或者为什么在Android 5.0中有两次* .so文件?

非常感谢您提出解决此问题的任何建议。

编辑:我确实使用Proguard收缩(没有优化或混淆)。 编辑2:我还检查了一些其他未在LibGDX中编程的应用程序,它们的5.0版本较大,但并不那么显着。

他们是不同尺寸的原因是因为Android 5.0具有其他功能,包括在classes.dex为兼容性原因(即使你不使用它们)。这有时也被称为样板代码。另外,如果你有两种不同的安装方式,但都使用相同的应用程序名称(com.onhost.skuska),那么android将安装它们,而不是覆盖第一个,而是向-1 (com.onhost.skuska-1)等。

/data/dalvik-cache/x86/[email protected]@[email protected]@classes.dex 是一个缓存文件,用于加快常用应用程序的加载速度,以便每次不必提取apk文件。

+0

非常感谢您的回复。你觉得我有什么可以做的吗?我在6.0中查了一下,似乎恢复了正常。我还检查了一些其他未在LibGDX中编程的应用程序,它们的5.0版本较大,但并不那么显着。 – Jozef