美文网首页Android
as3.0基本配置及打包过程

as3.0基本配置及打包过程

作者: Lucida_star | 来源:发表于2018-02-04 14:36 被阅读174次

    随着as最新的更新,也有了很多的修改,今天主要介绍as3.0打包的配置及过程

    直接开始

    第一步:

    首先进行配置根目录下的gradle.build

    使用的gradle插件是3.0.0

    image

    然后就是额外的配置:

    image

    第二步:

    配置module下的gradle.build

    引入属性文件,里头包含配置了私钥路径,密码等。取名为:singing.proerties

    image image

    KEY_ALIAS:别名

    KEY_PASSWORD:签名文件密码

    STORE_FILE:文件保存路径

    STORE_PASSWORD:密钥库密码

    然后就是基本配置:

    image

    签名配置:

    image

    构建配置:

    image

    多渠道打包工具:

    image

    然后就是依赖的一些配置:

    image

    然后就是混淆的一些基本配置:

    proguard-rules.pro

    -ignorewarnings

    抑制警告

    -optimizationpasses 5

    代码混淆的压缩比例,值在0-7之间

    -dontusemixedcaseclassnames

    混淆后类名都为小写

    -dontskipnonpubliclibraryclasses

    指定不去忽略非公共的库的类

    -dontskipnonpubliclibraryclassmembers

    指定不去忽略非公共的库的类的成员

    -dontpreverify

    不做预校验的操作

    -verbose

    -printmapping proguardMapping.txt

    生成原类名和混淆后的类名的映射文件

    -optimizations !code/simplification/cast,!field/,!class/merging/

    指定混淆是采用的算法

    -keepattributes Annotation,InnerClasses

    不混淆Annotation

    -keepattributes Signature

    不混淆泛型

    -keepattributes SourceFile,LineNumberTable

    -dontwarn com.squareup.okhttp.**

    -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 *.R$ {

    public static <fields>;

    }

    -keepclassmembers class * {

    void (OnEvent);

    }

    保持 native 方法不被混淆

    -keepclasseswithmembernames class * {

    native <methods>;
    

    }

    保持自定义控件类不被混淆

    -keepclasseswithmembers class * {

    public <init>(android.content.Context, android.util.AttributeSet);
    

    }

    保持自定义控件类不被混淆

    -keepclassmembers class * extends android.app.Activity {

    public void *(android.view.View);

    }

    Butterknife

    -dontwarn butterknife.internal.**

    -keep class butterknife.** { *; }

    -keep class **$$ViewInjector { *; }

    -keepclasseswithmembernames class * {

    @butterknife.InjectView <fields>;
    

    }

    -keepclasseswithmembernames class * {

    @butterknife.OnClick <methods>;
    
    @butterknife.OnEditorAction <methods>;
    
    @butterknife.OnItemClick <methods>;
    
    @butterknife.OnItemLongClick <methods>;
    
    @butterknife.OnLongClick <methods>;
    

    }

    -keep public class * implements com.bumptech.glide.module.GlideModule

    -keep public class * extends com.bumptech.glide.module.AppGlideModule

    -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {

    **[] $VALUES;

    public *;

    }

    -keep class com.umeng.commonsdk.** {*;}

    大家也可以关注我的公众号:Lucidastar
    也可以查看我的github账号:https://github.com/Lucidastar/PackApk

    相关文章

      网友评论

      本文标题:as3.0基本配置及打包过程

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