3


難読化ツールのプラグインの作成

Sun Java Wireless Toolkit for CLDC では、バイトコードの難読化ツールを使用して MIDlet スイートの JAR ファイルのサイズを小さくできます。『Sun Java Wireless Toolkit for CLDC ユーザーズガイド』に説明されているように、このツールキットでは ProGuard がサポートされています。

別の難読化ツールを使用する場合は、Sun Java Wireless Toolkit for CLDC のプラグインを作成できます。


3.1 プラグインの作成

難読化ツールのプラグインによって、com.sun.kvem.environment.Obfuscator インタフェースが拡張されます。インタフェース自体は、toolkit¥wtklib¥kenv.zip に含まれています。

Obfuscator インタフェースには、実装する必要がある次の 2 つのメソッドが含まれています。

難読化ツールのプラグインをコンパイルするには、必ず kenv.zipCLASSPATH に追加するようにしてください。

たとえば、ごく簡単なプラグインのソースコードを次に示します。このソースコードは、実際には難読化ツールを呼び出しませんが、Obfuscator インタフェースの実装方法を示しています。


import java.io.*;
public class NullObfuscator
    implements com.sun.kvem.environment.Obfuscator {
  public void createScriptFile(File jadFilename, File projectDir) {
    System.out.println("NullObfuscator:createScriptFile()");
  }
 
  public void run(File jarFileObfuscated, String wtkBinDir,
    String wtkLibDir, String jarFilename, String projectDir,
    String classPath, String emptyAPI) throws IOException {
      System.out.println("NullObfuscator:run()");
    }
}

 

このソースコードを、toolkit¥wtklib¥test¥NullObfuscator.java という名前で保存するとします。この場合、次のようにコマンド行でこのソースコードをコンパイルできます。

set classpath=%classpath%;toolkit¥wtklib¥kenv.zip
javac NullObfuscator.java


3.2 ツールキットの設定

難読化ツールのプラグインを作成したら、ツールキットにその場所を認識させる必要があります。このためには、toolkit¥wtklib¥Windows¥ktools.properties を編集します。難読化ツールのプラグインのクラス名を編集し、ツールキットにそのクラスの場所を認識させます。例にならっている場合は、次のようにプロパティーを編集します。

obfuscator.runner.class.name: NullObfuscator
obfuscator.runner.classpath: wtklib¥¥test

ツールキットを再起動して、プロジェクトを開きます。ここで、「プロジェクト」->「パッケージ」->「難読化パッケージを作成」を選択します。コンソールに、次のように NullObfuscator の出力が表示されます。

Project settings saved
Building "Tiny"
NullObfuscator: createScriptFile()
NullObfuscator: run()
Wrote C:¥WTK252¥apps¥Tiny¥bin¥Tiny.jar
Wrote C:¥WTK252¥apps¥Tiny¥bin¥Tiny.jad
Build complete