美文网首页
Android 混淆打包相关

Android 混淆打包相关

作者: 冬絮 | 来源:发表于2017-09-22 11:09 被阅读5次

1. 保留区

     #-------------------------------------------定制化区域----------------------------------------------
            #---------------------------------1.实体类---------------------------------
    
    -keep class 你的实体类所在的包.** { *; }
    
            #-------------------------------------------------------------------------
    
            #---------------------------------2.第三方包-------------------------------
    
    #详情见后边/或者去gitHub上找
    
            #-------------------------------------------------------------------------
    
            #---------------------------------3.与js互相调用的类------------------------
    
    
    
            #-------------------------------------------------------------------------
    
            #---------------------------------4.反射相关的类和方法-----------------------
    
    
    
            #----------------------------------------------------------------------------
            #---------------------------------------------------------------------------------------------------
    
            #-------------------------------------------基本不用动区域--------------------------------------------
            #---------------------------------基本指令区----------------------------------
            -optimizationpasses 5
            -dontusemixedcaseclassnames
            -dontskipnonpubliclibraryclasses
            -dontskipnonpubliclibraryclassmembers
            -dontpreverify
            -verbose
            -printmapping proguardMapping.txt
            -optimizations !code/simplification/cast,!field/*,!class/merging/*
    -keepattributes *Annotation*,InnerClasses
    -keepattributes Signature
    -keepattributes SourceFile,LineNumberTable
    #----------------------------------------------------------------------------
    
    #---------------------------------默认保留区---------------------------------
    -keep public class * extends android.app.Activity
    -keep public class * extends android.app.Application
    -keep public class * extends android.app.Service
    -keep public class * extends android.content.BroadcastReceiver
    -keep public class * extends android.content.ContentProvider
    -keep public class * extends android.app.backup.BackupAgentHelper
    -keep public class * extends android.preference.Preference
    -keep public class * extends android.view.View
    -keep public class com.android.vending.licensing.ILicensingService
    -keep class android.support.** {*;}
    
    -keepclasseswithmembernames class * {
        native <methods>;
    }
    -keepclassmembers class * extends android.app.Activity{
        public void *(android.view.View);
    }
    -keepclassmembers enum * {
        public static **[] values();
        public static ** valueOf(java.lang.String);
    }
    -keep public class * extends android.view.View{
        *** get*();
        void set*(***);
        public <init>(android.content.Context);
        public <init>(android.content.Context, android.util.AttributeSet);
        public <init>(android.content.Context, android.util.AttributeSet, int);
    }
    -keepclasseswithmembers class * {
        public <init>(android.content.Context, android.util.AttributeSet);
        public <init>(android.content.Context, android.util.AttributeSet, int);
    }
    -keep class * implements android.os.Parcelable {
      public static final android.os.Parcelable$Creator *;
    }
    -keepclassmembers class * implements java.io.Serializable {
        static final long serialVersionUID;
        private static final java.io.ObjectStreamField[] serialPersistentFields;
        private void writeObject(java.io.ObjectOutputStream);
        private void readObject(java.io.ObjectInputStream);
        java.lang.Object writeReplace();
        java.lang.Object readResolve();
    }
    -keep class **.R$* {
     *;
    }
    -keepclassmembers class * {
        void *(**On*Event);
    }
    #----------------------------------------------------------------------------
    
    #---------------------------------webview------------------------------------
    -keepclassmembers class fqcn.of.javascript.interface.for.Webview {
       public *;
    }
    -keepclassmembers class * extends android.webkit.WebViewClient {
        public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
        public boolean *(android.webkit.WebView, java.lang.String);
    }
    -keepclassmembers class * extends android.webkit.WebViewClient {
        public void *(android.webkit.WebView, jav.lang.String);
    }
    #----------------------------------------------------------------------------
    #---------------------------------------------------------------------------------------------------

2. 常见的第三方库

  • Butter Knife

      -keep class butterknife.** { *; }
      -dontwarn butterknife.internal.**
      -keep class **$$ViewBinder { *; }
      -keepclasseswithmembernames class * {
      @butterknife.* <fields>;
      }
              -keepclasseswithmembernames class * {
      @butterknife.* <methods>;
      }
    
  • Retrofit

      -dontwarn retrofit2.**
      -keep class retrofit2.** { *; }
      -keepattributes Signature
      -keepattributes Exceptions
    
  • RxJava RxAndroid

      -dontwarn sun.misc.**
      -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
      long producerIndex;
      long consumerIndex;
      }
      -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
      rx.internal.util.atomic.LinkedQueueNode producerNode;
      }
      -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
      rx.internal.util.atomic.LinkedQueueNode consumerNode;
      }
    
  • Gson

      -keepattributes Signature-keepattributes *Annotation*
      -keep class sun.misc.Unsafe { *; }
      -keep class com.google.gson.stream.** { *; }
      # Application classes that will be serialized/deserialized over Gson 下面替换成自己的实体类
      -keep class com.example.bean.** { *; }
    
  • OkHttp3

      -dontwarn com.squareup.okhttp3.**
      -keep class com.squareup.okhttp3.** { *;}
      -dontwarn okio.**
    
  • Glide

      -keep public class * implements com.bumptech.glide.module.GlideModule
      -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
      **[] $VALUES;
      public *;
      }
    
  • 友盟统计

      -keepclassmembers class * {
      public <init> (org.json.JSONObject);
      }
      -keep public class [您的应用包名].R$*{
      public static final int *;
      }
      -keepclassmembers enum * {
      public static **[] values(); public static ** valueOf(java.lang.String);
      }

相关文章

  • Android上线事项

    1 ,混淆 混淆相关 点这里 混淆手册 2,签名打包 正式开始打包,首先Android Studio --B...

  • Android 混淆打包相关

    1. 保留区 2. 常见的第三方库 Butter Knife -keep class butterknife.*...

  • Android minify shrink proguard r

    Android gradle脚本打包时如何配置只压缩而不混淆?我们知道gradle打包相关的参数有: minify...

  • Android 混淆使用入门笔记

    概述 混淆是Android Apk打包过程中的一个重要步骤,默认情况下,打包都是需要混淆过程的。 Android ...

  • Android的多渠道打包|SquirrelNote

    系列文章:Android的反编译和代码混淆Android的打包签名[Android的多渠道打包 前言 本篇包括以下...

  • APK瘦身

    参考文章: 给APK瘦身 Android安装包相关知识汇总 安装包立减1M--微信Android资源混淆打包工具A...

  • Android的反编译和代码混淆

    系列文章:Android的反编译和代码混淆Android的打包签名Android的多渠道打包 前言 包括以下内容 ...

  • Android的打包签名

    系列文章:Android的反编译和代码混淆Android的打包签名Android的多渠道打包 前言 从以下几个方面...

  • 优雅的处理 Android 代码混淆 Keep 问题

    为了源码安全以及缩小 APK 体积,Android 应用发布前是必须要进行混淆打包的。而混淆打包并不是全量打包,特...

  • android混淆打包

    # Gson -keepclass com.google.gson.stream.** {*;} -keepatt...

网友评论

      本文标题:Android 混淆打包相关

      本文链接:https://www.haomeiwen.com/subject/bloxextx.html