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を実施していない場合と比べて、実行速度が上がりました。難読化が導入の理由で、それも重要なんですが、実行速度面もなかなかすげーと思いました。