「Apkファイル」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
(2人の利用者による、間の4版が非表示)
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ファイル]]の亜種で、[[プログラム]]([[.dexファイル]])、各種[[リソース]]、[[証明書]]、およびマニフェストファイルなどを内部に保持している。jarファイルと同様に[[拡張子]]そこ違えど、その実態は[[zipファイル]]である。
+
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ファイル]]
  
 
== 参考文献 ==
 
== 参考文献 ==

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ファイルの中身は通常以下のようなディレクトリ構造となっている。 あくまで例であり、もう少し多い場合もある。

 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=

なお、apkファイル内にはxml形式のファイルが頻出するが、それらは基本的に難読化されており、人間が読めるようなものではない。そのようなapkファイルを人間が読める形にしてくれる「apktool」というオープンソースで開発が行われているツールがある[1]

dexファイルdex2jarjadなどを組み合わせることで簡単に逆コンパイルできる。

関連項目[編集 | ソースを編集]

類似

参考文献[編集 | ソースを編集]