APK ファイルとは?Android のパッケージ形式を解説
Advertisement
ひとことで言うと
APK(Android Package)は、Android がインストール方法を知っている決まった構造の zip 書庫です。コンパイル済みのコード、リソース(画像・レイアウト・翻訳)、アプリ名・バージョン・権限・最低 Android バージョンを宣言するマニフェスト、開発者の署名が入っています。インストールをタップすると、Android は署名を検証し、マニフェストを端末と照合してから中身を所定の場所にコピーします。
Google Play も同じ方法でインストールしています。違いは、Play がバックグラウンドでパッケージを取得し、最近のアプリでは端末に合わせて複数の小さな APK に分割している点です。自分でダウンロードするファイルは、どの端末でも動く単一の「ユニバーサル」APK か、分割ファイルをまとめた XAPK です。
中身
| 部分 | 役割 |
|---|---|
AndroidManifest.xml | パッケージ名、バージョン名とバージョンコード、権限、最低・対象 Android バージョン |
classes.dex | コンパイル済みのアプリコード |
res/ と resources.arsc | レイアウト、画像、各言語の文字列 |
lib/ | CPU ごとのネイティブコード(arm64-v8a、armeabi-v7a、x86_64) |
META-INF/ | 開発者の署名とファイルのチェックサム |
最も重要なのは署名です。Android は、別の鍵で署名されたパッケージでインストール済みアプリを更新することを拒否します。だから開発者自身のビルドは Play 版の上に必ず入り、再署名された「改造版」は決して入りません。
バージョン名とバージョンコード
APK には 2 つのバージョン項目があります。バージョン名は 12.10.1 のように人が見るための文字列。バージョンコードは常に増え続ける整数で、Android が新旧を判断するときに比較する値です。同じバージョン名でもバージョンコードが違うビルドがあり得るため、当サイトのバージョンページは両方を表示しています。
自分で APK をダウンロードする場面
- 端末の Android が最新版の対応外で、古いビルドならまだ動く。
- アップデートで機能が消えたり不具合が出たりして、戻したい。
- 自分の国の Play ストアでアプリが提供されていない。
- Google サービスのない端末を使っている。
いずれの場合もインストールするのは開発者が公開したものと同じビルドで、当サイトでは一切再パッケージしていません。手順は APK / XAPK のインストール方法、戻し方は アプリをダウングレードする方法 をご覧ください。
安全性
実績のある入手元からダウンロードし、パッケージ名が目的のアプリと一致するか確認し、迷ったらインストール済みのものと署名を比べてください。Android の Play プロテクトはサイドロードしたパッケージも検査します。ファイルと開発者の既知の署名が一致しないことが最もはっきりした警告サインです。確認手順は インストール前に APK の安全性を確認する方法(英語)にまとめています。
本ガイドは一般的な Android の動作を説明しています。メニュー名はメーカーや Android のバージョンで異なります。当サイトのダウンロードは実績のある第三者ミラーから配信され、当方で改変することはありません。