In android studio with build variant set to "debug" mode, I found two outputs of apk
- app-debug.apk
- app-debug-unaligned.apk
What is the differences between those files?
The unaligned apk is just an intermediate apk. First, the unaligned apk is generated. Then, the unaligned apk gets aligned and produces the aligned apk which is the app-debug.apk. You can read more about it over here.
app-debug-unaligned.apk
= Unaligned Signed APK app-debug.apk
= Aligned Signed APK (RAM optimized using zipalign)
To understand the difference we need to know the following points:
The entire signing process is explained here.
app-debug-unaligned.apk
at all?as per the docs:
Caution: zipalign must only be performed after the .apk file has been signed with your private key. If you perform zipalign before signing, then the signing procedure will undo the alignment.
The advantage is that aligned APKs are optimized for RAM usage so they will consume less RAM in the devices. From the docs:
zipalign is an archive alignment tool that provides important optimization to Android application (.apk) files. ....The benefit is a reduction in the amount of RAM consumed when running the application.