关于Android使用proguard进行代码混淆
来源:互联网 发布:淘宝办签证泄露信息 编辑:程序博客网 时间:2024/05/02 04:59
自Android 2.3 SDK发布后,Google便在Android SDK Tools里加入了proguard,proguard是一个可以对.java文件进行一定程度上的代码混淆,使用proguard是一件极方便工作,在你项目中没有其他外部Jar包的情况下,在“project.properties”文件里,添加一行:
代码即可,然后通过Android Tools(右击项目名)里导出APK即可,如果项目所使用的的SDK版本低于2.3,只需要进行%android_dir%/tools/lib目录,复制proguard.cfg文件到项目的根目录下导出APK即可。
这是一般情况,即无第三方Jar包,如果存在第三方Jar包,那么打开proguard.cfg文件进行编辑,在其中加入以下代码:
有几个Jar包,便添加几次,如在项目的libs目录下有a.jar,b.jar,c.jar三个Jar包:
如此,通过android tools导出APK即可。
此外,还有些特殊情况,会令导出发生异常,视具体异常情况而定,修改proguard.cfg文件。
比如出现了以下异常:
即:
这种异常情况,需要在proguard.cfg文件中,添加以下代码:
即可,便以上面例子而言,应当如下:
等等,此类情况修改proguard.cfg文件即可,还有种特殊情况,需要对引入的Jar包进行修改,如下:
这是因为引用的Jar包中含有xmlpull类库,Android系统的类库中已经包含了xmlpull,这样混淆出现了冲突,解决办法是把它里面已存在的和系统库冲突的类去掉,就可以了,产生冲突的类可见控制台输出。
另外对不想混淆的类/方法/变量,可以使用-keep指定,具体参考proguard.cfg文件写法。
代码即可,然后通过Android Tools(右击项目名)里导出APK即可,如果项目所使用的的SDK版本低于2.3,只需要进行%android_dir%/tools/lib目录,复制proguard.cfg文件到项目的根目录下导出APK即可。
这是一般情况,即无第三方Jar包,如果存在第三方Jar包,那么打开proguard.cfg文件进行编辑,在其中加入以下代码:
有几个Jar包,便添加几次,如在项目的libs目录下有a.jar,b.jar,c.jar三个Jar包:
如此,通过android tools导出APK即可。
此外,还有些特殊情况,会令导出发生异常,视具体异常情况而定,修改proguard.cfg文件。
比如出现了以下异常:
即:
这种异常情况,需要在proguard.cfg文件中,添加以下代码:
即可,便以上面例子而言,应当如下:
等等,此类情况修改proguard.cfg文件即可,还有种特殊情况,需要对引入的Jar包进行修改,如下:
这是因为引用的Jar包中含有xmlpull类库,Android系统的类库中已经包含了xmlpull,这样混淆出现了冲突,解决办法是把它里面已存在的和系统库冲突的类去掉,就可以了,产生冲突的类可见控制台输出。
另外对不想混淆的类/方法/变量,可以使用-keep指定,具体参考proguard.cfg文件写法。
0 0
- 关于Android使用proguard进行代码混淆
- 关于Android使用proguard进行代码混淆
- 关于Android使用proguard进行代码混淆
- 关于Android使用proguard进行代码混淆
- Android使用ProGuard进行代码混淆
- 使用proguard进行代码混淆
- 使用Proguard进行代码混淆
- Android 使用 ProGuard 混淆代码
- 使用proguard混淆android代码
- 使用proguard混淆android代码
- 使用proguard混淆android代码
- 使用proguard混淆android代码
- 使用ProGuard混淆Android代码
- 使用proguard对Android Library中代码进行混淆
- 使用Proguard对Android代码进行优化、混淆
- 日积月累:Proguard进行Android代码混淆
- 日积月累:Proguard进行Android代码混淆
- 日积月累:Proguard进行Android代码混淆
- Android recovery 原理分析
- poll使用示例
- 超屌CircleProgressBar
- MYSQL基础_聚合函数_分组和多表连接查询
- Ajax局部刷新
- 关于Android使用proguard进行代码混淆
- Html 中 <a>标签的target属性
- android pull 解析xml
- 重建二叉树
- Shell多线程操作及线程数控制实例
- 随诊医生1---启动流程分析
- 四种强制类型转换的总结(const_cast、static_cast、dynamic_cast、reinterpreter_cast)
- 生成窗口最大数组问题
- 开源的 JVM 应用部署工具