我为模拟器构建了Android源代码。我在Android Source documentation中读到,在成功构建期间自动添加了“模拟器”的路径。不过我对此有两个问题:
如果我打开一个新shell或关闭我现有的shell,则不再找到“模拟器”。当然,每次我想运行模拟器时都不需要构建它?
如果模拟器需要AVD,我如何创建和管理这些,因为我的机器上没有Android SDK?
谢谢, 千斤顶
第2部分的解决方案。
我需要创建一个名为ANDROID_PRODUCT_OUT的环境变量。从以下命令:
emulator -help-build-images
我看了......
模拟器检测到您正在使用Android版本 系统通过查看你的ANDROID_PRODUCT_OUT变量 环境。
如果已定义,则应指向特定于产品的目录 包含生成的系统映像。
然后我在'out'目录中搜索'system.ing'。因为我正在为模拟器构建图像所在:
out/target/product/generic
我在.bashrc文件中添加了以下行:
export ANDROID_PRODUCT_OUT=/home/jack.wootton/code/out/target/product/generic
然后我可以从:
运行模拟器/home/jack.wootton/code/out/host/linux-x86/bin
第1部分的解决方案。
我不知道Android虚拟设备,所以这个问题仍然存在 - 但是在成功构建并设置ANDROID_PRODUCT_OUT环境变量后,我不需要提供一个来运行模拟器。
更新解决方案
显然,在构建期间和使用envSetup.sh脚本时,应自动创建ANDROID_PRODUCT_OUT等变量。我想我的环境设置出了问题就是没有发生。
答案 0 :(得分:8)
您分享了:
显然,在构建期间和使用envSetup.sh脚本时,应自动创建ANDROID_PRODUCT_OUT等变量。我想我的环境设置出了问题就是没有发生。
我也试图让它发挥作用并了解:
lunch full-eng
设置所有相应的env env | grep ANDROID
emulator
然后做它应该做的事情。 当我稍后回到壳中时,我只是再次吃完午餐,以恢复我的环境 我希望这对其他人也有帮助!
答案 1 :(得分:5)
请执行以下操作:
source build/envsetup.sh or . build/envsetup.sh
setpaths
这就是诀窍。确保从源目录运行它。
答案 2 :(得分:3)
要检查我构建的模拟器源,我在项目的根文件夹中创建了以下脚本。我从另一个命令行运行它,它不需要一直运行. build/envsetup.sh
和lunch full-eng
命令。您可以根据需要编辑此脚本,如果需要运行其他设备,只需更改文件夹即可。
out/host/linux-x86/bin/emulator -sysdir out/target/product/generic/ -system out/target/product/generic/system.img -ramdisk out/target/product/generic/ramdisk.img -data out/target/product/generic/userdata.img -kernel prebuilt/android-arm/kernel/kernel-qemu -sdcard sdcard.img -skindir sdk/emulator/skins -skin WVGA800 -scale 0.7 -memory 512 -partition-size 1024
答案 3 :(得分:2)
您可以将这些添加到.bashrc文件
export ANDROID_PRODUCT_OUT=$ANDROID_SRC/out/target/product/generic
export ANDROID_BIN=$ANDROID_SRC/out/host/linux-x86/bin
PATH=$ANDROID_BIN:$PATH
答案 4 :(得分:0)
实际上,程序“模拟器”只是真实模拟器-qemu的包装器,例如emulator-arm或emulator-x86。您调用的“模拟器”将收集您输入的参数,并找到要执行的正确模拟器-qemu。
您遇到的问题是您没有明确描述要启动的图像/ avd。您可以使用参数“@ avd YOUR-AVD_NAME”或“ANDROID_PRODUCT_OUT”环境变量来设置放置avd的目录。 BTW,avd目录包含一些文件来描述这个设备的外观。
“。build / envsetup.sh”是为Android构建过程设置环境变量的脚本。因此很容易理解为什么会在那时设置“ANDROID_PRODUCT_OUT”。其默认值应为“PATH / TO / ANDROID / out / target / product / generic”。
PS:如果你想了解更多,你可以参考源文件:“PATH / TO / ANDROID / external / qemu / android / main-emulator.c”。你可以找到那里的模拟器。