GiteeAndroidBuildOnline(APK 在线构建)
安卓构建环境
- Ubuntu 20.04
- Android NDK r19c
- Gradle 6.9.1(未指定版本时使用)
- Kotlin version 1.3.31
- OpenJDK version 8/11/17,默认 8
使用步骤
- 管理 -> 基本信息 -> 语言:
Android
: - 仓库首页 -> 下载 APK:
- 新建构建,选择构建版本、Java 版本,填写构建类型:
- 构建过程:
- 构建完成:
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
必需且权限为可执行,构建时执行
构建流程:
-
判断是否为标准的 gradle 项目
-
修改
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 -
(可选)处理签名配置
-
执行
gradlew
。为加快构建速度,执行过程中会使用 gitee 内部的 maven 镜像maven.local
。 -
(可选)签名
-
构建成功后,上传 apk。目录中新创建的
*.apk
文件都会被上传
关于签名
Android 系统要求所有 APK 必须先使用证书进行数字签名,然后才能安装到设备上或进行更新。
为保护应用签名密钥和密钥库,不建议将相关信息放到 Git 仓库中,然而缺失相关内容又会导致 APK 打包错或者生成的 APK 文件无法直接安装到 Android 系统上。为此,Gitee 提供了一个可选项:保留签名配置。
选中 “保留签名配置”
Gitee 不会修改配置文件。
如果配置文件中存在签名相关配置项,但签名相关文件无法访问,构建将会失败。
未选中 “保留签名配置”
当 “保留签名配置” 未选中时,Gitee 会执行如下操作:
- 删除
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
- 通过命令工具 keytool 生成随机 keystore
- 通过命令工具 apksigner 进行对 apk 文件进行签名