For faster navigation, this Iframe is preloading the Wikiwand page for APK (ファイル形式).

APK (ファイル形式)

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?"APK" ファイル形式 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年9月)
APK
拡張子.apk, .xapk, .apks, .apkm
MIMEタイプapplication/vnd.android.package-archive
開発者Google
包含物モバイルアプリケーション
派生元JARZIP

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

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

概要

[編集]

APKファイルは、UbuntuDebianなどのオペレーティングシステムで使われるDEBファイルや、Windowsのインストーラーで使われるMSIファイルと特徴が似ている。 APKファイルを作成するには、Android用に作成したプログラムコンパイルして、その全てを一つのパッケージに統合させる。内部には仮想マシン用の実行可能ファイル、デジタル証明書、マニフェストファイルなどが格納されている。C言語などによるネイティブコードを利用するアプリケーションNDKを用いて開発されたアプリケーション)の場合、プロセッサ (CPU) アーキテクチャごとの共有ライブラリ (.so) も含まれる。その他のファイル形式と同様に、拡張子を「.apk」にしなければいけない点を除き、名前を自由に付けることができる[3][4][5][6]

インストール

[編集]

APKファイルは、PCにソフトウェアをインストールする操作と同じように、決まった手順でAndroid端末にインストールできる。Google Playキャリア(携帯電話会社)のアプリストアといった正式な頒布元からインストールすることを始めとして、他にも非公式のウェブサイトからダウンロードするか、PCからadb (Android Debug Bridge) コマンドラインツールを用いてUSB経由で転送するなどして、端末に直接インストールする方法もある。ただし、非公式のAPKはアプリストアの審査を受けていないことから、アプリストアで配布されているものと比較して、マルウェアなどの危険なアプリである可能性が高く、利用はユーザーの自己責任となる。

セキュリティ上の理由から、Android既定の設定では、非公式のAPKを直接インストールすることはできない。非公式のAPKを直接インストールするには、Android 4.x - 7.xまでの場合、事前に「設定」→「セキュリティ」→「提供元不明のアプリ」(提供元不明のアプリのインストールを許可する)のトグルスイッチをONにして、インストールを許可するように設定すればよいが、システム全体のセキュリティレベルが低下した状態になるので注意が必要である。Android 8.0以降は、APKのダウンロードおよびインストールに使用するアプリごとにインストールの許可を設定するようになり、また表示される項目名が「不明なアプリのインストール」(この提供元のアプリを許可)に変更された。ホーム画面からアプリアイコン長押し→「アプリ情報」→「不明なアプリのインストール」または「設定」→「アプリ」→「アプリ情報」→「不明なアプリのインストール」において、「この提供元のアプリを許可」のトグルスイッチをONにする。

構成

[編集]

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ビット用にコンパイルしたコード[7]
    • x86: x86用にコンパイルしたコード。
    • x86_64: x86-64 (x64) 用にコンパイルしたコード。
    • mips: MIPS用にコンパイルしたコード。
  • res: resources.arscにコンパイルしたコードを含むディレクトリ。
  • assets: resフォルダに入れられないファイルが入るディレクトリ。(ZIPファイルやテキストファイル、バイナリファイルなど)
  • AndroidManifest.xml: 別のマニフェストファイル、アプリケーションのタイトルバージョン情報、アクセス権限、ライブラリファイルなどをバイナリXMLに変換したファイル。
  • classes.dex: Javaクラスファイルからコマンドラインツール dx によりコンパイルされたファイル。Dalvik仮想マシンあるいはAndroid Runtimeで実行される。
  • resources.arsc: バイナリXMLなど、プリコンパイルされたファイル。

APK拡張ファイル

[編集]

Google Playではユーザーによってダウンロードされる各APKファイルのサイズ上限が100MBまでと定められている。100MBを超えるデータを配布する場合、APK拡張ファイルを利用する方法がある。APK拡張ファイルは任意のフォーマットを利用できるが、暗号化に対応したopaque binary blob (obb) と呼ばれる独自フォーマットに変換するツール jobb も用意されている[8][9]。拡張ファイルの分類は main と patch に分かれており、ファイル名は特定の命名規則に従う必要がある。各拡張ファイルのサイズ上限は2GBである。

Multiple APK

[編集]

通例、APKには複数の画面解像度と密度、複数のCPUアーキテクチャといった、デバイス構成に合わせた複数のファイルをすべて含めて1パッケージとするが、これはアプリパッケージが肥大化し、ユーザーがダウンロードしなければならないファイルサイズが増大する要因となる。Google Playでは個々のデバイス構成に合わせて別々のAPKファイルを用意し、ユーザーのダウンロードサイズを削減しつつ、1つの製品として管理するための仕組みとして、Multiple APKがサポートされている[10][11]。ただしMultiple APKでは個別にパッケージ作成と署名が必要となり手間がかかるため、代替として後述するAndroid App Bundleの利用が推奨されている。

Android App Bundle

[編集]

ユーザーがダウンロードする必要のあるAPKファイルのサイズを削減するために、新しいアップロードフォーマットとしてAndroid App Bundle (aab) が考案された[12][13][14][15]。Playコンソールでaabをアップロードすると、Google Playがユーザーの実行環境に合わせて最適なAPKファイルを生成する (Dynamic Delivery)。aabを使用して公開されているアプリの場合、APKファイルのダウンロードサイズ上限は150MBとなる。なお、Android App BundleはAPK拡張ファイル (obb) をサポートしない。

2021年の下半期には、App Bundleの使用が必須となり、APK拡張ファイルのサポートが終了する予定となっている[16]。大容量アセットの配信には、代替としてPlay Asset Delivery (PAD) を使用することが推奨されている。

脚注

[編集]

関連項目

[編集]
{{bottomLinkPreText}} {{bottomLinkText}}
APK (ファイル形式)
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?