「Apkファイル」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (→概要) |
|||
(3人の利用者による、間の6版が非表示) | |||
1行目: | 1行目: | ||
{{小文字}} | {{小文字}} | ||
− | '''apkファイル'''('''a'''ndroid application '''p'''ac'''k'''age file, apk)とは、[[Google]]が提供する[[Android OS]]向けの[[アプリケーション]]および[[ミドルウェア]]の配布に用いる[[インストーラー]]形式の[[ファイル]]のことである。 | + | '''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」となっている。 | ||
== 概要 == | == 概要 == | ||
− | apkファイルは[[Java]]で広く用いられる[[jarファイル]] | + | apkファイルは[[Java]]で広く用いられる[[jarファイル]]の亜種であり、[[プログラム]]([[.dexファイル]])、各種[[リソース]]、[[証明書]]、およびマニフェストファイルなどを内部に保持している。 |
+ | |||
+ | jarファイルと同様に[[拡張子]]こそ違えど、その実体は[[zipファイル]]である。 | ||
== 内容物 == | == 内容物 == | ||
27行目: | 29行目: | ||
</pre> | </pre> | ||
* res: 各種[[リソース]]を格納する[[ディレクトリ]]([[アプリ]]が使う画像ファイルや音声ファイルなど) | * res: 各種[[リソース]]を格納する[[ディレクトリ]]([[アプリ]]が使う画像ファイルや音声ファイルなど) | ||
− | * AndroidManifest.xml: [[Android]]の[[マニフェストファイル]]。[[アプリケーション]]の名称やバージョン、使用するアクセス権限などが書かれている[[XML]] | + | * AndroidManifest.xml: [[Android]]の[[マニフェストファイル]]。[[アプリケーション]]の名称やバージョン、使用するアクセス権限などが書かれている[[XML]]形式の[[ファイル]]である。 |
− | * classes.dex: [[dexファイル]]形式の[[プログラム]]([[Dalvik仮想マシン]]用の[[中間コード]] | + | * classes.dex: [[dexファイル]]形式の[[プログラム]]([[Dalvik仮想マシン]]用の[[中間コード]]である)。これが[[実行ファイル]]の実体であり[[Windows]]でいう[[exeファイル]]に相当する。 |
* resources.arsc: [[リソース]]のうち、各国語対応のための文字列リソースなど、個別ファイルにする必要のないものが[[xml]]形式で格納されている。 | * resources.arsc: [[リソース]]のうち、各国語対応のための文字列リソースなど、個別ファイルにする必要のないものが[[xml]]形式で格納されている。 | ||
なお、apkファイル内には[[xml]]形式のファイルが頻出するが、それらは基本的に[[難読化]]されており、人間が読めるようなものではない。そのようなapkファイルを人間が読める形にしてくれる「[[apktool]]」という[[オープンソース]]で開発が行われているツールがある<ref>http://code.google.com/p/android-apktool/</ref>。 | なお、apkファイル内には[[xml]]形式のファイルが頻出するが、それらは基本的に[[難読化]]されており、人間が読めるようなものではない。そのようなapkファイルを人間が読める形にしてくれる「[[apktool]]」という[[オープンソース]]で開発が行われているツールがある<ref>http://code.google.com/p/android-apktool/</ref>。 | ||
+ | |||
+ | [[dexファイル]]は[[dex2jar]]や[[jad]]などを組み合わせることで簡単に[[逆コンパイル]]できる。 | ||
== 関連項目 == | == 関連項目 == | ||
* [[Android]] | * [[Android]] | ||
* [[Mono for Android]] | * [[Mono for Android]] | ||
+ | ; 類似 | ||
+ | * [[appxファイル]] | ||
== 参考文献 == | == 参考文献 == | ||
41行目: | 47行目: | ||
{{stub}} | {{stub}} | ||
+ | |||
+ | [[category:拡張子]] | ||
+ | [[category:Android]] |
2020年1月30日 (木) 01:28時点における最新版
apkファイル(android application package file, 拡張子:.apk)とは、Googleが提供するAndroid OS向けのアプリケーションおよびミドルウェアの配布に用いるインストーラー形式のファイルのことである。
拡張子は「.apk」であり、MIMEタイプは「application/vnd.android.package-archive」となっている。
概要[編集 | ソースを編集]
apkファイルはJavaで広く用いられるjarファイルの亜種であり、プログラム(.dexファイル)、各種リソース、証明書、およびマニフェストファイルなどを内部に保持している。
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仮想マシン用の中間コードである)。これが実行ファイルの実体でありWindowsでいうexeファイルに相当する。
- resources.arsc: リソースのうち、各国語対応のための文字列リソースなど、個別ファイルにする必要のないものがxml形式で格納されている。
なお、apkファイル内にはxml形式のファイルが頻出するが、それらは基本的に難読化されており、人間が読めるようなものではない。そのようなapkファイルを人間が読める形にしてくれる「apktool」というオープンソースで開発が行われているツールがある[1]。
dexファイルはdex2jarやjadなどを組み合わせることで簡単に逆コンパイルできる。
関連項目[編集 | ソースを編集]
- 類似