编译Android Emulator

获取源代码

Android Emulator的代码在默认的AOSP版本中并未包含,需要指定相关的版本后才能同步。

获取repo

跟ASOP一样,下载Android Emulator的代码,同样需要使用repo工具,可以访问网页
https://source.android.com/source/downloading.html 获取下载及相关安装指导。

选择当前Android Studio的开发分支

查看网页 http://tools.android.com/build 获取最新的分支信息,当前的分支为emu-master-dev

使用repo检出代码

mkdir emu-master-dev
cd emu-master-dev
repo init -u https://android.googlesource.com/platform/manifest \
        -b emu-master-dev
repo sync

可以将emu-master-dev替换成其他你想要切换的分支。

下文将emu-master-dev目录用$TOP来代替。

网络链接不稳的处理

国内访问AOSP网站经常出现“不稳定”的情况,因此推荐从国内的TUNA源获取代码,详情可以
访问https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

编译

如果一切依赖关系都满足,则执行以下命令就可以顺利编译出Android Emulator。

  cd $TOP/external/qemu
  ./android/rebuild.sh

默认编译出来的文件是放在$TOP/external/qemu下的objs目录,可以使用–out-dir=<path>
换成你要的目录

在objs目录下,有几个有趣的测试程序:

HelloTriangle
HelloHostComposition
HelloSurfaceFlinger
HelloVulkan

这些是主机侧的图形界面测试程序,默认执行时不会有图形显示,需要设置环境变量才会有
显示。

# 是否使用主机的GPU加速,经测试设置后,无法正常关闭
export ANDROID_EMU_TEST_WITH_HOST_GPU=1
# 是否显示图形窗口
export ANDROID_EMU_TEST_WITH_WINDOW=1