Что я могу сделать, чтобы уменьшить фактический размер приложения для Android?

В настоящее время я разрабатываю приложение для Android с использованием Android API Google Maps и, следовательно, сервисов Google Play.

Сгенерированный релиз APK (с использованием proguard) имеет размер около 20 МБ (в зависимости от целевой платформы).

После установки информация о приложении в настройках Android показывает около 44 МБ. Я знаю, что APK сжат/заархивирован, но можете ли вы сказать мне, почему установленное приложение намного больше по сравнению с APK?

Я не загружаю данные с файлами OBB. И все данные хранятся во внутренней памяти.


person Marcel Gangwisch    schedule 29.08.2017    source источник
comment
добавьте только необходимую зависимость.. не весь игровой сервис... и проанализируйте apk через опцию сборки и удалите неиспользуемые ресурсы...   -  person Ajay Mistry    schedule 29.08.2017
comment
Я добавляю только compile 'com.google.android.gms:play-services-maps:11.0.4   -  person Marcel Gangwisch    schedule 29.08.2017


Ответы (1)


Размер приложения увеличивается в основном из-за больших изображений и библиотек. Поэтому у вас есть два варианта:

  1. Проверьте свои изображения и значки и при необходимости уменьшите их размеры. Если вы используете большие png, вы также можете уменьшить их размер с помощью: https://tinypng.com/
  2. Уменьшите свои зависимости. Как я понял, вы добавляете целые игровые сервисы, а не только карты.

Вместо этого вы можете использовать:

compile 'com.google.android.gms:play-services-maps:11.2.0'
person Javanshir    schedule 29.08.2017
comment
Я использую только compile 'com.google.android.gms:play-services-maps:11.0.4'- Я также уменьшил свои png-файлы в папке с ресурсами - вся папка с ресурсами составляет около 9,6 МБ. - person Marcel Gangwisch; 29.08.2017
comment
9,6 МБ уже слишком много, для огромного проекта, над которым я работаю, у нас есть всего ~ 5 МБ для почти 500 файлов. Кроме того, 10 МБ для библиотек и кода тоже слишком много. Вы должны снова проверить свои библиотеки и исключить те, которые не нужны. - person Javanshir; 29.08.2017
comment
хм - я храню несколько плиток png в папке с активами в автономной карте. Это около 1226 png-файлов общим размером 6,4 МБ. Файлы уже сжаты и охватывают только 4-битный цвет макс. - person Marcel Gangwisch; 29.08.2017
comment
Проблема может заключаться в том, что я использую libjsqlite jniLib. Что весьма огромно. Но я уже разделил apk на разные платформы, так что каждая платформа получает свой собственный файл .so. - person Marcel Gangwisch; 29.08.2017