1、右击工程->Run As->Android Application 方式build出来的apk不是混淆;
2、右击工程->Android Tools->Export unsigned Application Package方式build出来的apk是混淆的;
如何让方式一达到方式二的效果?
2、右击工程->Android Tools->Export unsigned Application Package方式build出来的apk是混淆的;
如何让方式一达到方式二的效果?
解决方案 »
- 为什么一个Button使用setOnClickListener()方法会出错。
- 为什么我的这段代码只能播放音频不能播放视频,路径是我测试用的,大家可以改改试试。谢谢大家了
- 一段关于在NEtBEANS上生成android 的错误
- 帮忙看看http get请求有什么问题
- 音乐播放器播放列表中的部分歌曲消失了!!!!!!!!
- android底层开发的几个问题
- Gson 解析数据问题 !!! 求解决阿!!
- 刚学习Android,希望大家帮忙改下错误
- WebView AppCache 指定路径
- 请教个问题 web浏览器能调用安卓自带的浏览器打开么??
- android在service里可以启动camera么?
- android ndk ffmpeg时,如何设置相关的编译选择,就能只编译h264相关的解码器?
1 proguard.cfg,这就是混淆所需的proguard脚本。
其代码如下:
view plain
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、BroadcastReceiver、ContentProvider等基本组件。
并保留了所有的Native变量名及类名,所有类中部分以设定了固定参数格式的构造函数,枚举等等。(详细信息请参考<proguard_path>/examples中的例子及注释。)
2 在工程的"default.properties"中添加这样一句话“proguard.config=proguard.cfg”
打包签名后的.apk就是混淆的,其实我们只要做一步就可以了就是在"default.properties"中添加这样一句话“proguard.config=proguard.cfg”就可以了。