as 开启代码混淆和混淆规则
app的builde.gradle的文件下,buildTypes节点添加release节点,minifyEnabled属性表示是否开启混淆,proguardFiles表示混淆依赖的文件,具体开启方法如下:
buildTypes {
release {
minifyEnabled true //开启混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//指定混淆配置文件为 proguard-rules.pro
} }
混淆配置:
#官方的一些配置就不在这里说明了,这里只说下自定义混淆的简单配置方法,通过自定义注解类,保持所有被注解的类名、方法、变量不被混淆掉
-keep class proguard.conf.MyKeep#自定义注解类不能混淆
通过注解控制混淆,需要注意以下几点:
1.如果整个类都需要保留,则在类上面增加注解,混淆配置为
-keep @proguard.conf.MyKeep class *{*;}#包含类名
-keepclassmembers @proguard.conf.MyKeep class *{*;}#不包含类名
2.如果是类的全部成员变量都需要保留,在类上面增加注解,混淆配置为
-keepclasseswithmembers @proguard.conf.MyKeep class *{<fields>;}#包含类名
-keepclassmembers @proguard.conf.MyKeep class *{<fields>;}#不包含类名
3.如果是类的全部方法都需要保留,在类上面增加注解,混淆配置为
-keepclasseswithmembers @proguard.conf.MyKeep class *{<methods>;}#包含类名
-keepclassmembers @proguard.conf.MyKeep class *{<methods>;}#不包含类名
4.如果是类中的某个变量需要保留,在需要保留的变量上面增加注解,混淆配置为
-keepclasseswithmembers class *{
@proguard.conf.MyKeep <fields>;
}#包含类名
-keepclassmembers class *{
@proguard.conf.MyKeep <fields>;
}#不包含类名
5.如果是勒种的某个方法需要保留,在需要保留的方法上面增加注解,混淆配置为
-keepclasseswithmembers class *{
@proguard.conf.MyKeep <methods>;
}#包含类名
-keepclassmembers class *{
@proguard.conf.MyKeep <methods>;
}#不包含类名
关于其他的一些混淆,网上有很多参考资料,基本上都是基于保留 继承于某个类 或者实现了某个接口 的方式进行的保留,这边就不记载了,有需要网上再找吧
as 开启代码混淆和混淆规则的更多相关文章
- Android 开发怎样做代码加密或混淆?
欢迎访问网易云社区,了解更多网易技术产品运营经验. 在大公司怎么做android代码混淆的?发现他们的软件用apktool反编译居然没看到classes.dex文件和当前安卓APP加固到底该如何做到防 ...
- pycharm开启代码智能提示和报错提示
天呐,经历了一大波周折,终于把提示给弄好了,加入没有提示的话,pycharm就是一个空格了,没有什么作用,对我来说,真的是很困难的事情,所以无论如何都要去把这个智能提示给搞好了. 先讲讲我的经历吧.我 ...
- Eclipse开启代码自动提示功能
Eclipse代码里面的代码提示功能默认是关闭的,只有输入“.”的时候才会提示功能,用vs的用户可能不太习惯 这种,vs是输入任何字母都会提示,下面说一下如何修改eclipse配置,开启代码自动提示功 ...
- 通过C#调用,实现js加密代码的反混淆,并运行js函数
前一篇我测试了vba调用htmlfile做反混淆,并执行js加密函数的代码.本文换成C#实现. 联系QQ:564955427 C#操作JS函数,可以通过ScriptControl组件,但这个组件只能在 ...
- Dotfuscator Professional Edition获取代码发布和混淆代码
1 Dotfuscator Professional Edition 4.9 破解版 下载地址:http://www.pc0359.cn/downinfo/39815.html 备份地址:C:\D\9 ...
- Python 代码的加密混淆
py 脚本编译成 c 文件(cython) 用 cython 将核心代码 py 模块文件转化成 .c 文件,再用 gcc 编译成 so(unix)文件,或者将其编译成 pyd(windows)文件. ...
- Android 混淆与混淆过滤
Android 中代码混淆一般用的是ProGuard.它除了混淆代码之后还有其它许多实用的功能.这里主要记录混淆相关的实现. 1.ProGuard的作用 删除无用代码,压缩和优化Class文件,缩小A ...
- (使用通过混淆+自己第三方保留成功混淆)AndroidStudio 混淆打包
原文:https://blog.csdn.net/mazhidong/article/details/64820838 AndroidStudio中的项目可以用compile的形式引入github上的 ...
- js混淆 反混淆 在线
js反混淆地址:http://www.bm8.com.cn/jsConfusion/ 在线javascript 混淆http://www.moralsoft.com/jso-online/hdojso ...
随机推荐
- bzoj3625
fft 分治虽然是万能的,但是太慢了 分治是nlog^2n的,太慢了,于是我们用求逆和开根 设f(x)表示答案为x的方案数 c表示物品的生成函数 那么f=f*f*c+1 f*f表示左右儿子的方案数 c ...
- 2.CSS 颜色代码大全
确实使用,不用重复造轮子了!!! 摘自:http://www.cnblogs.com/circlebreak/p/6140602.html
- TwinCAT3的c++和标准c++(c++11)特性区别
1.vector不能使用花括号初始化 2.不支持cmath,需要使用TcMath.h
- Prime Independence
题意: 对于给定集合,求解最大的子集合,使得集合内两两之商不为质数. 解法: 考虑对于每一个数字分解质因数可以得到 $O(nloglogNUM)$ 条两个数字不可以出现在同一集合的信息. 同时发现一条 ...
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bireportSqlSessionFactory' defined in URL
报错如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'birepo ...
- HDOJ-2047
阿牛的EOF牛肉串 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- opencv 笔记
http://docs.opencv.org/ opencv 2.x API opencv包含以下模块 core 基本数据机构 imgproc 图像处理方法 video 视频处理方法 ...
- linux中的条件变量
1 大家可能知道互斥量是线程程序中必须的工具了,但是也不能是万能的,就比如某个线程正在等待共享数据某个条件的发生,这个时候会发生什么呢.它就可能重复的尝试对互斥对象锁定和解锁来检查共享数据结构. 2 ...
- 前端基础 之css
css 介绍 css(层叠样式表)定义如何显示html 元素 当浏览器读到一个样式表, 他就会按照这个表对文档进行格式化(渲染) css语法 css实例 css 注释 注释是代码之母 /* 这是注释* ...
- Winform禁止程序多开 &&禁止多开且第二次激活第一次窗口
一.禁止多开问题,运用Mutex锁 在Program.cs中运用Mutex锁 bool createNew;using (System.Threading.Mutex mutex = new Syst ...