混淆做常用的就是就是Proguard
在eclipse中打开project.properties文件,在底下添加:
//说明混淆工作交给proguard-project.txt中去配置
proguard.config=proguard-project.txt
然后再proguard-project.txt中配置混淆信息:
如果说明都不写,表示完全的混淆,但更多时候我们只需要混淆自己的代码即可,诸如第三方的jar包不需要我们去混淆。一般来说,保持不混淆第三方jar需要三行代码:
-libraryjars libs/alipaySDK-20150610.jar //指明jar包
-dontwarn com.alipay.** //告诉eclipse不警告,打包时不会报错
-keep class com.alipay.** { *;} //最关键的,保持不混淆这个包名
不同的jar包可能会出现不同的问题,比如这里我用到了afinal框架,这个框架用到了反射的机制,所以我们有时有必要加上:
-dontwarn net.tsz.afinal.**
-keep class net.tsz.afinal.** { *;}
-keep public class * extends net.tsz.afinal.**
-keep public interface net.tsz.afinal.** {*;}
-keepattributes Signature
-keepattributes *Annotation*
还有一点需要注意:当打包完成发布后运行apk文件在手机上,eclipse的logcat中是无法看到log信息的,解决办法是打开sdk\tools目录下的ddms.bat,就可以看到了。
网友评论