从源代码构建Android - 模拟器和AVD

Jac*_*ack 13 android open-source android-emulator android-source

我已经为模拟器构建了Android源代码.我在Android Source文档中读到,在成功构建期间会自动添加"模拟器"的路径.但是我有两个问题:

  1. 如果我打开一个新shell或关闭我现有的shell,则不再找到"模拟器".当然我每次想要运行模拟器时都不需要构建?

  2. 如果模拟器需要AVD,我如何创建和管理这些,因为我的机器上没有Android SDK?

谢谢,杰克

第2部分的解决方案.

我需要创建一个名为ANDROID_PRODUCT_OUT的环境变量.从以下命令:

emulator -help-build-images
Run Code Online (Sandbox Code Playgroud)

我读...

通过查看环境中的ANDROID_PRODUCT_OUT变量,模拟器检测到您正在使用Android构建系统.

如果已定义,则应指向包含生成的系统映像的特定于产品的目录.

然后我在'out'目录中搜索'system.ing'.因为我正在为模拟器构建图像所在:

out/target/product/generic
Run Code Online (Sandbox Code Playgroud)

我将以下行添加到我的.bashrc文件中:

export ANDROID_PRODUCT_OUT=/home/jack.wootton/code/out/target/product/generic
Run Code Online (Sandbox Code Playgroud)

然后我能够从以下位置运行模拟器:

/home/jack.wootton/code/out/host/linux-x86/bin
Run Code Online (Sandbox Code Playgroud)

第1部分的解决方案.

我不知道Android虚拟设备,所以这个问题仍然存在 - 但是在成功构建并设置ANDROID_PRODUCT_OUT环境变量之后,我不需要提供一个来运行模拟器.

更新解决方案

显然,应该在构建期间使用envSetup.sh脚本自动创建ANDROID_PRODUCT_OUT等变量.我想我的环境设置出了问题就是没有发生.

Joe*_*rke 8

你分享了:

显然,应该在构建期间使用envSetup.sh脚本自动创建ANDROID_PRODUCT_OUT等变量.我想我的环境设置出了问题就是没有发生.

我也试图让这个工作,并了解:

  1. lunch full-eng 设置所有适当的环境
  2. 检查它,只需运行:
    env | grep ANDROID
    您将看到所有相应的env变量设置.
    这些只是当前shell的本地!
  3. emulator 然后做它应该做的事情.

当我稍后回到壳中时,我只是再次吃午餐,以恢复我的环境.
我希望这对其他人也有帮助!


小智 5

只需执行以下操作:

source build/envsetup.sh or . build/envsetup.sh
setpaths
Run Code Online (Sandbox Code Playgroud)

这就是诀窍.确保从源目录运行它.