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

    xiaoxiao2021-03-25  92

    ---------------------------------------------------我的总结------------------------------------------------------ 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
    转载请注明原文地址: https://ju.6miu.com/read-12415.html

    最新回复(0)