APK Android biasanya berisi hal-hal ini.
assets/
lib/
META-INF/
res/
AndroidManifest.xml
classes.dex
Setelah instalasi, file APK disalin ke /data/app
, dan classes.dex
diekstraksi dan "dioptimalkan" dengan menjalankannya dex2oat
(di Android 5+ lib/
juga diekstraksi). Hasil optimasi disimpan /data/dalvik-cache/
sehingga aplikasi perlu dioptimalkan hanya sekali per instalasi atau pembaruan . Semua lainnya disimpan di dalam APK. Jadi jawaban pertama sangat jelas: Hal-hal seperti assets
dan res
yang diperlukan oleh aplikasi harus disediakan, dan semuanya ada di dalam APK. File APK disimpan untuk tujuan pendukung. Jika Anda menghapus APK, aplikasi pasti tidak akan memulai sama sekali. (Aplikasi: Di mana aset saya?)
Kedua, Google Play menambahkan dukungan untuk "Delta Update" yang sangat lama . Dalam prosedur pembaruan delta, perbedaan antara paket lama dan paket baru dihitung. Kemudian GP mengunduh "Delta" dan menerapkan perubahan pada APK asli untuk menghasilkan APK yang diperbarui, sehingga mengurangi ukuran unduhan.
APK selalu masuk. Ini dapat mencegah modifikasi berbahaya pada paket. Anda pasti tidak ingin menginstal aplikasi mod tanpa mengetahui apa yang diubah, atau apakah virus telah disuntikkan. Bagian META-INF/
dalam APK berfungsi untuk tujuan ini. Perubahan tidak resmi akan menghasilkan tanda tangan yang tidak cocok, dan sistem Android akan menolak untuk menginstal aplikasi modded.
Juga, ketika Anda memperbarui OS Android Anda, semua file dex "dioptimalkan" lagi sehingga Anda tidak perlu menginstalnya satu per satu. Seperti dikatakan di atas, optimasi memerlukan classes.dex
file dari paket asli.
lib/
dari APK, iOS tidak akan mengekstraksi semuanya dari IPA. Ini hanya untuk pemeriksaan integritas dasar.