加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

请你吃一顿史上最全的Android混淆大餐

发布时间:2019-08-20 21:12:23 所属栏目:业界 来源:hardwork
导读:副标题#e# 在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的基本操作。那么,混淆到底是什么?它的好处有哪些?具体效果如何?别急,下面我们来一一探索它的

-dontwarn 命令一般在我们引入新的 library 时会使用到,常用于处理 library 中无法解决的警告。如:

  1. -keep class twitter4j.** { *; } 
  2. -dontwarn twitter4j.** 

其他的命令用法可参考 Android 系统提供的默认混淆规则:

  1. #混淆时不生成大小写混合的类名 
  2. -dontusemixedcaseclassnames 
  3. #不跳过非公共的库的类 
  4. -dontskipnonpubliclibraryclasses 
  5. #混淆过程中记录日志 
  6. -verbose 
  7. #关闭预校验 
  8. -dontpreverify 
  9. #关闭优化 
  10. -dontoptimize 
  11. #保留注解 
  12. -keepattributes *Annotation* 
  13. #保留所有拥有本地方法的类名及本地方法名 
  14. -keepclasseswithmembernames class * { 
  15.  native <methods>; 
  16. #保留自定义View的get和set方法 
  17. -keepclassmembers public class * extends android.view.View { 
  18.  void set*(***); 
  19.  *** get*(); 
  20. #保留Activity中View及其子类入参的方法,如: onClick(android.view.View) 
  21. -keepclassmembers class * extends android.app.Activity { 
  22.  public void *(android.view.View); 
  23. #保留枚举 
  24. -keepclassmembers enum * { 
  25.  **[] $VALUES; 
  26.  public *; 
  27. #保留序列化的类 
  28. -keepclassmembers class * implements android.os.Parcelable { 
  29.  public static final android.os.Parcelable$Creator CREATOR; 
  30. #保留R文件的静态成员 
  31. -keepclassmembers class **.R$* { 
  32.  public static <fields>; 
  33. -dontwarn android.support.** 
  34. -keep class android.support.annotation.Keep 
  35. -keep @android.support.annotation.Keep class * {*;} 
  36. -keepclasseswithmembers class * { 
  37.  @android.support.annotation.Keep <methods>; 
  38. -keepclasseswithmembers class * { 
  39.  @android.support.annotation.Keep <fields>; 
  40. -keepclasseswithmembers class * { 
  41.  @android.support.annotation.Keep <init>(...); 

混淆"黑名单"

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读