2016-06-01 121 views
1

安裝後,我正在閱讀很多關於不同應用程序的大小。 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版本較大,但並不那麼顯着。

回答

1

他們是不同尺寸的原因是因爲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

相關問題