文档章节

混淆规则

a
 avalon451990
发布于 2016/09/21 14:23
字数 583
阅读 98
收藏 0

这里贴一份目前正在使用的混淆规则:

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Users/yfc/android/studio_SDK/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}
#############################################
# 代码混淆压缩比,在0~7之间,默认为5,一般不做修改
-verbose
-optimizationpasses 5

# 混合时不使用大小写混合,混合后的类名为小写
-dontusemixedcaseclassnames

# 混淆时是否做预校验
-dontpreverify

# 指定不去忽略非公共库的类
-dontskipnonpubliclibraryclasses

# 指定不去忽略非公共库的类成员
-dontskipnonpubliclibraryclassmembers

# 混淆时所采用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

# 避免混淆泛型
-keepattributes Signature

# 抛出异常时保留代码行号
-keepattributes SourceFile,LineNumberTable

#保持 native static 方法不被混淆
-keep public class * {
    native <methods>;
    static <methods>;
}

# 保留support下的所有类及其内部类
-keep class android.support.** {*;}
-dontwarn android.support.**

# 保留bolts下的所有类及其内部类
-keep class bolts.** {*;}
-dontwarn bolts.**

# 保留fastjson下的所有类及其内部类
-keep class com.alibaba.fastjson.** {*;}
-dontwarn com.alibaba.fastjson.**

# 保留com.android.vending.billing下的所有类及其内部类
-keep class com.android.vending.billing.** {*;}
-dontwarn com.android.vending.billing.**

# 保留applovin下的所有类及其内部类
-keep class com.applovin.** {*;}
-dontwarn com.applovin.**

# 保留appsflyer下的所有类及其内部类
-keep class com.appsflyer.** {*;}
-dontwarn com.appsflyer.**

# 保留avos下的所有类及其内部类
-keep class com.avos.** {*;}
-dontwarn com.avos.**

# 保留avoscloud下的所有类及其内部类
-keep class com.avoscloud.** {*;}
-dontwarn com.avoscloud.**

# 保留avoscloud_gcm下的所有类及其内部类
-keep class com.avoscloud_gcm.** {*;}
-dontwarn com.avoscloud_gcm.**

# 保留chartboost下的所有类及其内部类
-keep class com.chartboost.** {*;}
-dontwarn com.chartboost.**

# 保留facebook下的所有类及其内部类
-keep class com.facebook.** {*;}
-dontwarn com.facebook.**

# 保留flurry下的所有类及其内部类
-keep class com.flurry.** {*;}
-dontwarn com.flurry.**

# 保留google下的所有类及其内部类
-keep class com.google.** {*;}
-dontwarn com.google.**

# 保留picasso下的所有类及其内部类
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.picasso.**

# 保留bugly下的所有类及其内部类
-keep class com.tencent.bugly.** {*;}
-dontwarn com.tencent.bugly.**

# 保留unity3d下的所有类及其内部类
-keep class com.unity3d.ads.** {*;}
-dontwarn com.unity3d.ads.**

# 保留httpclient下的所有类及其内部类
-keep class cz.msebera.** {*;}
-dontwarn cz.msebera.**

# 保留async http下的所有类及其内部类
-keep class com.loopj.android.http.** {*;}
-dontwarn com.loopj.android.http.**

-keep class android.net.**{*;}
-dontwarn android.net.**

-keep class org.apache.http.** {*;}
-dontwarn org.apache.http.**

-keep class org.cocos2dx.** {*;}
-dontwarn org.cocos2dx.**

© 著作权归作者所有

a
粉丝 1
博文 13
码字总数 5661
作品 0
朝阳
Android工程师
私信 提问
Android Studio ProGuard基础语法和打包配置

这是对Android打包混淆所需配置所做的总结. ProGuard常用语法 下面列出一些常用的语法 -libraryjars class_path 应用的依赖包,如android-support-v4 -keep [,modifier,...] class_specific...

Erichkko
2015/11/23
481
1
使用Android Studio混淆打包(ProGuard基础语法和打包配置)

前言:前一段时间被领导叫去使用ProGuard对项目进行混淆,折腾了两天才弄好,在学习的过程中发现了这篇文章,对自己的帮助很大,特意摘抄下来分享给大家。 ProGuard常用语法 下面列出一些常用...

天鬼
2017/11/18
0
0
Android开发混淆使用手册

一、Android混淆最佳实践 混淆配置。 自定义混淆规则。 检查混淆结果。 解出混淆栈。 二、混淆简介 代码压缩。 资源压缩。 三、自定义混淆规则 常见混淆命令。 保持元素不参与混淆的规则。 ...

未来程序员
2017/04/20
0
0
Android开发者的混淆使用手册

综述 毫无疑问,混淆是打包过程中最重要的流程之一,在没有特殊原因的情况下,所有 app 都应该开启混淆。 首先,这里说的的混淆其实是包括了代码压缩、代码混淆以及资源压缩等的优化过程。依...

ForingY
2016/10/24
10
0
写给Android开发者的混淆使用手册

写在前面 大家好,我是光源。 本文首发于我的个人公众账号,同时会在个人博客上同步。假如有任何建议还请移步博客点评,同时如果博客本身有修改或勘误,也会在博客更新。 综述 毫无疑问,混淆...

丁佳辉
2018/08/31
48
0

没有更多内容

加载失败,请刷新页面

加载更多

ERC-777以太坊新代币标准解读

ERC777是一个新的高级代币标准,可以视为ERC20的升级版本,因此它解决了ERC20以及ERC223存在的一些问题,开发者可以根据自己的具体需求进行选型。 1、使用ERC820进行合约注册 有别于ERC20的自...

汇智网教程
24分钟前
2
0
代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部