Robolectric项目Android构建脚本使用指南
2025-07-07 07:38:51作者:邵娇湘
前言
Robolectric是一个流行的Android单元测试框架,它允许开发者在JVM上运行Android测试而无需模拟器或真实设备。本文将详细介绍如何使用Robolectric项目中的build-android.sh
脚本构建特定Android版本的android-all jar文件。
准备工作
1. 安装Repo工具
Repo是开发的用于管理多个Git仓库的工具,特别适合Android源码这样的大型项目。
安装步骤:
# 创建bin目录并加入PATH
mkdir ~/bin
PATH=~/bin:$PATH
# 下载Repo工具并设置可执行权限
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2. 初始化Repo客户端
配置Git用户信息(用于代码提交):
git config --global user.name "您的姓名"
git config --global user.email "您的邮箱"
注意:如果您计划使用Gerrit代码审查工具,需要使用已注册账号关联的邮箱地址。
3. 安装依赖项
在Ubuntu系统上需要安装以下依赖包:
sudo apt-get install git-core gnupg gnupg-agent flex bison gperf build-essential \
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip libswitch-perl
同步和构建Android源码
使用sync-android.sh
脚本同步并构建Android源码:
./sync-android.sh <源码根目录> <Android版本> <并行任务数>
支持的Android版本
Robolectric支持构建以下Android版本的jar文件:
- Lollipop系列:5.0.2_r3 (API 21)、5.1.1_r9 (API 22)
- Marshmallow:6.0.1_r3 (API 23)
- Nougat系列:7.0.0_r1 (API 24)、7.1.0_r7 (API 25)
- Oreo系列:8.0.0_r4 (API 26)、8.1.0 (API 27)
- Pie:9 (API 28)
- Android 10:10 (API 29)
- Android 11:11 (API 30)
- Android 12系列:12 (API 31)、12.1 (API 32)
- Android 13:13 (API 33)
- Android 14:14 (API 34)
注意:同步和构建过程可能需要超过100GB的磁盘空间。
并行任务数选择
<并行任务数>
应设置为机器可用核心数的大致值,这将影响构建速度。
构建Robolectric Android Jar
准备工作
构建完成后需要对生成的artifacts进行GPG签名。建议预先启动gpg-agent:
gpg-agent --daemon
执行构建脚本
在Robolectric目录中运行:
export SIGNING_PASSWORD=<GPG签名密钥的密码>
build-android.sh <AOSP源码目录> <Android版本> <Robolectric子版本>
版本号说明:
- 对于版本
6.0.1_r3-robolectric-0
:- Android版本:
6.0.1_r3
- Robolectric子版本:
0
- Android版本:
常见问题与建议
-
磁盘空间不足:确保有足够的空间(建议至少150GB),特别是对于较新的Android版本。
-
构建时间过长:可以适当增加并行任务数,但不要超过物理核心数。
-
签名问题:确保GPG密钥已正确设置,且密码正确。
-
网络问题:同步Android源码需要稳定的网络连接,建议使用高速网络。
通过本文的指导,您应该能够成功构建Robolectric所需的Android版本jar文件,为Android单元测试环境做好准备。