APK (ファイル形式)

提供: miniwiki
移動先:案内検索
APK
150px
拡張子 .apk
MIMEタイプ application/vnd.android.package-archive
開発者 Google
包含物 モバイルアプリケーション
派生元 JARZIP

APK (Android application package、アンドロイドアプリケーションパッケージ、エーピーケー )とは、Googleによって開発されたAndroid専用ソフトウェアパッケージのファイルフォーマットである。

JARファイルをベースとしたZIP形式で、アーカイブファイルの一種である。

APKファイルは、UbuntuDebianなどのオペレーティングシステムで使われるDEBファイルや、Windowsのインストーラーで使われるMSIファイルと特徴が似ている。 APKファイルを作成するには、Android用に作成したプログラムコンパイルして、その全てを一つのパッケージに統合させる。内部にはプログラムソース、デジタル証明書、マニフェストファイルなどが格納されている。その他のファイル形式と同様に、拡張子を「.apk」にしなければいけない点を除き、名前を自由に付ける事ができる[1][2][3][4]

インストール

APKファイルは、PCにソフトウェアをインストールする操作と同じように決まった手順でAndroid端末にインストールできる。Google Playといった正式な頒布元からインストールする事を始めとして、他にも非公式のウェブサイトからダウンロードしたり、PCからadbコマンドを用いるなどして、端末に直接インストールする方法もある。非公式のAPKをインストールするには、ほとんどの場合「設定」→「セキュリティ」→「提供元不明のアプリ」でインストールを許可する設定を行えばよい。

構成

APKファイル内部の基本設計は以下の通りである。

  • META-INF: ディレクトリ
    • MANIFEST.MF: マニフェストファイル
    • CERT.RSA: アプリケーションのアクセス権限リスト
    • CERT.SF: MANIFEST.MF対応のSHA-1
 Signature-Version: 1.0
 Created-By: 1.0 (Android)
 SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
 ...
 Name: res/layout/exchange_component_back_bottom.xml
 SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
 ...
 Name: res/drawable-hdpi/icon.png
 SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
  • lib: コンパイルされたコードが入ったディレクトリ、又は他のディレクトリを複数のディレクトリに分割。
    • armeabi: ARMアーキテクチャ用にコンパイルしたコード。
    • armeabi-v7a: ARMv7用にコンパイルしたコード。
    • arm64-v8a: ARMv8 64ビット用にコンパイルしたコード[5]
    • x86: x86用にコンパイルしたコード。
    • x86_64: x86 64用にコンパイルしたコード。
    • mips: MIPS用にコンパイルしたコード。
  • res: resources.arscにコンパイルしたコードを含むディレクトリ。
  • assets: resフォルダに入れられないファイルが入るディレクトリ。(ZIPファイルやテキストファイル、バイナリファイルなど)
  • AndroidManifest.xml: 別のマニフェストファイル、アプリケーションのタイトルバージョン情報、アクセス権限、ライブラリファイルなどをバイナリXMLに変換したディレクトリ。
  • classes.dex: Dalvik仮想マシンdexファイルにコンパイルされたディレクトリ。
  • resources.arsc: バイナリXMLなど、プリコンパイルされたファイル。

脚注

関連項目