混淆流程
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
前面的#号去掉,在生成包的时候就会去查看proguard-project.txt中的规则,然后进行混淆public class MainClass {
public static void main(String[] args) {
String path = "D:\\workspace\\ExampleApplication";
path = path + "/libs";
File file = new File(path);
if (file.exists()) {
getField(file);
}
}
private static void getField(File file){
if (file.isDirectory()) {
listFields(file);
}else if(file.isFile()&&file.getName().endsWith("jar")){
String path=file.getAbsolutePath();
System.out.println("-libraryjars " + path.substring(path.indexOf("libs")).replace("\\", "/"));
}
}
private static void listFields(File file){
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
getField(files[i]);
}
}
}
混淆注意事项
应用中加入了百度地图sdk
在proguard-project.txt里面加入下面的代码:-keep class com.baidu.** {
*;
}
不要写成(具体括号错误的是什么给忘了):
-keep class com.baidu.** {
public *;
}
应用中加入了shareSDK
在文件中添加:-keep class cn.sharesdk.**{*;}
-keep class com.sina.**{*;}
-keep class **.R$* {*;}
-keep class **.R{*;}
-dontwarn cn.sharesdk.**
-dontwarn **.R$*
以上来自:【mob移动开发者服务平台】
我这里还加了下面的东西:
-dontwarn cn.sharesdk.onekeyshare.**
-keep class cn.sharesdk.onekeyshare.**
-dontwarn net.sourceforge.simcpux.**
-keep class net.sourceforge.simcpux.**