# 用 Gradle 构建 Android 应用

本教程将向你展示如何使用Pipeline编排并构建一个使用Gradle构建的简单Android APP应用程序,并创建印象的APK文件供开发、测试等人员使用。

# 前置要求

  1. 需要使用版本控制工具,如:SVN/Git
  2. 需及时向版本库提交代码和从代码库中更新代码
  3. 准备一台服务器:
  • 编译、打包服务器:获取最新代码执行代码编译

安装 SVN/Git 客户端

安装 JDK,并设置好环境变量:JAVA_HOME

安装 Android SDK

安装 Gradle,并设置好环境变量:GRADLE_HOME

Appium 自动化测试服务端环境【待加入】

# Pipeline 流程图

image

# 实现步骤

# 步骤一、基础
  1. 登录CORNERSTONE
  2. 工作台->选择工程->DevOps

# 步骤二、主机

# 进入主机 , 创建编译、打包主机
  • compile.itit.io [持续集成部署]

    image

  1. 安装JDK
yum install java-1.8.0-openjdk* -y
java -version
  1. 安装Gradle环境
brew install gradle
gradle --version
  1. 安装SVN
yum install -y subversion
svn --version
  1. 安装Android SDK
wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
unzip sdk-tools-linux-4333796.zip
cd android-sdk-linux/tools
sdkmanager "platform-tools," "platforms;android-29"
# 步骤三、创建Android应用程序
  1. 打开Android Studio ,Start a new Android Studio project

    image

  2. Choose your project ,选择一个Enpty Activity

    image

  3. Configure your project ,录入相关参数信息

    image

  4. 创建签名文件

    • 打开 Build 菜单, Generate Signed Bundle or APK

    image

    • 选择 APK

    image

    • 创建New Key Store

    image

    • 选择保存路径、录入信息。Next

    image

app 目录下,build.gradle android 配置节点下,默认创建:

    signingConfigs {
        CornerstoneRelease {
            storeFile file('路径/jks/cornerstone_android_demo.jks')
            storePassword '密码'
            keyAlias = 'AndroidDemo'
            keyPassword '密码'
        }
    }
  1. 应用程序结构
DemoAndroidSystem
├── .gradle 文件夹 -- gradle 工具的各个版本
└── app --  开发文件夹
     ├── src
     ├── build.gradle -- 只对本 app 有效构建文件
     └── proguard-rules.pro
├── gradle -- gradle 工具的打包
├── jks -- 签名文件夹
├── build.gradle -- 效构建文件
├── gradle.properties -- gradle 相关配置文件
├── gradlew -- 批处理文件
├── gradlew.bat -- Windows 下的批处理文件
├── local.properties -- 保存 Android SDK 所在的路径
└── setting.gradle -- 初始化过程执行
  1. 配置:导出签名文件名

修改 app 目录下,build.gradle android 配置节点下,新增:

android.applicationVariants.all {
    variant ->
        variant.outputs.all {
            outputFileName = "DemoAndroidSystem.apk"
        }
}
  1. 配置:Sonarqube 构建配置

修改项目根目录下,build.gradle dependencies 配置节点下,新增:

classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7"

修改项目根目录下,build.gradle 根节点下,新增:

apply plugin: "org.sonarqube"

# 步骤四、Pileline

# 进入Pileline , 创建Pipeline
var project='DemoAndroidSystem'

var pipeline={
    stages:{      
        compile:{
            node:'compile.example.com',
            workspace:'/home/appadmin/cornerstone/repo',   
            steps:{
                svnCheckOut(){
                    $.sh('svn co svn://svn.example.com/repo/'+ project);
                    $.sh('svn update '+ project);     
                },
                complileApp(){
                    ret=$.sh('cd ./'+project+';./gradlew assembleRelease');
                    if(ret!=0){
                        $.abort('编译失败')
                    }
                },
                archive(){
                 	$.artifact(project+'.apk','1',project+'/app/build/outputs/apk/release/'+project+'.apk');             
                }
            }
        },
        QA:{
            node:'compile.itit.io',
            workspace:'/home/appadmin/cornerstone/repo',
            steps:{
                sonar(){
                    $.sh('cd '+project+';./gradlew sonarqube  .' +
                     '-Dsonar.projectKey=DemoAndroidSystem ' +
                     '-Dsonar.host.url=http://sonar.example.com ' +
                     ' -Dsonar.login=241903fc40086457a3ed1cb620c23b3e651b5903')
                }
            }
        }
    }
};