Размер файла 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:

скриншот git

Конечно, файл APK - это своего рода ZIP-архив - но почему его размер увеличился?

ОБНОВИТЬ:

Настоящая причина для того, чтобы задать этот вопрос, заключается в том, что я включил сжатый файл SQLite (размер: 4,988,928 байт), используя SQLiteAssetHelper, и беспокоюсь - достаточно ли небольшого размера APK-файла для запуска на старых устройствах Android.

1 ответ

Решение

aapt имеет pngcrush эквивалентный встроенный, и запускает его на ваших входных файлах как часть процесса упаковки ресурсов. С высоко оптимизированными входными файлами вы можете грабить aapt о возможности запустить свою собственную оптимизацию.

Если вы предпочитаете использовать свои собственные, вы можете отключить aapt через настройку gradle:

aaptOptions {
    cruncherEnabled = false
}

Источник: проблема 65335: aapt может увеличить файлы PNG, если они уже были оптимизированы

Другие вопросы по тегам