Разница между app-debug.apk и app-debug-unaligned.apk

113

В студии Android с вариантом сборки, установленным в режим «отладки», я обнаружил два выхода apk

  • приложение-debug.apk
  • приложение-отладка-unaligned.apk

В чем разница между этими файлами?

Халед Саиф
источник

Ответы:

113

Невыровненный apk - это просто промежуточный apk. Сначала создается невыровненный apk. Затем невыровненный apk выравнивается и создает выровненный apk, который является app-debug.apk. Вы можете прочитать об этом здесь .

Bidhan
источник
75

Короткий ответ:

app-debug-unaligned.apk= Unaligned Signed APK = Согласованный подписанный APK
app-debug.apk(ОЗУ оптимизировано с помощью zipalign)


Длинный ответ

Чтобы понять разницу, нам нужно знать следующие моменты:

Процесс подписания приложения

  • сгенерировать закрытый ключ (keytool)
  • скомпилировать, чтобы получить неподписанный APK -> unaligned unsigned APK
  • Подписать приложение в режиме отладки / выпуска с использованием закрытого ключа (jarsigner) -> неподписанный подписанный APK
  • выровняйте APK (zipalign) -> выровняйте подписанный APK

Процесс всего подписания объясняется здесь .

Зачем нам вообще нужен промежуточный продукт app-debug-unaligned.apk?

согласно документам :

Внимание: zipalign необходимо выполнять только после того, как файл .apk был подписан вашим закрытым ключом. Если вы выполните zipalign перед подписанием, процедура подписания отменит выравнивание.

В чем преимущество? zipalign?

Преимущество заключается в том, что согласованные APK оптимизированы для использования ОЗУ, поэтому они будут потреблять меньше ОЗУ на устройствах. Из документов :

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

SMR
источник