跳到主要内容

GiteeAndroidBuildOnline(APK 在线构建)

安卓构建环境

  • Ubuntu 20.04
  • Android NDK r19c
  • Gradle 6.9.1(未指定版本时使用)
  • Kotlin version 1.3.31
  • OpenJDK version 8/11/17,默认 8

使用步骤

  1. 管理 -> 基本信息 -> 语言:Android
  2. 仓库首页 -> 下载 APK:
  3. 新建构建,选择构建版本、Java 版本,填写构建类型:
  4. 构建过程:
  5. 构建完成:

Android 项目构建示例

gitee-sample/android-kotlin 为例。

目录结构

标准的 Android 项目目录结构即可,如:

.
├── app
│ ├── build.gradle
│ └── src
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties # 可选
├── gradle.properties
├── gradlew # 必需
├── gradlew.bat
└── settings.gradle
  • gradle/wrapper/gradle-wrapper.properties 文件存在时,Gitee 会读取并修改该文件
  • gradlew 必需且权限为可执行,构建时执行

构建流程:

  1. 判断是否为标准的 gradle 项目

  2. 修改 gradle/wrapper/gradle-wrapper.properties 中的属性 distributionUrl 以加快 gradle 下载速度,如:

    -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
    +distributionUrl=file:///data/android/gradle-zip/gradle-7.3.3-bin.zip
  3. (可选)处理签名配置

  4. 执行 gradlew。为加快构建速度,执行过程中会使用 gitee 内部的 maven 镜像 maven.local

  5. (可选)签名

  6. 构建成功后,上传 apk。目录中新创建的 *.apk 文件都会被上传

关于签名

Android 系统要求所有 APK 必须先使用证书进行数字签名,然后才能安装到设备上或进行更新。

为保护应用签名密钥和密钥库,不建议将相关信息放到 Git 仓库中,然而缺失相关内容又会导致 APK 打包错或者生成的 APK 文件无法直接安装到 Android 系统上。为此,Gitee 提供了一个可选项:保留签名配置。

选中 “保留签名配置”

Gitee 不会修改配置文件。

如果配置文件中存在签名相关配置项,但签名相关文件无法访问,构建将会失败。

未选中 “保留签名配置”

当 “保留签名配置” 选中时,Gitee 会执行如下操作:

  1. 删除 build.gradle 文件签名相关配置,用 shell 脚本表示大致如下:
readarray -d '' bfs < <(find apk-repo/ -type f -name "build.gradle" -print0)
for bf in ${bfs[@]}
do
sed -i \
-e "/keyAlias\s/d" \
-e "/keyPassword\s/d" \
-e "/storeFile\s/d" \
-e "/storePassword\s/d" \
-e "/signingConfig\ssigningConfigs/d" \
${bf}
done
  1. 通过命令工具 keytool 生成随机 keystore
  2. 通过命令工具 apksigner 进行对 apk 文件进行签名