CubicLouve

Spring_MTの技術ブログ

android アプリのdebugをonにする

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デバッグでつなぐと、メモリの使用量や、メモリダンプとかも取れるようになります。