androidアプリの調査をするために、debugがoffになっているアプリをonにしたときのメモです。
debugをonにすると、monitorとかを使ったメモリの調査とかがかなりしやすくなります。
あ、これは自己責任でやってくださいね。
あと、Macで作業しています。
apkを開く
apkをそのままunzipすると、xmlとかがバイナリ化していて編集できないので、apktoolを使って中を開きます。
apktoolはhomebrewに入ってるので、brew install apktool
でインストール可能。
% apktool d hennna_app.apk
d[ecode]でapkの中身を解凍します。
そうすると、アプリ名でディレクトリができます。
% hennna_app/
debugをonにするために、その中の、AndroidManifest.xml
を編集します。
<application android:label="@string/app_name" android:icon="@drawable/app_icon" android:debuggable="false" android:hardwareAccelerated="true"> ↓ <application android:label="@string/app_name" android:icon="@drawable/app_icon" android:debuggable="true" android:hardwareAccelerated="true">
この後に、apkをビルドします。
% apktool b hennna_app hennna_app_new.apk
でadbでインストールしようとすると、
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
と言われて、失敗します。 これは証明書が不正のエラーです。(未署名だからですね)
そこで、証明書作って、apkに署名します。
% keytool -genkey -keystore hoge.keystore -alias hoge -keyalg RSA -validity 10000 -dname "CN=HOGE,O=FUGA,C=JP" % jarsigner -keystore hoge.keystore -storepass hoge hennna_app_new.apk hoge
こうすればOK。
あとは、monitorとかを使って、USBデバッグでつなぐと、メモリの使用量や、メモリダンプとかも取れるようになります。