「ProGuard」の版間の差分

提供: Java入門
移動: 案内検索
(ページの作成:「ProGuard とは、フリーの Javaクラスファイルシュリンカー、オプティマイザー、難読化、preverifier です。Androidアプリのリバー...」)
(相違点なし)

2015年4月4日 (土) 10:52時点における版

ProGuard とは、フリーの Javaクラスファイルシュリンカー、オプティマイザー、難読化、preverifier です。Androidアプリのリバースエンジニアリングを防ぐために利用します。

読み方

ProGuard
ぷろ がーど

概要

ProGuardは、以下の機能を提供します。

  • 未使用のクラス、フィールド、メソッド、属性の検出と削除
  • バイトコードの最適化
  • 未使用の命令の削除
  • 残ったクラス、フィールド、メソッドを「短く意味のない名前」にリネーム

Androidアプリをリバースエンジニアリングから守るために、Javaソースコード難読化ツールを利用します。

ProGuardの罠

WebView は、 Android でウェブページを表示するクラスです。 WebView は、addJavascriptInterface を用いて、JavaScript にインタフェースを追加できます。この機能を利用して、JavaScriptからJavaのメソッドが呼び出しできます。

ProGuardを利用することにより、メソッド名がリネームされます。その結果、JavaScriptから呼び出すメソッドが存在しなくなります。

解決策は、proguard.cfg で addJavascriptInterface で追加するクラスを対象外にします。

-keep class com.foo.bar { *; }

使い方

ProGuardは、Android SDKのビルドシステムに組み込まれています。

関連項目