カテゴリー:
仕組み
閲覧数:295 配信日:2018-08-20 10:25
app\build\outputsディレクトリ内に作成される
出力先
・AndroidStudioProjects\<プロジェクト名>\app\build\outputs\apk\<ビルドタイプ>\
具体例
・L:\Android\copysamplecode\firstkaitei\chapter05\Tyrano20180611\app\build\outputs\apk\debug
apkファイルの実体は単なるzip形式
(拡張子をzipに変えるだけで、)zipファイルとして解凍処理できる
・但し、単純にその中にソースファイルが格納されているわけではなく、dexと呼ばれるAndroid専用の仮想マシン上で実行できる形式に変換されたファイルが入っている
・dexファイルをリバースエンジニアリングすることでJavaソースコードを閲覧することは可能だが、コンパイルの過程で「難読化」処理が施されている場合は学習材料とすることは難しい
apkファイルの解凍例1
┏assets/
┣META-INF/
┣res/
┣AndroidManifest.xml
┣classes.dex
┗resources.arsc
┣META-INF/
┣res/
┣AndroidManifest.xml
┣classes.dex
┗resources.arsc
▼classes.dex
dex
038 $?ハ^?9?ヘ*DG?c(~??AD p xV4 h *N p ・ 9 v フX Q& T・ ?< ワ 8 \ 鑒 \? § ħ ǧ է ܧ ? .? 6? S? o? ? ?? ?? ?? ( Ϩ ・ ? ? *? A? X? e? p? ?? ?? ?? ɩ ܩ ?? ? ?
//以下略
dexからJavaソースコードを得る方法
・apkファイルからJavaのソースコードを抽出する
・Android?の「***.apk」形式ファイルについて教えて下さい