2016-06-01 6 views
1

Я читал много о различных размерах приложений после установки. E.G .: Why apk size increase in different android versionРазмер приложения отличается в разных версиях Android

Но что-то я до сих пор не понимаю. У меня есть приложение (com.onhost.skuska сделано в LibGDX) и на Android 4.3. сразу после установки (например, без дополнительных данных) требуется 17.54 MB и на Android 5.0, Galaxy S6 требуется 30.73 MB.

Сначала я подумал, что речь идет о разном оборудовании или разрешении экрана. Я попытался установить приложение на эмулятор Genymotion S4 с Android версии 4.3 и был более или менее 17,5 МБ. Когда я установил приложение на своем S4 с Android 5.0, размер приложения после установки увеличился до 29,21 МБ.

Я изучил фактические файлы (с помощью 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
  • folder, 8.8 MiB, data/app/com.onhost .skuska-1 /, содержащий:
    • файл, 8120 KiB, base.apk
    • папки, 920 KiB, Lib/x86/содержащий снова: libgdx-freetype.so и libgdx.so

файлы на Android 4.3 выглядит следующим образом:

  • файл, 8924 KiB, /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 KiB, libgdx-freetype.so
    • файл, 244 KiB, libgdx.so

Как мы видим, основное отличие состоит в файле .dex. Я хотел бы спросить вас, есть ли способ сделать размер файла .dex таким же, как на Android 4.3? Или почему есть два раза * .so файлы в Android 5.0?

Большое спасибо за любые предложения по решению этой проблемы.

EDIT: Я использую Proguard для сокращения (без оптимизации или обфускации). EDIT 2: Я также проверил некоторые другие приложения, не запрограммированные в LibGDX, и их версия 5.0 больше, но не так резко.

ответ

1

Причина, по которой они отличаются по размерам, заключается в том, что у Android 5.0 есть дополнительные функции, которые включены в класс.dex по соображениям совместимости (даже если вы их не используете). Это также иногда называют шаблоном. Кроме того, если у вас есть две разные установки, которые оба подписаны по-разному, но которые используют одно и то же имя приложения (com.onhost.skuska), тогда андроид установит оба из них, а не перезапишет первый, а вместо этого добавит -1 к конец (com.onhost.skuska-1) и т.д.

/data/dalvik-cache/x86/[email protected]@[email protected]@classes.dex является кэшировать файл и используется для ускорения загрузки обычно используемых приложений, так что файл apk не нужно извлекать каждый раз.

+0

Большое спасибо за ваш ответ. И вы думаете, что я могу с этим поделать? Я тоже проверил в 6.0, и это кажется нормальным. Я также проверил некоторые другие приложения, не запрограммированные в LibGDX, и их версия 5.0 больше, но не так резко. – Jozef

 Смежные вопросы

  • Нет связанных вопросов^_^