Bir Android APK genellikle bu şeyleri içerir.
assets/
lib/
META-INF/
res/
AndroidManifest.xml
classes.dex
Kurulumun ardından, APK dosyası kopyalanır /data/app
ve üzerine classes.dex
çıkarılarak çıkarılır ve "optimize edilir" dex2oat
(Android 5+ sürümünde lib/
de çıkarılır). Optimizasyonun sonucu, /data/dalvik-cache/
bir uygulamanın kurulum veya güncelleme başına sadece bir kez optimize edilmesi gereken şekilde depolanır . Diğer her şey APK içinde tutulur. İlk cevap çok açıktır Yani: gibi şeyler assets
ve res
bu uygulama sağlanmalıdır gerektirdiği, ve onlar APK içinde. APK dosyası destek amaçlı tutulur. Bir APK silerseniz, uygulama kesinlikle hiç başlamaz. (Uygulama: Mal varlığım nerede?)
İkincisi, Google Play çok uzun zaman önce "Delta Güncellemesi" için destek ekledi . Delta güncelleme işleminde eski paket ile yeni paket arasındaki fark hesaplanır. Daha sonra GP "Delta" yı indirir ve güncellenmiş APK'yi elde etmek için orijinal APK'ye değişiklikler uygular, böylece indirme boyutunu küçültür.
Bir APK her zaman imzalanır. Bu, pakette kötü amaçlı değişiklik yapılmasını önleyebilir. Neyin değiştiğini veya bir virüsün enjekte edilip edilmediğini bilmeden, kesinlikle modded bir uygulama yüklemek istemezsiniz. META-INF/
İçeride APK bu amaçla çalışıyor. Resmi olmayan değişiklikler eşleşmeyen imza ile sonuçlanacaktır ve Android sistemi modded uygulamayı yüklemeyi reddedecektir.
Ayrıca, Android işletim sisteminizi güncellediğinizde tüm dex dosyaları tekrar "en iyi duruma getirilir", böylece onları birer birer yeniden kurmanıza gerek kalmaz. Yukarıda belirtildiği gibi, optimizasyon classes.dex
orijinal paketinden dosya gerektirir .