问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android gradle怎么加密代码

发布网友 发布时间:2022-04-25 03:36

我来回答

3个回答

热心网友 时间:2023-10-23 14:23

Android Studio和Eclipse能做到的是代码混淆,Android项目的代码混淆都是通过配置项目properties文件中的proguard.config属性完成的,
如:proguard.config=proguard.cfg,那混淆的逻辑就写在了proguard.cfg这个文件中。
至于proguard.cfg怎么写,要根据你的具体情况来做了(你想混淆哪些代码由你自己定义)
下面是一个proguard.cfg的例子:

-optimizationpasses 5 # 指定代码的压缩级别
-dontusemixedcaseclassnames # 是否使用大小写混合
-dontskipnonpubliclibraryclasses # 是否混淆第三方jar
-dontpreverify # 混淆时是否做预校验
-verbose # 混淆时是否记录日志
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法

-keepattributes SourceFile,LineNumberTable

-dontwarn org.apache.**
-dontwarn com.appsflyer.**

#四大组件不能混淆
-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 * extends android.view.View {*;}

-keepclasseswithmembernames class * {
native <methods>;

}

-keepclassmembers class * {
public <init>(org.json.JSONObject);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keepattributes *Annotation*,EnclosingMethod
-keepclasseswithmembers class * {
public <init>(android.content.Context, Android.util.attributeSet, int);
}

# Google Play Services library
-keep class * extends java.uti.ListResourceBundle{
protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable{
public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable{
public static final ** CREATOR;
}

热心网友 时间:2023-10-23 14:24

如:proguard.config=proguard.cfg,那混淆的逻辑就写在了proguard.cfg这个文件中。
至于proguard.cfg怎么写,要根据你的具体情况来做了(你想混淆哪些代码由你自己定义)
下面是一个proguard.cfg的例子:

-optimizationpasses 5 # 指定代码的压缩级别
-dontusemixedcaseclassnames # 是否使用大小写混合
-dontskipnonpubliclibraryclasses # 是否混淆第三方jar
-dontpreverify # 混淆时是否做预校验
-verbose # 混淆时是否记录日志
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法

-keepattributes SourceFile,LineNumberTable

-dontwarn org.apache.**
-dontwarn com.appsflyer.**

#四大组件不能混淆
-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 * extends android.view.View {*;}

-keepclasseswithmembernames class * {
native <methods>;

}

-keepclassmembers class * {
public <init>(org.json.JSONObject);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keepattributes *Annotation*,EnclosingMethod
-keepclasseswithmembers class * {
public <init>(android.content.Context, Android.util.attributeSet, int);
}

# Google Play Services library
-keep class * extends java.uti.ListResourceBundle{
protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable{
public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable{
public static final ** CREATOR;
}

热心网友 时间:2023-10-23 14:24

Android Studio和Eclipse能做到的是代码混淆,Android项目的代码混淆都是通过配置项目properties文件中的proguard.config属性完成的,
如:proguard.config=proguard.cfg,那混淆的逻辑就写在了proguard.cfg这个文件中。至于proguard.cfg怎么写,要根据具体情况来做了(想混淆哪些代码由自己定义)
下面是一个proguard.cfg的例子:

-optimizationpasses 5 # 指定代码的压缩级别
-dontusemixedcaseclassnames # 是否使用大小写混合
-dontskipnonpubliclibraryclasses # 是否混淆第三方jar
-dontpreverify # 混淆时是否做预校验
-verbose # 混淆时是否记录日志
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* # 混淆时所采用的算法
-keepattributes SourceFile,LineNumberTable
-dontwarn org.apache.**
-dontwarn com.appsflyer.**
四大组件不能混淆
自定义控件不要混淆
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 iOS14的IDFA新规影响很大吗? 在appsflyer怎样将落地页连接到应用商店 苹果手机Safari进贴吧就会跳出这个红页面是什么回事? appsflyerap怎么使用 茄子快传和茄子科技是什么关系?是同一个公司么? 除了csdn app外,还有其他好的软件吗 adjust/appsflyer 这两家移动广告第三方监测工具哪家好用 广告分析方面,App Annie和 Zingfront 哪个更好 APPSFLYER指数:Google在移动应用广告中位居第一,FB排第几? appsFLyer怎么做数据统计?基础步骤是什么? 门钥匙丢了怎么开锁 防盗门钥匙丢了怎么开锁 卷闸门的钥匙丢了怎样才能打开门 钉钉群号字母加数字 怎么通过钉钉号加群? 有没好的评书网站啊? 有哪些好听的经典评书推荐? 经典评书大系在哪里有下载? 在推荐我几部好的评书 经典的 请给我一个在线听评书的网址,最好全一点的,谢谢 希望大家推荐几部好的评书 在东南亚当地哪些中国出海APP用的比较多? 谷歌第三方归因 茄子快传被印度禁了之后咋赚钱啊?前景还好吗? 经常html文本替换 用什么方法 html怎么实现获取文本框输入内容再按替换模板替换再输出到另一个文本... 怎样把带html格式的内容转换成纯文本的文字.txt 求定时替换网页文字的html代码 如何大批量修改静态Html,批量文本替换工具使用 html如何设置定时更换文本的功能? html 文字替换 关于IPTS、TTT、PTT这几种培训师认证那个更适合我? 批量处理html文本,查找固定文字,替换为不同的文字 培训师资格证那个最有权威!是PTT还是TTT还是别的什么 如何把html转换为文本格式 用什么方法可以自动替换掉某一段HTML代码 人员培训师培训证需要多少钱 html复制文本框1的值后替换部分内容后粘贴到文本框2中 PTT国际专业讲师培训的目的是什么? 网页内指定内容替换,已经生成好的HTML文件,怎么用JS来替换指定的文字... 为什么要学习ptt传承讲师培训