Размер файла APK не изменился после запуска pngcrush на более чем 1000 изображений
Я сгенерировал релиз APK-файл для игры в слова с изображениями игрового поля и буквы, и его размер составляет 14.157.885 байт.
Затем я запустил pngcrush для 1000 изображений в моем проекте Android Studio, затем "Очистить проект", "Перестроить проект" и, наконец, "Создать подписанный APK..." снова.
Удивительно, но полученный APK-файл имеет больший размер: 14.158.735 байт.
У меня такой же результат с Android Studio на Windows 7 x64 и Mac OS Yosemite.
Ниже вы можете увидеть, как размеры растровых изображений были действительно уменьшены с помощью pngcrush - в журнале git:
Конечно, файл APK - это своего рода ZIP-архив - но почему его размер увеличился?
ОБНОВИТЬ:
Настоящая причина для того, чтобы задать этот вопрос, заключается в том, что я включил сжатый файл SQLite (размер: 4,988,928 байт), используя SQLiteAssetHelper, и беспокоюсь - достаточно ли небольшого размера APK-файла для запуска на старых устройствах Android.
1 ответ
aapt
имеет pngcrush
эквивалентный встроенный, и запускает его на ваших входных файлах как часть процесса упаковки ресурсов. С высоко оптимизированными входными файлами вы можете грабить aapt
о возможности запустить свою собственную оптимизацию.
Если вы предпочитаете использовать свои собственные, вы можете отключить aapt через настройку gradle:
aaptOptions {
cruncherEnabled = false
}
Источник: проблема 65335: aapt может увеличить файлы PNG, если они уже были оптимизированы