j2mepolish中obfuscator(混淆器)的应用
[size=14]我们知道在j2mepolish带有一个ant构件工具,且有一个build.xml文件。在build.xml里边定义了一个工程的编译(compile)、混淆(obfuscate)、打包(package).....等命令。所以很多人都喜欢用j2mepolish来的ant来管理一个j2me工程的编译打包工作,即使他们没用到polish, 避免了用ant时写build文件的麻烦。
build.xml:
现在我主要谈谈polish中的obfuscator(混淆器)的应用。我们知道J2ME的应用开发极大地受到了设备的限制。通常可下载类应用限制在几百K左右,设备本身限制在64k、100k、128k等不等。尽管现在的手机的内存可以达到1G(有些可以用内存卡),但一个应用程序的大小还是尽可能小好,因为这可能影响程序的性能。
下边是网上关于j2me应用程序瘦身的办法:
其主要属性与元素:
属性name: 指定当前obfuscator的名称,其中"ProGuard"是默认的,如果你想用其的的obfuscator,只要在build.xml中指定相应的classPath就可以了。
元素<keep/>: 保留你不想参与混淆的类,留给程序动态加载。这个很好用,当你混淆某个工程后,运行时却发现有部分的类找不到,显示java.lang.ClassNotFoundException, 这时你可以用<keep/>把这个类保留下来,给程序动态加载。(我用polish混淆时碰过这情况,不知用其它混淆时(如JB)有没有??^_^)
元素<parameter/>: 当你想合用第三方的混淆器时,指定第三方混淆的配置。还有的是,ProGuard 3.x 提供了一个字节代码优化器(默认是false),当你用ProGuard混淆器时可以用此元素来优化代码:
如果你想几个obfuscator一起用,也可以,只要连着写几个<obfuscator/>就可以了。
[/size]