ProGuardを使ってみる

なんとなくAndroid SDKに添付されているProGuardを使って難読化を試みました。理由は隠したいものがコードに混じったから。

で、なんかエラーが出て失敗。googleさんに聞いたら、どうもパスに空白があるのがいけないらしい。またか…。で、eclipseのプロパティで短縮型のパスに切り替えたのですが、それでもうまくいかなかった。

ので、空白が入らない別のところにSDKをインストールしなおしました。そのうえで使うと素直にいきました。

eclipseからの使用方法は、project.propertiesに proguard.config=... を入れ、普通にapkをエクスポートすればOK。
ただしJavaScriptからDalvik側を呼ぶ場合には、proguard-project.txt で

-keepclassmembers class (JavaScriptから呼ばれるクラス)
  public *;
}

として、整理対象としない必要があります。こうしないと、JavaScrtip側から見て難読化されてアクセスできなくなります。

むしろ実行速度向上に目を奪われた

エクスポートしたapkを入れて実行してみると、ProGuardを実施していない場合と比べて、実行速度が上がりました。難読化が導入の理由で、それも重要なんですが、実行速度面もなかなかすげーと思いました。