ProGuard配置
ProGuard配置
牛八少爷
工欲善其事,必先利其器
展开
-
ProGuard简介和执行流程(一)
1 ProGuard简介 ProGuard是一款免费的Java类文件的压缩器(Shrink)、优化器(Optimize)、混淆器(Obfuscate)和预验证器(Preveirfy)。 1) 压缩(shrink):用于检测并递归确定使用哪些类和类成员,删除没有使用的类、字段、方法和属性; 2) 优化(Optimize):对字节码进行优化,非入口的类和方法可以使私有、静态或final,删除...原创 2018-07-13 05:17:16 · 893 阅读 · 0 评论 -
ProGuard的反射获取类和类成员(二)
5. 处理反射 反射(Reflection)和内省(IntroSpector)对代码的自动处理提出了特殊的问题;在ProGuard中,代码中创建或调用的类或类成员也必须指定入口点,通过Class.ForName()构造在运行时引用的任何类,哪些类需要预留都可以在配置文件中进行配置。 因此,必须在ProGuard中配置进行指定,ProGuard已经为你检测和处理情况: Class.forName...原创 2018-07-13 05:17:28 · 644 阅读 · 0 评论 -
ProGuard参数配置(三)
6.参数配置 6.1输入输出选项(Input/Output Options) -include {filename} 递归从给定的目录中读取配置参数 -basedirectory {directoryname} 指定基础目录为以后相对的档案名称 -injars {class_path} 指定要处理的应用程序jar,war,ear和目录 -outj...原创 2018-07-13 05:17:38 · 390 阅读 · 0 评论 -
ProGuard参数配置(四)
6.3压缩选项( Shrink Options) -dontshrink 不压缩输入的类文件 ,默认除了keep相关的类,其他未被引用的类被删除; -printusage {filename} 将删除的元素输出到文件,或输出流; -whyareyoukeeping {class_specification} 打印为什么要保护这个类成员; 6...原创 2018-07-13 05:17:53 · 466 阅读 · 0 评论 -
ProGuard参数配置(五)
6.6 预校验选项(Preverification Options) Android不需要preverify,去掉可以加快混淆; -dontpreverify 混淆是否做预校验, -microedition 6.7 常规选项(General Options) -verbose 混淆时是否记录日志; -dontnote [class_filter] 不打印某些错...原创 2018-07-13 05:18:05 · 346 阅读 · 0 评论 -
ProGuard类和类成员修饰和注意事项(六)
8. 保持元素不参与混淆的规则 语句结构:[保持命令] [类] { [成员] } “类”表示符合相关限定条件的类,它的内容可以使用: 具体的类 访问修饰符(public、protected、private) 通配符*,匹配任意长度字符,但不含包名分隔符(.) 通配符**,匹配任意长度字符,并且包含包名分隔符(.) extends,即可以指定类的基类 implement,匹配实现了某...原创 2018-07-13 08:07:36 · 609 阅读 · 0 评论 -
ProGuard配置模版(七)
########################## ##### 常规配置 ##### ########################## # 忽略警告,避免打包时某些警告出现 -ignorewarnings #指定代码混淆压缩级别,在0~7之间,默认为5,一般不做修改 -optimizationpasses 5 #是否使用大小写混合,混合后的类名为小写 -dontus...原创 2018-07-13 08:10:05 · 670 阅读 · 0 评论 -
ProGuard的第三方jar配置案例(八)
########################## ##### 第三方jar配置 ##### ########################## # AndroidEventBus -keep class org.simple.** { *; } -keep interface org.simple.** { *; } -keepclassmembers class * { @...转载 2018-07-13 08:18:04 · 738 阅读 · 0 评论 -
AndResGuard资源混淆工具(微信资源混淆打包)
参考资料:github的 Android资源混淆工具使用说明 WeMobileDev公众号文章 AndResGuard是腾讯内部员工开源的项目,腾讯多个Android产品使用; AndResGuard的原理类似Java ProGuard,但是它只针对资源,会将原本的资源路径变短; 例如res/drawable/wechat变...原创 2018-07-14 10:14:38 · 1017 阅读 · 0 评论