回答:
通常、Android APKにはこれらのものが含まれています。
assets/
lib/
META-INF/
res/
AndroidManifest.xml
classes.dex
インストール時に、APKファイルはにコピーされ/data/app
、classes.dex
実行dex2oat
されて「最適化」されます(Android 5以降lib/
も抽出されます)。最適化の結果はに保存される/data/dalvik-cache/
ため、インストールまたは更新ごとに1回だけアプリを最適化する必要があります。その他はすべてAPK内に保持されます。以下のようなもの:非常に明確である最初の答えはそうassets
とres
、アプリで必須です提供されなければならない、と彼らはAPKの内側にあります。APKファイルはサポート目的で保持されます。APKを削除すると、アプリは完全に起動しなくなります。(アプリ:私の資産はどこですか?)
第二に、Google Playはかなり前に「Delta Update」のサポートを追加しました。デルタ更新手順では、古いパッケージと新しいパッケージの違いが計算されます。次にGPは「デルタ」をダウンロードし、元のAPKに変更を適用して更新されたAPKを生成し、ダウンロードサイズを削減します。
APKは常に署名されています。これにより、パッケージに対する悪意のある変更を防ぐことができます。何が変更されたか、またはウイルスが注入されたかどうかを知らずに、改造されたアプリをインストールすることは絶対に望まないでしょう。META-INF/
APK の内部はこの目的のために機能します。非公式の変更により署名が一致しなくなり、Androidシステムはmoddedアプリのインストールを拒否します。
また、Android OSを更新すると、すべてのdexファイルが再び「最適化」されるため、1つずつ再インストールする必要はありません。前述のとおり、最適化にはclasses.dex
元のパッケージのファイルが必要です。
lib/
APKから抽出されず、iOSはIPAからすべてを抽出しませんでした。基本的な整合性チェックのためだけです。