Почему неуправляемый apk нужен?

Android gradle создает apk в двух двоичных файлах: не выравнивается и выравнивается.

сказал...

Как только вы подписали APK с вашим личным ключом, запустите zipalign в файле. Этот инструмент гарантирует, что все несжатые данные начинаются с определенного выравнивания байтов относительно начала файла. Обеспечение выравнивания по 4-байтным границам обеспечивает оптимизацию производительности при установке на устройство. При выравнивании система Android может считывать файлы с помощью mmap(), даже если они содержат двоичные данные с ограничениями выравнивания, а не копирование всех данных из пакета. Преимуществом является сокращение объема оперативной памяти, потребляемой запущенным приложением.

Похоже, что выровненный apk настоятельно рекомендуется распространять. Для меня я использую только выровненный apk в качестве результата продукта и игнорирую unaligned apk.

Использует ли unlaligned apk какое-либо специальное использование во время разработки?

Ответ 1

Это двухэтапный процесс. Невыраженный apk является всего лишь промежуточным продуктом.

  • генерируется невыровненный apk
  • unaligned выравнивается и создает выровненный apk

Ответ 2

Неподписанный (подписанный) APK необходим, потому что подписание выравниваемого apk отменяет выравнивание.

Из docs:

Предостережение: zipalign должен выполняться только после. подписанный вашим личным ключом. Если вы выполняете zipalign перед подписанием, то процедура подписания отменяет выравнивание.

Подробнее см. этот ответ. Здесь - это подробный процесс сборки: введите описание изображения здесь