android混淆如果是对android-library那相对比较简单直接在build配置minifyEnabled即可,并在proguard-rules.pro文件中配置混淆规则。这里主要介绍java-libaray的依赖库进行混淆的处理。proguard混淆分为四部压缩、优化、压缩、预检。压缩是移除无用代码,优化是移除字节码中无用的指令,压缩是对代码进行压缩,预检是校验确保代码是可执行的。
在library中没有发现可配置混淆的方法,因此采用androi studio提供的proguard工具进行混淆,但是常常会遇到Unsupported class version number [52.0] (maximum 51.0, Java 1.7)错误,意思就是proguard版本太低。因此我是下载版本较高的proguard,下载地址:https://sourceforge.net/projects/proguard/。
混淆流程:
1.创建android工程并新建一个java-library,在java-libaray中创建相应的java类文件,这里对外暴露的类和方法声明为public,不对外暴露的类声明为保护类型protected(默认不写修饰符就是protected)



2.创建混淆规则文件,通常是对需要对外提供接口的类进行配置,保留这些类的公共方法和字段

3.试用proguard工具进行混淆
首先对java-libaray库进行build操作获取到jar包,然后对jar包进行混淆操作

指定混淆规则配置文件

指定需要混淆的jar包、输出路径、依赖jar包

一直执行next下一步操作知道最后process页面,执行process进行混淆操作

在指定的目录下得到混淆包,并将混淆的包添加到需要引用的module中,查看混淆结果

对混淆后的jar进行调用

一般混淆简单用法两种,一种是保留所有public方法和public属性,一种是单独对需要保留的方法和字段进行配置。


网友评论