我想修改(目前,在来宾和主机端添加更多日志)Android 模拟器,我想它主要在 AOSP 中可用。
我的理解(或者更确切地说,想象)是Android模拟器可能有4个组件:
我想象 1 位于一个单独的存储库中,并且可能作为命令行参数等提供给模拟器。我认为 2 和 3 可能在
AOSP
树中,我可能需要正确的目标/配置。我不知道 4 ——因为 4 现在作为可执行文件位于预构建目录中。
我找不到所有 4 个组件的完整构建说明。我找到了一些,但它们似乎已经过时了,并且不适用于最新的
aosp/main
分支。例如,this解释了如何构建模拟器二进制文件,它现在位于aosp
的预构建目录中。虽然文章说我应该lunch sdk_phone_x86_64-userdebug
,但目标似乎已经不存在了。
我只是运行了
lunch
,它显示了支持的目标列表。但是,其中没有 goldfish
或 ranchu
或 emulator
。有一些以 sdk
开头,但全部都是 sdk_car_*
。它们似乎不相关。
构建所需的 Android 模拟器组件的过程是怎样的?我使用的是 Linux (Debian),并用于在这里构建 android 映像。然而,我无法弄清楚我们应该如何构建模拟器、其内核以及模拟器将运行的图像。
根据 Google 一位从事 Goldfish 工作的 SWE 的说法,午餐目标已更改为:
sdk_phone64_x86_64-trunk_staging-userdebug
。
而且,午餐菜单项不知怎的并没有出现在仅仅
lunch
命令上。
根据同一个 SWE 的说法,Goldfish 似乎没有修改内核,或者“与 Cuttlefish 共享内核。”
模拟器的清单分支是
emu-master-dev
。构建指令似乎是:
$ cd external/qemu
$ ./android/rebuild.sh --gfxstream
$ ls ./objs/emulator