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 开启代码混淆和混淆规则的更多相关文章

  1. Android 开发怎样做代码加密或混淆?

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 在大公司怎么做android代码混淆的?发现他们的软件用apktool反编译居然没看到classes.dex文件和当前安卓APP加固到底该如何做到防 ...

  2. pycharm开启代码智能提示和报错提示

    天呐,经历了一大波周折,终于把提示给弄好了,加入没有提示的话,pycharm就是一个空格了,没有什么作用,对我来说,真的是很困难的事情,所以无论如何都要去把这个智能提示给搞好了. 先讲讲我的经历吧.我 ...

  3. Eclipse开启代码自动提示功能

    Eclipse代码里面的代码提示功能默认是关闭的,只有输入“.”的时候才会提示功能,用vs的用户可能不太习惯 这种,vs是输入任何字母都会提示,下面说一下如何修改eclipse配置,开启代码自动提示功 ...

  4. 通过C#调用,实现js加密代码的反混淆,并运行js函数

    前一篇我测试了vba调用htmlfile做反混淆,并执行js加密函数的代码.本文换成C#实现. 联系QQ:564955427 C#操作JS函数,可以通过ScriptControl组件,但这个组件只能在 ...

  5. Dotfuscator Professional Edition获取代码发布和混淆代码

    1 Dotfuscator Professional Edition 4.9 破解版 下载地址:http://www.pc0359.cn/downinfo/39815.html 备份地址:C:\D\9 ...

  6. Python 代码的加密混淆

    py 脚本编译成 c 文件(cython) 用 cython 将核心代码 py 模块文件转化成 .c 文件,再用 gcc 编译成 so(unix)文件,或者将其编译成 pyd(windows)文件. ...

  7. Android 混淆与混淆过滤

    Android 中代码混淆一般用的是ProGuard.它除了混淆代码之后还有其它许多实用的功能.这里主要记录混淆相关的实现. 1.ProGuard的作用 删除无用代码,压缩和优化Class文件,缩小A ...

  8. (使用通过混淆+自己第三方保留成功混淆)AndroidStudio 混淆打包

    原文:https://blog.csdn.net/mazhidong/article/details/64820838 AndroidStudio中的项目可以用compile的形式引入github上的 ...

  9. js混淆 反混淆 在线

    js反混淆地址:http://www.bm8.com.cn/jsConfusion/ 在线javascript 混淆http://www.moralsoft.com/jso-online/hdojso ...

随机推荐

  1. 使用WebBrowser自动登录阿里妈妈网站

    窗体上放一个WebBrowser,其Url属性设置为http://www.alimama.com/membersvc/member/login.htm,其他属性为默认 再放一个Button,默认 Bu ...

  2. AtCoder Grand Contest 007 E:Shik and Travel

    题目传送门:https://agc007.contest.atcoder.jp/tasks/agc007_e 题目翻译 现在有一个二叉树,除了叶子每个结点都有两个儿子.这个二叉树一共有\(m\)个叶子 ...

  3. Win7点击文件夹右键可打开cmd控制台,并获取当前目录

    当我们用cmd时,有时要切换到某个文件夹的目录,可以在当前目录下,按住shift单击右键打开控制台,也可以在鼠标右键中添加cmd启动命令: 1.在开始搜索框输入regedit,打开注册表: 2.打开 ...

  4. 利用union判断系统的大小端

    int checkCPUendian()//返回1,为小端:反之,为大端: { union { unsigned int a; unsigned char b; }c; c.a = 1; return ...

  5. 4.1-4.2 基于HDFS云盘存储系统分析及hadoop发行版本

    一.基于HDFS云盘存储系统 如:某度网盘 优点: *普通的商用机器 内存 磁盘 *数据的安全性 操作: *put   get *rm  mv *java api *filesystem 核心: *H ...

  6. Lua 不是 C++

    http://blog.codingnow.com/2008/08/lua_is_not_c_plus_plus.html 嗯,首先,此贴不是牢骚帖. 话题从最近私人的一点工作开始.应 dingdan ...

  7. css3 display:box 属性

    先看例子: .ub{ display: -webkit-box !important; display: box !important; position:relative;}.ub-f1{ posi ...

  8. HDU3555【数位DP】

    入门...还在学习中,先贴一发大牛博客 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题目大意: 给一个数字n,范围在1~2^63-1,求1~ ...

  9. Xmind8 Pro 思维导图制作软件,傻瓜式安装激活教程

    xmind 是做思维导图的软件?今天有一个以前的同事还在和我要这个软件,当然我支持正版啊 !因为正版好用! 我是一个不爱说废话的人,就顺便分享一下 给大家用! 软件下载地址: 链接:https://p ...

  10. 学习Spring Boot看这两个开源项目就够了!非得值得收藏的资源

    Spring Boot我就不做介绍了,大家都懂得它是一个多么值得我们程序员兴奋的框架. 为什么要介绍这两个开源项目呢? 1.提供了丰富的学习实践案例 2.整合了非常多优质的学习资源 不多说了,直接上链 ...