更新时间:2024-11-12 GMT+08:00

使用Android构建

Android构建用于编译应用资源和源代码,并将它们打包成可供部署、签署和分发的APK。

图形化构建

  1. 配置构建步骤中,添加“Android构建”构建步骤,参考表1配置参数。
    表1 Android构建参数说明

    参数

    说明

    步骤显示名称

    构建步骤的名称,可自定义修改。

    • 支持中文、英文、数字、“-”“_”、英文逗号、英文分号、英文冒号、“.”“/”、圆括号(中英文)。
    • 字符长度范围为1~128。

    Gradle

    根据用户实际开发环境的需要,选择对应的工具版本。

    CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境

    JDK

    根据用户实际开发环境的需要,选择对应的工具版本。

    CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境

    NDK

    根据用户实际开发环境的需要,选择对应的工具版本。

    CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境

    命令

    配置Gradle命令,一般使用系统默认给出的命令即可。如果需要配置更多命令,可参考Gradle官网

    失败后是否继续运行

    当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。

  2. 如果需要使用apksigner对Android APK进行签名,可添加“Android APK签名”构建步骤,参数说明如下:

    参数

    说明

    步骤显示名称

    构建步骤的名称,可自定义修改。

    • 支持中文、英文、数字、“-”“_”、英文逗号、英文分号、英文冒号、“.”“/”、圆括号(中英文)。
    • 字符长度范围为1~128。

    需要签名的APK路径

    Android构建后生成要签名的“.apk”文件位置。

    支持正则表达式,如:可以使用“build/bin/*.apk”匹配构建出来的APK包。

    Keystore文件

    在下拉框中选择用于签名的Keystore文件。文件的制作以及上传指导可参考生成并上传Keystore签名文件

    keystore password

    可选参数。

    填写自定义的密钥文件密码。

    别名(Alias)

    自定义密钥别名。

    • 以字母开头,支持字母、数字、“_”“-”“.”
    • 字符长度为1~128。

    key password

    可选参数。

    填写自定义的密钥密码。

    apksigner命令行

    自定义签名的参数,默认“--verbose”显示签名详情。

    失败后是否继续运行

    当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。

    配置完成后执行构建任务,当显示任务执行成功后,查看构建日志,若“Android APK签名”步骤对应日志中显示结果“Signed”,表示签名成功。

代码化构建

参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。

  1. Android构建代码示例如下:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    version: 2.0 # 必须是2.0
    steps:
      BUILD:
        - android:
            inputs:
              gradle: 4.8 
              jdk: 1.8
              ndk: 17
              command: | 
                cat ~/.gradle/init.gradle
                cat ~/.gradle/gradle.properties
                cat ~/.gradle/init_template.gradle
                rm -rf ~/.gradle/init.gradle
                rm -rf /home/build/.gradle/init.gradle
                # 使用CodeArts Build提供的gradle wrapper,充分利用缓存加速
                cp /cache/android/wrapper/gradle-wrapper.jar ./gradle/wrapper/gradle-wrapper.jar
                # 构建未签名的APK
                /bin/bash ./gradlew assembleDebug -Dorg.gradle.daemon=false -d --stacktrace
             ignore_fail: true
    
    表2 Android构建代码示例参数说明

    参数名

    参数类型

    参数说明

    command

    string

    填写Gradle执行命令。如果需要配置更多命令,可参考Gradle官网

    gradle

    string

    根据用户实际开发环境的需要,选择对应的工具版本。

    CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境

    jdk

    string

    根据用户实际开发环境的需要,选择对应的工具版本。

    CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境

    ndk

    string

    根据用户实际开发环境的需要,选择对应的工具版本。

    CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境

    ignore_fail

    string

    用于控制当前步骤执行失败后是否继续执行下一个步骤。
    • true:是。
    • 为空:否。
  2. Android APK签名代码示例如下:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    version: 2.0 # 必须是2.0
    steps:
      BUILD:
        - android_sign:
                inputs:
                   file_path: build/bin/*.apk
                       keystore_file: androidapk.jks
                       keystore_password: xxxxxx
                       alias: keyalias
                       key_password: xxxxxx
                       apksigner_commond: --verbose
                       ignore_fail: true
    
    表3 Android APK签名代码示例参数说明

    参数名

    参数类型

    参数说明

    file_path

    string

    Android构建后生成要签名的“.apk”文件位置。

    支持正则表达式,如:可以使用“build/bin/*.apk”匹配构建出来的APK包。

    keystore_file

    string

    Keystore文件名。文件的制作以及上传指导可参考生成Keystore签名文件并上传至文件管理

    keystore_password

    string

    可选参数。

    填写自定义的密钥文件密码。

    alias

    string

    密钥别名。

    • 以字母开头,支持字母、数字、“_”“-”“.”
    • 字符长度为1~128。

    key_password

    string

    可选参数。

    填写自定义的密钥密码。

    apksigner_commond

    string

    自定义签名的参数,默认“--verbose”显示签名详情。

    ignore_fail

    string

    用于控制当前步骤执行失败后是否继续执行下一个步骤。
    • true:是。
    • 为空:否。

Android版本说明

  • SDK:用户项目构建compileSdkVersion版本。
  • Build Tools:用户项目构建所需buildToolsVersion版本。

两个版本可以在项目下的“build.gradle”文件或是项目的全局配置文件(用户自定义)中找到。

  • 用户需要选择正确的compileSdkVersion版本和buildToolsVersion版本。
  • 也支持Gradle的wrapper构建方式,如果提供的gradle版本没有满足您的要求,您也可以直接使用gradlew命令,使用wrapper去构建,会自动下载您所需要的gradle版本,构建命令例如:./gradlew clean build

生成Keystore签名文件并上传至文件管理

  1. Keystore签名文件有以下两种生成方式。
    • 使用JDK的keytool工具生成签名文件
      1. 找到JDK安装位置以及keytool.exe。

      2. 执行生成密钥命令,生成.jks文件。
        keytool -genkeypair -storepass 123456 -alias apksign -keypass 123456 -keyalg RSA -validity 20000 -keystore D:/android.jks

    • 使用Android Studio生成签名文件
      1. 打开Studio客户端,选择Build > Generate Signed Bundle/APK

      2. 选择“APK”,单击“Next”
      3. 单击“Create new...”,在弹出框填写相关信息,单击“OK”,然后单击“Next”

      4. 签名文件成功生成,查看文件。

  2. 上传“Keystore签名文件”到文件管理,分为两种上传方式。
    • “Android构建”构建步骤的“Keystore文件”处,单击“上传”,在弹出的窗口中选择文件,添加描述,勾选相关协议,然后单击“保存”
    • 在编译构建服务首页,单击更多 > 文件管理,单击“上传文件”,在弹出的窗口中选择文件,添加描述,勾选相关协议,然后单击“保存”
    在文件管理页面,可以编辑文件、下载文件、删除文件、为用户配置文件操作权限。
    • 在搜索框输入关键字,可搜索文件。
    • 单击操作列,可修改文件名称,并设置是否允许租户内所有成员在编译构建中使用该文件。
    • 单击操作列,可以下载文件。
    • 单击操作列,在下拉框中选择“删除”,可根据弹框提示确认是否删除。
    • 单击操作列,在下拉框中选择“编辑权限”,可在弹出的界面配置用户操作文件的权限。
      图1 配置用户操作文件权限
      表4 文件管理角色权限说明

      权限类型

      拥有该权限的角色

      添加用户

      项目下所有用户。

      查看

      文件创建者、相同租户的用户。

      使用

      文件创建者、文件创建者配置了使用权限的用户。

      更新

      文件创建者、文件创建者配置了更新权限的用户。

      删除

      文件创建者、文件创建者配置了删除权限的用户。

      编辑权限

      文件创建者。

      创建者默认有所有权限并且不可被删除和修改。