Android 代码混淆
来源:互联网 发布:新疆七五事件真相 知乎 编辑:程序博客网 时间:2024/06/09 19:44
Android 代码混淆
optimizationpasses 5 是什么意思?
optimizationpasses 表示proguard对你的代码进行迭代优化的次数,首先要明白optimization 会对代码进行各种优化,每次优化后的代码还可以再次优化,所以就产生了 优化次数的问题,这里面的 passes 应该翻译成 ‘次数’ 而不是 ‘通道’。楼上默认写 5 ,应该是做Android的,关于Android里面为什么写 5 ,因为作者本来写 99 ,但是每次迭代时间都很长团队成员天天抱怨,就改成 5 了,迭代会在最后一次无法优化的时候停止,也就是虽然你写着 99 ,但是可能就优化了 几次,一般情况下迭代10次左右的时候代码已经不能再次优化了。
- -optimizationpasses 5 //代码混淆压缩比 默认为5 一般不需要改
- -dontusemixedcaseclassnames //混淆后的类名为小写 如public class a
- -dontskipnonpubliclibraryclasses //混淆第三方库 加上此句后 可再后面配置某些库不混淆
- -dontpreverify // 混淆前认证,可去掉加快混淆速度
- -verbose //混淆的log 帮助排错
- -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* //代码混淆采用的算法,一般不改变,用谷歌推荐算即可
- -keepattributes *Annotation* 假如项目中有用到注解 应用加入
- 引用外部的jar包 如果不是自己写的 最好不混淆它们,因为外部jar包有可能已经混淆过,根据实际情况来 不混淆某些外部jar保持外部jar包不变的方法
- -dontwarn android.support.v4.** //执行下面一行代码如果有警告也不用中止,因为此jar不是我们自己写的,有警告也不处理,故dontwarn
- -keep class android.support.v4.** //项目中用到此jar包,在打包时必须不混淆,否则用ViewPager时必crash,原因很简单,ViewPager是一个自定义view,在布局中用类的全名来定义此布局,混淆后类名和包名改变,xml布局无法再通过类名打到此自定义view。
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
#所有包含JNI调用的类以及其内部的成员都不能被混淆
-keepclasseswithmembernames class * {
native <methods>;
}
#扩展自android.view.View类的任何public类的setter和getter方法都不能被混淆和删除
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
#扩展自android.app.Activity类的任何类中访问属性是public,返回值是void,参数是android.view.View类型的所有函数都不能被混淆或删除
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
#任何枚举类中的values和valueOf静态方法都不能被混淆和删除
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
#实现了android.os.Parcelable接口类的任何类,以及其内部定义的Creator内部类类型的public final静态成员变量,都不能被混淆和删除
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#所有自动生成的R类中的public静态成员变量
-keepclassmembers class **.R$* {
public static <fields>;
}
CSDN上还有一个大牛总结的比较完善:
http://blog.csdn.net/catoop/article/details/47208833
0 0
- Android 代码混淆,混淆打包
- Android 代码混淆 webview混淆
- [Android]混淆Android代码
- [Android]混淆Android代码
- Android代码混淆------apk文件代码混淆
- android 代码混淆proguard
- Android项目代码混淆
- android 代码混淆总结
- android 代码混淆
- android代码混淆
- 混淆Android代码
- Android代码混淆 反编译
- android 代码混淆
- Android 代码混淆
- android 代码混淆
- Android代码混淆技术
- android 代码混淆
- Android代码混淆
- Android 屏蔽返回键、菜单键和Home键
- tomcat长连接、短连接配置及用途
- 虚幻引擎3的代码讲解
- MapTask虚拟内存不足
- 真机调试
- Android 代码混淆
- Mongodb数据导出工具mongoexport和导入工具mongoimport介绍
- SpringMVC中处理404静态页面操作
- 玩转Visual Studio创建一个新的工程
- 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
- spring boot 通过配置文件连接mongodb
- maven学习jdk路径配置问题
- ios 自写网络请求实例方法
- fastclick.js插件使用简单说明