AS混淆打包和多渠道打包总结

来源:互联网 发布:邓云天觉知视频 编辑:程序博客网 时间:2024/06/12 07:32
---------------------------------------------------我的总结------------------------------------------------------
gradle中:
buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }




-----------------------------------------proguard-rules.pro中---------------------------------------




#-----------------混淆配置设定------------------------------------------------------------------------
-optimizationpasses 5                                                       #指定代码压缩级别
-dontusemixedcaseclassnames                                                 #混淆时不会产生形形色色的类名
-dontskipnonpubliclibraryclasses                                            #指定不忽略非公共类库
-dontpreverify                                                              #不预校验,如果需要预校验,是-dontoptimize
-ignorewarnings                                                             #屏蔽警告
-verbose                                                                    #混淆时记录日志
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*    #优化


#-----------------不需要混淆第三方类库------------------------------------------------------------------
-dontwarn android.support.v4.**                                             #去掉警告
-keep class android.support.v4.** { *; }                                    #过滤android.support.v4
-keep interface android.support.v4.app.** { *; }
-keep public class * extends android.support.v4.**
-keep public class * extends android.app.Fragment




#-----------------不需要混淆系统组件等-------------------------------------------------------------------
-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.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public class * extends android.app.backup.BackupAgentHelper


-keep class com.classtc.test.entity.**{*;}                                   #过滤掉自己编写的实体类




#----------------保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在------------------------------------
-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}


-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}
-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 class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}




---------------------------------------------------多渠道打包(友盟)-------------------------------------------------------------
先在Manifest中:
<meta-data android:name="UMENG_CHANNEL"
     android:value="${UMENG_CHANNEL_VALUE}" />


在gradle中:
//多渠道打包
android {
    // 打包渠道List
    productFlavors {
        LianXiang {}
        Baidu {}
        AnZhi{}
        F360{}
        xiaomi {}
        MeiZu{}
        WanDouJia{}
        QQYingYongBao{}
    }
// 批量处理,直接使用flavor的name作为APP_CHANNEL_VALUE的值
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
}


然后Build--》Generate Signed APK
0 0
原创粉丝点击