proguard是一款著名的java扰乱器.但是,proguard还有优化java代码的功能--它可以对class文件缩减,优化,然后扰乱.
运行proguard的时候,通常要指定一个入口--main class,或是servlet,midlet,applets以便proguard知道哪些class需要保留,哪些需要删除.
各功能分别介绍如下:
1.缩减功能(shrink):根据类查找机制,将不用的类,方法,变量丢弃,只保留程序运行时所用到的类,方法和变量.比如对Class.forName()加载的类,proguard会自动处理.
2.优化功能(optimize):对shrink后的class文件进行分析和优化.
3.扰乱功能(obfuscation):对前面两步保留下来的class的名称和变更名称扰乱,使之变得无意义,并可缩减大小,提高反编译难度.
proguard自带文档非常详细,可作参考.
proguard的功能被较多地集成到了相关开发工具中,如wtk,polish都使用proguard作为其扰乱器.其操作和参数配置也变得非常简单.
另外,proguard还提供了GUI的界面,详见lib\proguardgui.jar
至于proguard的应用实例,不在此详述.
作者简介:
施祖阳,网名sylilzy。
2002年起从事软件开发工作,主要研究JAVA、Linux及相关技术。
你可通过与作者联系。
参考资料:
1.proguard docs
阅读(801) | 评论(0) | 转发(0) |