APKファイル【Android application package】
概要

APKファイルの実体はZip形式の圧縮ファイルであり、内部には規定の構成で複数のファイルやフォルダが格納されている。アプリ本体の実行コード(DEXファイル)のほか、アプリ名や必要な権限などを記述したマニフェストファイル(AndroidManifest.xml)、画像や音声、文字列など各種のリソースファイル、開発者の身元を証明するデジタル署名が含まれる。構造はJavaアプリケーションの配布に用いられるJAR形式に似ており、拡張子を「.zip」に変更して展開すると内部のファイル群を直接確認できる。
利用者が「Google Play」などのアプリストアからアプリを入手する際も、内部的にはAPKファイルの取得とインストール処理が自動で行われている。アプリの更新時も同様の仕組みが使われ、その際には初回インストール時と同じ署名鍵によって署名されたファイルであることが求められる。これにより、第三者による不正な上書きや改竄を防止している。
アプリストアを経由せず、Webサイトや直に接続したパソコンなどからAPKファイルを直接端末に導入することは「サイドローディング」(sideloading)と呼ばれる。企業内アプリの配布や開発・検証用途などで利用される場合があるが、Androidの標準設定では制限されており、実行には利用者による明示的な許可が必要である。出所不明のAPKファイルにはマルウェアが含まれるリスクがあるため、提供元の確認が必要である。
近年のGoogle Playでは、配信効率の向上を目的として「Android App Bundle」(AAB)形式の利用が推奨されている。AABは配布用の中間形式であり、ストアが端末の画面解像度やCPU仕様に応じて必要なデータだけを抽出し、最適化されたAPKファイルとして配信する仕組みになっている。配信形式は変化しているが、端末へのインストールにはAPKファイルが引き続き使われている。