Android Proguard
Android Proguard
14 May 2015
语法
-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}设置源文件中给定的字符串常量
Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a>
Related Posts
向黑客的格调靠拢
20 Oct 2015
简易代码重构对应表
04 Jun 2015
How to Design A Good API
21 May 2015
Android Proguard的更多相关文章
- 利用android proguard混淆代码
利用android proguard混淆代码 2014-02-05 17:50 1207人阅读 评论(1) 收藏 举报 网上虽然有很多相关博客,不过貌似都不是最新版的..于是百度+谷歌+github上 ...
- Android proguard混淆签名打包出现"android proguard failed to export application"解决方案
刚刚接触安卓,不是很熟悉.发现之前可以正常打包的项目出现添加混淆再进行打包签名的APK之后提示"android proguard failed to export application&q ...
- Android 代码混淆、Android Proguard(混淆)
Android Proguard(混淆) 混淆(Proguard)用法 最近项目中遇到一些混淆相关的问题,由于之前对proguard了解不多,所以每次都是面向Stackoverflow的编程.co ...
- Android proguard 详解
本文转载于:http://blog.csdn.net/banketree/article/details/41928175 简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往 ...
- [Android]proguard重新编译和如何不混淆第三方jar包
转载自:http://glblong.blog.51cto.com/3058613/1536516 一.ant安装.环境变量配置及验证 (一)安装ant 到官方主页http://ant.apache. ...
- android ProGuard 代码混淆实现
1 修改project.properties,添加ProGuard配置项 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt: ...
- Android proguard (混淆)
混淆(Proguard)用法 最近项目中遇到一些混淆相关的问题,由于之前对proguard了解不多,所以每次都是面向Stackoverflow的编程.copy别人的答案内心还可以接受,但是copy了之 ...
- Android 项目的代码混淆,Android proguard 使用说明
简单介绍 Java代码是非常easy反编译的. 为了非常好的保护Java源码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还 ...
- Android Proguard使用技巧
1.混淆后解码 ProGuard运行结束后,输出以下文件: dump.txt :描述.apk文件中所有类文件间的内部结构 mapping.txt:列出了原始的类,方法和字段名与混淆后代码间的映射.这个 ...
随机推荐
- Java-Android 之单选按钮的运用
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- java.util.Random深入理解
java.util.Random next方法的原理 比较好的参考文档: http://isky001.iteye.com/blog/1339979 package random.utilrandom ...
- sql查询过程中 update,insert,delete可视化收影响行数
insert into test_tb output inserted.id,inserted.data values('c'),('d') delete from test_tb output de ...
- Angularjs总结(六) 上传附件
所用插件:angular-file-upload 这个插件用到的几个指令:nv-file-select(点击选择).uploader(用于绑定控制器中新建的uploader对象) HTML: < ...
- ios手势复习值之换图片-转场动画(纯代码)
目标:实现通过手势进行图片的切换 通过左扫右扫 来实现(纯代码) 添加三个属性 1uiImageView 用来显示图片的view 2 index 用来表示图片的索引 3 ISLeft 判断是不是向 ...
- css 不确定元素宽度的水平居中
对于一个不确定宽度的元素居中,我们想到使用的方法是 text-align:center; 或者 margin:0 auto; text-align只对行内元素有效,对于块元素我们要用margin,块元 ...
- windows API 统计系统字体
最近工作中遇到一个需求,需要统计当前系统中包含的所有字体.在网上逛了一圈后发现了EnumFontFamiliesEx这个API好像就可以实现这个功能.这里将自己对这个API的理解做一个记录,算是对这块 ...
- 在CentOS 7中轻松安装Atomic应用(atomicapp)
sudo yum install docker atomic etcd kubernetes sudo systemctl enable docker.service sudo systemctl s ...
- PHP面向对象(OOP):PHP5接口技术(interface)
PHP与大多数面向对象编程语言一样,不支持多重继承.也就是说每个类只能继承一个父类.为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法.接口是一种特殊的抽象 ...
- frame,bounds,center-三者的含义
frame与bounds的区别比较 frame,bounds,center-三者的含义 偶然觉的,这三个属性有时候定位的时候,需要用.于是就来搞清楚,到底frame,bounds,center 这三个 ...