C H A P T E R 3 |
Creating an Obfuscator Plug-in |
The Sun Java Wireless Toolkit for CLDC allows you to use a bytecode obfuscator to reduce the size of your MIDlet suite JAR file. The toolkit comes with support for ProGuard, as described in the Sun Java Wireless Toolkit for CLDC User's Guide.
If you want to use a different obfuscator, you can write a plug-in for the Sun Java Wireless Toolkit for CLDC.
Obfuscator plug-ins extend the com.sun.kvem.environment.Obfuscator interface. The interface itself is contained in toolkit\wtklib\kenv.zip.
The Obfuscator interface contains two methods that you must implement:
To compile your obfuscator plug-in, make sure to add kenv.zip to your CLASSPATH.
For example, here is the source code for a very simple plug-in. It doesn't actually invoke an obfuscator, but it shows how to implement the Obfuscator interface.
Suppose you save this as toolkit\wtklib\test\NullObfuscator.java. Then you can compile it at the command line like this:
set classpath=%classpath%;toolkit\wtklib\kenv.zip javac NullObfuscator.java
Once you've written an obfuscator plug-in, you must tell the toolkit where to find it. To do this, edit toolkit\wtklib\Windows\ktools.properties. Edit the obfuscator plug-in class name and tell the toolkit where to find the class. If you're following along with the example, edit the properties as follows:
obfuscator.runner.class.name: NullObfuscator obfuscator.runner.classpath: wtklib\\test
Restart the toolkit and open a project. Now choose Project > Package > Create Obfuscated Package. In the console, the output of NullObfuscator displays, as follows:
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
Copyright © 2007, Sun Microsystems, Inc. All Rights Reserved.