2015-09-07 1 views
0

Я создал файл APK выпуска для игровой игры с игровыми карточками и изображениями в виде фрагментов письма, а его размер равен 14.157.885 байтов.Размер файла APK не изменился после запуска pngcrush на более чем 1000 изображений

Затем я запустил pngcrush около 1000 изображений в моем проекте Android Studio, затем «Очистить проект», «Восстановить проект» и, наконец, «Сгенерировать подписанный APK ...».

Удивительно полученный APK файл больше размер: 14.158.735 байт

explorer screenshot

У меня тот же результат с Android Studio на Windows 7 x64 и Mac OS Йосемити.

Ниже вы можете увидеть, как размеры растровых были действительно уменьшается Pngcrush - в журнале мерзавца:

git screenshot

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

UPDATE:

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

+1

Сравнит старое и новое содержание APK и увидеть, как степень сжатия для изображений. – CommonsWare

ответ

5

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

Если вы не хотите использовать свой собственный, вы можете отключить AAPT это через Gradle установки:

aaptOptions { 
    cruncherEnabled = false 
} 

Источник:Issue 65335: aapt can make PNG files larger if they have been already optimized

+0

Так что, другими словами, я не должен использовать * pngcrush * в растровых активах Android? –

+2

«Не должно» - это сильное слово; я скажу, что вряд ли это поможет, и может иметь небольшие негативные последствия. Я бы никуда не денутся. –

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