不同Android版本的应用尺寸不同

时间:2016-06-01 02:31:10

标签: java android libgdx apk android-install-apk

我在安装后阅读了很多关于不同应用程序大小的内容。 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)的主要文件夹和文件是:

  • file,22 MiB,/ data / dalvik-cache / x86 / data @ app @ com.onhost.skuska-1 @ base.apk @ class.dex
  • 文件夹,912 KiB,/ data / data / com.onhost.skuska / lib /包含:
    • file,668 KiB,libgdx-freetype.so
    • file,244 KiB,libgdx.so
  • 文件夹,8.8 MiB,data / app / com.onhost.skuska-1 /包含:
    • file,8120 KiB,base.apk
    • 文件夹,920 KiB,lib / x86 /再次包含:libgdx-freetype.so和libgdx.so

Android 4.3上的文件如下:

  • file,8924 KiB,/ data / dalvik-cache / data @ app@com.onhost.skuska-2.apk @ class.dex
  • file,8120 KiB,/ data / app / com.onhost.skuska-2.apk
  • 文件夹,912 KiB,/ data / app-lib / com.onhost.skuska-2 /包含:
    • file,668 KiB,libgdx-freetype.so
    • file,244 KiB,libgdx.so

正如我们所看到的,主要区别在于.dex文件。我想问你是否有任何方法可以使.dex文件的大小与Android 4.3相同?或者为什么Android 5.0中有两次* .so文件?

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

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

1 个答案:

答案 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文件。