Выравнивание приложения утилитой zipalign

Выравнивание приложения утилитой zipalign

Весьма желательно, чтобы приложение во время своей работы использовало память максимально эффективно. Если приложение содержит несжатые данные (например, некоторые виды изображений или файлы данных), то Android может отобразить эти данные непосредственно в память с помощью вызова mmap() . Однако для этого данные должны быть выровнены по 4-байтовой границе. Процессоры в Android-устройствах являются 32-разрядными, а 32 бита — это как раз 4 байта. Вызов mmap() делает так, что данные из .apk-файла как будто находятся в памяти, но если данные не выровнены по 4-байтовой границе, то вызов не сработает, и придется осуществлять лишнее копирование данных во время выполнения приложения. Утилита zipalign, которая находится в каталоге инструментальных средств Android SDK, просматривает приложение и слегка сдвигает несжатые данные, чтобы они оказались выровненными по границе 4 байтов. При этом размер файла приложения увеличивается, но незначительно. Для выравнивания .apk-файла запустите в окне инструментов следующую команду (рис. 14.4):

zipalign -v 4 имя_входного_файла.apk имя_выходного_файла.apk

Утилита zipalign не изменяет входной файл — именно поэтому при экспорте из Eclipse мы добавляем к имени часть raw, и выходной файл имеет имя, необходимое для развертывания. Если нужно перезаписать существующий файл outfile.apk, укажите опцию -f. При создании выровненного файла zipalign проверяет выравнивание. Поэтому для проверки правильности выравнивания существующего файла можно использовать утилиту zipalign следующим образом:

zipalign -c -v 4 имя_файла.apk

Очень важный момент заключается в том, что выравнивание должно выполняться после подписания — в противном случае подписание может снова сдвинуть данные с границ 4 байтов. Это не означает, что приложение будет неработоспособным, но оно будет занимать больше памяти, чем необходимо.

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий