开始先说打包签名:
1.打开你的AS选中你的project->bulid,
2.跟eclipse一样搞一个key,自己填写一下改写的什么注册的信息什么的,然后就会获得key和password,此处省略一万字--!然后就是填写了,
图2,
3.等待就可以了,project的app目录下你会找到打包签名的apk包,就这样。
end
下面说混淆部分:
1.把你的build.gradle,改一下true,
2.接着就是proguard-rules.pro里面的,注意:不要写jar了哈,AS已经做好这部分操作了,
-optimizationpasses 5 # 指定代码的压缩级别 -dontusemixedcaseclassnames # 是否使用大小写混合 -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 * extends android.app.backup.BackupAgentHelper # 保持哪些类不被混淆 -keep public class * extends android.preference.Preference # 保持哪些类不被混淆 -keep public class com.android.vending.licensing.ILicensingService # 保持哪些类不被混淆 -keepclasseswithmembernames class * { # 保持 native 方法不被混淆 native <methods>; } -keepclasseswithmembers class * { # 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * {# 保持自定义控件类不被混淆 public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { # 保持自定义控件类不被混淆 public void *(android.view.View); } -keepclassmembers enum * { # 保持枚举 enum 类不被混淆 public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { # 保持 Parcelable 不被混淆 public static final android.os.Parcelable$Creator *; }
end
最后是说反编译:这个用的是最基本的方法,还有一写底层的方法这里就暂不介绍,先说一些常用的。
用dex2jar.bat和jd-gui.exe,然后就是看图操作,
图1,
图2,
end
最后多说一句,努力赚钱吧~
时间: 2024-10-09 07:43:52