навіщо потрібен нерівномірний apk?


151

Android gradle виробляє apk у двох двійкових файлах: нерівне та вирівняне.

У документі сказано ...

Після підписання APK за допомогою приватного ключа запустіть zipalign на файл. Цей інструмент гарантує, що всі нестиснені дані починаються з певного вирівнювання байтів щодо початку файлу. Забезпечення вирівнювання за 4-байтними межами забезпечує оптимізацію продуктивності при встановленні на пристрої. При вирівнюванні система Android здатна читати файли з mmap (), навіть якщо вони містять двійкові дані з обмеженнями вирівнювання, а не копіювати всі дані з пакету. Перевага - це зменшення кількості оперативної пам’яті, споживаної запущеним додатком.

Схоже, вирівнювання apk настійно рекомендується не поширювати. Для мене я використовую лише вирівняний apk в якості продукту і ігнорую нерівні apk.

Чи має несанкціонований apk якесь особливе використання під час розробки?

Відповіді:


197

Це процес у два етапи. Незрівняний apk - це просто проміжний продукт.

  1. генерується неприєднаний apk
  2. неприєднаний вирівнюється і виробляє вирівняний apk

3
Дякуємо за швидку відповідь. Отже, можна сказати, що неприєднаний apk - це лише тимчасова річ?
Youngjae

1
Правильно. Деякі IDE виробляють його як кінцевий продукт для збирання налагодження, щоб прискорити процес збирання.
flx

2
чи не вирівнювання файлу apk допомагає налагоджувати додаток? Дякую :)
hqt

11
ні, це не так. це в основному той самий вміст, що і вирівняний zip-файл, тільки що межі файлу не вирівняні до блоків 4b.
flx

49

Неприєднаний (підписаний) APK потрібен, оскільки підписання вирівняного apk скасує вирівнювання.

З документів :

Увага: zipalign потрібно виконувати лише після того, як файл .apk підписаний вашим приватним ключем. Якщо виконати zipalign перед підписанням, то процедура підписання скасує вирівнювання.

Дивіться цю відповідь для отримання додаткової інформації. Ось детальний процес збирання: введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.