Android Studio Gradle自动打包文档

背景

为了保证App上线前测试环境正式环境切换不需要改变代码,提高效率,使用Gradle脚本配置正式包和测试包。

Gradle配置与打包 build.gradle 文件的配置

buildTypes {
             /** 正式环境*/
            release {
                    /** 定义开关*/
                    buildConfigField("boolean", "IsDebug", "false")
                    /** 定义正式环境  腾讯云bucket*/
                    buildConfigField("String", "TENCENT_UPLOAD_BUCKET", "\"topworld\"")
                    /** 定义正式环境 HOST*/
                     buildConfigField("String", "HOST", "\"www.lovbook.net\"")
                    /** 打开 代码混淆*/
                    minifyEnabled true
                    /** 打开 应用程序进行优化*/
                    zipAlignEnabled true
                    /** 打开 移除无用资源*/
                    shrinkResources true
                    /** 加载 签名文件*/
                    signingConfig signingConfigs.release
                    /** 加载 混淆文件*/
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                    /** 输出 混淆apk release_vxx_codexx_yyyyMMddHH.apk*/
            }
            /** 测试环境*/
             debug {
                     /** 定义开关*/
                     buildConfigField("boolean", "IsDebug", "true")
                     /** 定义测试环境 腾讯云bucket*/
                    buildConfigField("String", "TENCENT_UPLOAD_BUCKET", "\"lovebook\"")
                    /** 定义测试环境 HOST*/
                    buildConfigField("String", "HOST", "\"api.lovbook.net\"")
                    /** 关闭 代码混淆*/
                    minifyEnabled false
                    /** 关闭 优化*/
                    zipAlignEnabled false
                    /** 关闭 移除无用资源*/
                    shrinkResources false
                    /** 加载 签名文件*/
                         signingConfig signingConfigs.debug
                    /** 输出 apk debug_vxx_codexx_yyyyMMddHH.apk*/

其中release版本的log默认关闭,如果需要在该环境下看log,修改lovebook module的gradle配置文件。将IsDebug变量修改为true。

    release {
                /** 定义开关*/
                buildConfigField("boolean", "IsDebug", "true")
            }     

在release版本中开启“shrinkResources true”,移除无用资源,会导致某些书籍的详情页面图片显示为黑框。是因为移除了不应该被移除的资源导致。所以release版本中该开关暂时关闭设置为false。后期继续优化这个问题。

代码中的配置:

在BuildConfig类中会生成如下代码:

gradle签名文件的获取

    signingConfigs {
             release {
                    try {
                        storeFile file(RELEASE_STOREFILE)
                        keyAlias RELEASE_KEY_ALIAS
                        keyPassword RELEASE_KEY_PASSWORD
                        storePassword RELEASE_STOREPASSWORD
                    } catch (ex) {
                 throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.");
                    }
            }
                debug {
             }
    }

keystore签名文件的保存

签名文件keystore密码的常量配置在gradle.properties文件中(原则上这个文件不上传SVN):其中RELEASE_STOREFILE 对应你自己签名文件的路径。

编译app

生成apk配置完毕之后,重新编译之后,这时候AndroidStudio工具栏的左下方的Build Variants窗口里面的lovebook Module可以选择编译方式:release 和debug
(打包之前clean一下项目)

选择完毕,连接手机,运行编译器。会安装对应的relase或者debug包。同时在你的项目目录D:\as_pj\androidProject\lovebook\build\outputs\apk 也会生成对应的apk文件。

使用命令行打包

可以使用androidstudio工具下的 命令行使用gradlew命令进行打包,然后根据需要执行(1)/(2) /(3),生成的文件在 app–>build–>outputs–>apk下
(如果配置了gradle的环境变量 也可以使用gradle命令进行操作)。

(1). gradlew build <注:这个是打所有的包>

(2). gradlew assembleDebug <注:这个是打Debug包>

(3). gradlew assembleRelease <注:这个是打Release包>

总结

后期会根据情况添加多渠道打包.

你可能感兴趣的:(android,studio,gradle,打包,AndroidStudio学习,Android工具)