Proguard参数
参数:?
-include?{filename}?从给定的文件中读取配置参数?
-basedirectory?{directoryname}?指定基础目录为以后相对的档案名称?
-injars?{class_path}?指定要处理的应用程序jar,war,ear和目录?
-outjars?{class_path}?指定处理完后要输出的jar,war,ear和目录的名称?
-libraryjars?{classpath}?指定要处理的应用程序jar,war,ear和目录所需要的程序库文件?
-dontskipnonpubliclibraryclasses?指定不去忽略非公共的库类。?
-dontskipnonpubliclibraryclassmembers?指定不去忽略包可见的库类的成员。
保留选项:?
-keep?{Modifier}?{class_specification}?保护指定的类文件和类的成员?
-keepclassmembers?{modifier}?{class_specification}?保护指定类的成员,如果此类受到保护他们会保护的更好?
-keepclasseswithmembers?{class_specification}?保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在。?
-keepnames?{class_specification}?保护指定的类和类的成员的名称(如果他们不会压缩步骤中删除)?
-keepclassmembernames?{class_specification}?保护指定的类的成员的名称(如果他们不会压缩步骤中删除)?
-keepclasseswithmembernames?{class_specification}?保护指定的类和类的成员的名称,如果所有指定的类成员出席(在压缩步骤之后)
-printseeds?{filename}?列出类和类的成员-keep选项的清单,标准输出到给定的文件
压缩:?
-dontshrink?不压缩输入的类文件?-printusage?{filename}?
-whyareyoukeeping?{class_specification}?
优化:?
-dontoptimize?不优化输入的类文件?
-assumenosideeffects?{class_specification}?优化时假设指定的方法,没有任何副作用?
-allowaccessmodification?优化时允许访问并修改有修饰符的类和类的成员
混淆:?
-dontobfuscate?不混淆输入的类文件?-printmapping?{filename}?
-applymapping?{filename}?重用映射增加混淆?
-obfuscationdictionary?{filename}?使用给定文件中的关键字作为要混淆方法的名称?
-overloadaggressively?混淆时应用侵入式重载?
-useuniqueclassmembernames?确定统一的混淆类的成员名称来增加混淆?
-flattenpackagehierarchy?{package_name}?重新包装所有重命名的包并放在给定的单一包中
-repackageclass?{package_name}?重新包装所有重命名的类文件中放在给定的单一包中?
-dontusemixedcaseclassnames?混淆时不会产生形形色色的类名?
-keepattributes?{attribute_name,...}?保护给定的可选属性,
例如LineNumberTable,?LocalVariableTable,?SourceFile,?Deprecated,?Synthetic,?Signature,?and?InnerClasses?
-renamesourcefileattribute?{string}?设置源文件中给定的字符串常量
Proguard参数的更多相关文章
- android 通过eclipse混淆代码 打包 + proguard 总结
android应用程序的混淆打包 1 . 在工程文件project.properties中加入下proguard.config=proguard.cfg , 如下所示: target=android- ...
- 【转】其实你不知道MultiDex到底有多坑
遭遇MultiDex 愉快地写着Android代码的总悟君往工程里引入了一个默默无闻的jar然后Run了一下, 经过漫长的等待AndroidStudio构建失败了. 于是带着疑惑查看错误信息. UNE ...
- android 混淆配置
proguard 原理Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到.为了防止重要code 被泄露,我们往往需要混淆( ...
- android MultiDex multidex原理原理下遇见的N个深坑(二)
android MultiDex 原理下遇见的N个深坑(二) 这是在一个论坛看到的问题,其实你不知道MultiDex到底有多坑. 不了解的可以先看上篇文章:android MultiDex multi ...
- android 混淆 与 反编译
1, 文件 project.properties 修改: target=android-14proguard.config=${sdk.dir}/tools/proguard/proguard-and ...
- Cannot merge new index 65781 into a non-jumbo instruction! 问题解决(网上摘抄)
我的报了这个错 Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.buil ...
- Eclipse与Android源码中ProGuard工具的使用
由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的 ...
- Android proguard 详解
本文转载于:http://blog.csdn.net/banketree/article/details/41928175 简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往 ...
- ProGuard代码混淆技术详解
前言 受<APP研发录>启发,里面讲到一名Android程序员,在工作一段时间后,会感觉到迷茫,想进阶的话接下去是看Android系统源码呢,还是每天继续做应用,毕竟每天都是画UI ...
随机推荐
- 解析XML文档
<html> <body><h1>W3School.com.cn Internal Note</h1><p><b>To:< ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
- swift 001
swift 001 = 赋值是没有返回值的 所以 int a=10; int b=20; if(a=b){ printf("这个是错误的"); } swift 中的模运算 是支 ...
- linux启动和关闭
startup,startup mount,startup nomount之间的区别: STARTUP NOMOUNT选项:(读初始化参数文件,启动实例)STARTUP NOMOUNT选项启动实例,但 ...
- appium 处理动态控件
环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html 知乎Android客户端登陆:http://www.cnblogs.com/tobe ...
- Python:Pycharm下无法导入安装好的第三方模块?
Pycharm下无法导入安装好的第三方模块requests? 在cmd下使用pip安装好requests模块后,可以使用import requests,但在Pycharm IDE下无法导入,出现如下错 ...
- 图片大小以及dp和px关系一览表,logo尺寸
图片大小以及dp和px关系一览表 说明:根据上表,我们应该很容易算出一张图片在不同手机上的宽和高是多少. 结论 从上表可以得出如下结论 1. 图片放在drawable中,等同于放在drawable-m ...
- 无废话ExtJs 入门教程十九[API的使用]
无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...
- [LeetCode] Reverse Linked List II
Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1-> ...
- PIL中分离通道发生“AttributeError: 'NoneType' object has no attribute 'bands'”
解决方法: 这个貌似是属于一个bug 把Image.py中的1500行左右的split函数改成如下即可: def split(self): "Split image into bands&q ...