首页
/ Robolectric项目Android构建脚本使用指南

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

常见问题与建议

  1. 磁盘空间不足:确保有足够的空间(建议至少150GB),特别是对于较新的Android版本。

  2. 构建时间过长:可以适当增加并行任务数,但不要超过物理核心数。

  3. 签名问题:确保GPG密钥已正确设置,且密码正确。

  4. 网络问题:同步Android源码需要稳定的网络连接,建议使用高速网络。

通过本文的指导,您应该能够成功构建Robolectric所需的Android版本jar文件,为Android单元测试环境做好准备。