Android 打包混淆

Android 打包混淆

ID:39464524

大小:73.50 KB

页数:11页

时间:2019-07-03

Android 打包混淆_第1页
Android 打包混淆_第2页
Android 打包混淆_第3页
Android 打包混淆_第4页
Android 打包混淆_第5页
资源描述:

《Android 打包混淆》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Android打包混淆作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来。Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windowstools下面多了一个proguard文件夹。ProGuard是一个免费的java类文件压缩、优化和混淆器。它探测并删除没有使用的类、字段、方法和属性。它删除没有用的说明并使用字节码得到最大优化。Proguard作为一个代码混淆的工具,它使用无意义的名字来重

2、命名类、字段和方法。通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。一、ProGuard相关的一些定义通过ProGuard得到的更精简的jar文件意味着只需要更小的存储空间;网络传输更省时;装载速度更快和占用更小的内存空间。另外,ProGuard非常快速和高效,它仅仅只花费几秒钟和几兆的内存在处理程序。它处理的顺序是先压缩,然后优化,最后才进行混淆。1.什么是压缩?Java源代码(.java文件)通常被编译为字节码(.class文件)。而

3、完整的程序或程序库通常被压缩和发布成Java文档(.jar文件)。字节码比Java源文件更简洁,但是它仍然包含大量的无用代码,尤其它是一个程序库的时候。ProGuard的压缩操作能分析字节码,并删除无用的类、字段和方法。程序只保留功能上的等价,包括异常堆栈描述所需要的信息。2.什么是混淆?通常情况下,编译后的字节码仍然包含了大量的调试信息:源文件名,行号,字段名,方法名,参数名,变量名等等。这些信息使得它很容易被反编译和通过逆向工程获得完整的程序。但ProGuard的混淆器功能,能删除这些调试信息

4、,并用无意义的字符序列来替换所有名字,使得它很难进行逆向工程,且进一步的精简了代码。除了异常堆栈信息所需要的类名,方法名和行号外,程序只会保留功能上的等价。ProGuard混淆的方法有很多,主要是以下几方面:1)更名,将私有类,私有的成员,方法体内部的变量名改名,改成a,b,c等等;2)改变逻辑的流向,如将if条件取反,if/else对换;3)等价代码,如将循环改成GOTO;4)无效代码,插入不可及的无用代码;3.ProGuard支持那些种类的优化?除了在压缩操作删除的无用类,字段和方法外,Pro

5、Guard也能在字节码级提供性能优化,内部方法有:1)常量表达式求值2)删除不必要的字段存取1)删除不必要的方法调用2)删除不必要的分支3)删除不必要的比较和instanceof验证4)删除未使用的代码5)删除只写字段6)删除未使用的方法参数7)像push/pop简化一样的各种各样的peephole优化8)在可能的情况下为类添加static和final修饰符9)在可能的情况下为方法添加private,static和final修饰符10)在可能的情况下使get/set方法成为内联的11)当接口只有一

6、个实现类的时候,就取代它12)选择性的删除日志代码实际的优化效果是依赖于你的代码和执行代码的虚拟机的。简单的虚拟机比有复杂JIT编译器的高级虚拟机更有效。无论如何,你的字节码会变得更小。但仍有一些明显需要优化的技术不被支持:1)使非final的常量字段成为内联2)像get/set方法一样使其他方法成为内联3)将常量表达式移到循环之外4)Optimizationsthatrequireescapeanalysis一、ProGuard的使用1.ProGuard的命令行用法:用命令行执行ProGuard

7、的命令如下:java–jarproguard.jaroptions……你也可以把这些属性写在配置文件里,运行时,我们只需要指定这个配置文件就行了,例如:java–jarproguard.jar@config.pro配置文件的格式要按照ProGuard提供的格式来写,这可以参考ProGuard例子里的配置文件来配置适合你的应用系统的ProGuard配置文件。ProGuard提供了图形界面的配置和运行程序(proguardgui),你可以在界面上配置你想要的参数,然后运行即可。前面提到的要手动写的配置

8、文件也可以用图形界面来配置和生成。如果你要在Ant里运行ProGuard,只需要添加一一个如下的target即可:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。