「Apkファイル」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator (ページの作成:「'''apkファイル'''('''a'''ndroid application '''p'''ac'''k'''age file)とは、Googleが提供するAndroid OS向けのアプリケーションおよ...」) |
imported>Administrator |
||
1行目: | 1行目: | ||
− | '''apkファイル'''('''a'''ndroid application '''p'''ac'''k'''age | + | '''apkファイル'''('''a'''ndroid application '''p'''ac'''k'''age file, apk)とは、[[Google]]が提供する[[Android OS]]向けの[[アプリケーション]]および[[ミドルウェア]]の配布に用いる[[インストーラー]]形式の[[ファイル]]のことである。 |
拡張子は「'''.apk'''」であり、MIMEタイプは「application/vnd.android.package-archive」となっている。 | 拡張子は「'''.apk'''」であり、MIMEタイプは「application/vnd.android.package-archive」となっている。 |
2012年7月3日 (火) 04:23時点における版
apkファイル(android application package file, apk)とは、Googleが提供するAndroid OS向けのアプリケーションおよびミドルウェアの配布に用いるインストーラー形式のファイルのことである。
拡張子は「.apk」であり、MIMEタイプは「application/vnd.android.package-archive」となっている。
apkファイルはJavaで広く用いられるjarファイルの亜種で、プログラム(.dexファイル)、各種リソース、証明書、およびマニフェストファイルなどを内部に保持している。jarファイルの亜種であり、jarファイルと同様に拡張子そこ違えど実態はzipファイルである。
内容物
apkファイルの中身は、通常以下のようなディレクトリ構造となっている。 あくまで例であり、もう少し多い場合もある。
- META-INFディレクトリ:
- MANIFEST.MF: マニフェストファイル。jarファイルから継承したものでファイルの説明が記述されている。後述するAndroidManifest.xmlとは別物である。
- CERT.RSA: アプリケーションの証明書。
- CERT.SF: 各種リソースの保存場所とその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=
- res: 各種リソースを格納するディレクトリ(アプリが使う画像ファイルや音声ファイルなど)
- AndroidManifest.xml: Androidのマニフェストファイル。アプリケーションの名称やバージョン、使用するアクセス権限などが書かれているXML形式のファイルである。
- classes.dex: dexファイル形式のプログラム(Dalvik仮想マシン用の中間コードである)。
- resources.arsc: リソースのうち、各国語対応のための文字列リソースなど、個別ファイルにする必要のないものがxml形式で格納されている。
なお、apkファイル内にはxml形式のファイルが頻出するが、それらは基本的に難読化されており、人間が読めるようなものではない。そのようなapkファイルを人間が読める形にしてくれる「apktool」というオープンソースで開発が行われているツールがある[1]。