Android Studio Gradle自动打包文档

来源:互联网 发布:水杉软件下载 编辑:程序博客网 时间:2024/06/10 01:17

背景

为了保证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包>

总结

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

原创粉丝点击