Android Studiogradle多渠道打包

Posted 寒小枫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studiogradle多渠道打包相关的知识,希望对你有一定的参考价值。

1.简介

由于android应用市场比较多,项目上线之前需要对每个市场进行打包,单独打包当然可以,但是如果要上传的市场比较多,这个工作量就比较大了,万一打包出现点问题还要重新再次打包,想想都害怕,所以我们可以采用多渠道打包的方式,在进行一些简单的配置后,可以一次性打包所有指定的各渠道apk文件,传统的eclipse一般使用ant进行多渠道打包,此处不作介绍,感兴趣的可以自行google学习,随着Android Studio开发工具的不断普及,所以介绍下Android Studio使用gradle来实现多渠道打包。

2.签名文件的配置

使用signingConfigs进行签名配置,下面代码分别配置了debug 版和release版的签名信息.

signingConfigs 

        //debug版签名配置
        debug 
            //key别名
            keyAlias 'test'
            //key密码
            keyPassword '123456'
            //密钥文件路径
            storeFile file('D:/AndroidStudioWork/MyApplication/test.jks')
            //密钥文件密码
            storePassword '123456'
        

        //发布版签名配置
        release 
            //key别名
            keyAlias 'test'
            //key密码
            keyPassword '123456'
            //密钥文件路径
            storeFile file('D:/AndroidStudioWork/MyApplication/test.jks')
            //密钥文件密码
            storePassword '123456'
        
    

3.buildTypes的配置

使用buildTypes指定编译时使用的签名配置.

buildTypes 

        //debug使用上面debug的配置
        debug 
            signingConfig signingConfigs.debug 
        

        //release使用上面release的配置
        release 
            signingConfig signingConfigs.release
        
    

4.productFlavors的配置

使用productFlavors指定需要的渠道.

    /*
        指定多个渠道
    */
    productFlavors 
        dev 
            manifestPlaceholders = [channel: "dev"]
        
        official 
            manifestPlaceholders = [channel: "official"]
        
        xiaomi 
            manifestPlaceholders = [channel: "xiaomi"]
        
        wandoujia 
            manifestPlaceholders = [channel: "wandoujia"]
        
        "360" 
            manifestPlaceholders = [channel: "360"]
        
    

5.打包

使用gradlew build命令进行打包操作,打好成功后会出现下图success的提示:

然后打开输出目录会看的打好的包,包含debug和release版本:

6.修改默认输出apk包的名字

上图中apk包名字是默认的,我们自己定义下:测试+buildtype+版本+渠道名,当然你也可以定义其他的,定义方式在build.gradle文件中添加如下配置:

applicationVariants.all  variant ->

        variant.outputs.each  output ->

            output.outputFile = new File(

                    output.outputFile.parent,

                    "测试-$variant.buildType.name-$defaultConfig.versionName-$variant.productFlavors[0].name.apk".toLowerCase())

        

    

然后执行gradlew build命令打包:

7.gradlew命令介绍

介绍一下常用的gradlew 命令含义:

  • gradlew assembleDebug 编译并打Debug包

  • gradlew assemblexiaomiDebug 编译并打xiaomi的debug包,其他类似

  • gradlew assembleRelease 编译并打Release的包

  • gradlew assemblexiaomiRelease 编译并打xiaomi的Release包,其他类似

  • gradlew installRelease Release模式打包并安装

  • gradlew uninstallRelease 卸载Release模式包

  • gradlew clean 删除app目录下的build文件夹

  • gradlew build 检查依赖并编译打包




参考资料:

1.Android Studio 多渠道打包、自动版本号及 gradlew 命令的基本使用

2.Android Studio 使用Gradle多渠道打包

3.Android Studio debug使用release的签名

以上是关于Android Studiogradle多渠道打包的主要内容,如果未能解决你的问题,请参考以下文章

android的多渠道打包

Android多渠道批量打包

android 多渠道打包

Android中利用ant进行多渠道循环批量打包

Android 多渠道打包方式详解

Android多渠道批量打包