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 ...
随机推荐
- bzoj 2179 FFT快速傅立叶 —— FFT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2179 默写板子,注释的是忘记的地方. 代码如下: #include<iostream& ...
- python2代码批量转为python3代码
由于python存在python2和python3两个主要的版本方向,经常会有将python2的代码转到python3的环境下运行的需求.尤其是跑一些神经网络的代码时有很多是在python2的环境下写 ...
- HDU1203(01背包变形)
I NEED A OFFER! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u D ...
- Day03:集合、文件处理和函数基础
上节课复习: 1.总结 可变/不可变: 可变类型:list,dict 不可变类型:int,float,str,tuple ...
- shell脚本 列出所有网卡的ip地址
#!/bin/bashfor i in `ifconfig | grep -o ^[a-z0-9]*`do ifconfig $i|sed -n 2p|awk '{ print $2 }'|tr -d ...
- unity3D +php +数据库
本文只是自己学习 摘录网上前人的学习资料,并非自己写的!!!!!!最近有项目需要用到数据库,网上有不少资料,但是整理后发现,那些资料对于完全没有PHP+MySQL经验的人来说还是很难理解,所以分享一下 ...
- ECharts使用问题
Echarts官网上给的例子,在最后有一个分号. 使用ajax请求,在eval()转化时出现错误,原因就是因为多了一个分号
- python之继承、抽象类、派生、多态、组合、封装
1.继承概念的实现方式主要有2类:实现继承.接口继承. Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力: Ø 接口继承是指仅使用属性和方法的名称.子类必须提供 ...
- 发送邮件小工具(python)
#!/usr/bin/python # -*- coding:UTF- -*- import sys import smtplib import email.mime.multipart import ...
- 微信小程序开发之页面跳转并携带参数
接口: wx.navigateTo({url:......}) 保留当前页面,跳转到应用内指定URL页面,导航栏左上角有返回按钮 wx.redirecTo({url:.....}) 关 ...