android模拟器的启动除了使用avd外,还可以自己来定义一个启动脚本来启动。
首先是自己在linux系统下编译源代码后,从源代码的目录结构来启动模拟器
1.x的自定义启动脚本
ANDROID_HOME=.
ANDROID_EMULATOR=$ANDROID_HOME/out/host/linux-x86/bin/emulator
ANDROID_SYSDIR=$ANDROID_HOME/out/target/product/generic
ANDROID_DATAIMG=$ANDROID_HOME/out/target/product/generic/userdata.img
ANDROID_SKINDIR=$ANDROID_HOME/development/emulator/skins
ANDROID_KERNEL=$ANDROID_HOME/prebuilt/android-arm/kernel/kernel-qemu
ANDROID_SKIN=HVGA
$ANDROID_EMULATOR \
-audio alsa \
-sysdir $ANDROID_SYSDIR \
-data $ANDROID_DATAIMG \
-partition-size 128 \
-kernel $ANDROID_KERNEL \
-skindir $ANDROID_SKINDIR \
-skin $ANDROID_SKIN \
-show-kernel \
-shell \
-sdcard /work/sdcard.img \
-wipe-data
2.x的自定义启动脚本
由于2.x的源代码目录结构已经有所改变,所以目录的位置相应作了一些调整
ANDROID_HOME=.
ANDROID_EMULATOR=$ANDROID_HOME/out/host/linux-x86/bin/emulator
ANDROID_SYSDIR=$ANDROID_HOME/out/target/product/generic
ANDROID_DATAIMG=$ANDROID_HOME/out/target/product/generic/userdata.img
ANDROID_SKINDIR=$ANDROID_HOME/sdk/emulator/skins
ANDROID_KERNEL=$ANDROID_HOME/prebuilt/android-arm/kernel/kernel-qemu
ANDROID_SKIN=HVGA
$ANDROID_EMULATOR \
-audio alsa \
-sysdir $ANDROID_SYSDIR \
-data $ANDROID_DATAIMG \
-partition-size 256 \
-kernel $ANDROID_KERNEL \
-skindir $ANDROID_SKINDIR \
-skin $ANDROID_SKIN \
-show-kernel \
-shell \
-sdcard $ANDROID_HOME/sdcard.img
# -wipe-data
2.3的自定义启动脚本
由于2.3的源代码目录结构又有所改变,所以目录的位置相应又作了一些调整,而且2.3以后模拟器查找目录的代码有所改变,相对路径改成了绝对路径:
ANDROID_HOME=`pwd`
ANDROID_EMULATOR=$ANDROID_HOME/out/host/linux-x86/bin/emulator
ANDROID_SYSDIR=$ANDROID_HOME/out/target/product/generic
ANDROID_DATAIMG=$ANDROID_HOME/out/target/product/generic/userdata.img
#ANDROID_SKINDIR=$ANDROID_HOME/sdk/emulator/skins
ANDROID_SKINDIR=$ANDROID_HOME/development/tools/emulator/skins
ANDROID_KERNEL=$ANDROID_HOME/prebuilt/android-arm/kernel/kernel-qemu
ANDROID_KERNEL_V7=$ANDROID_HOME/prebuilt/android-arm/kernel/kernel-qemu-armv7
ANDROID_SKIN=HVGA
ANDROID_SDCARD=$ANDROID_HOME/sdcard.img
$ANDROID_EMULATOR \
-audio alsa \
-sysdir $ANDROID_SYSDIR \
-data $ANDROID_DATAIMG \
-partition-size 256 \
-kernel $ANDROID_KERNEL_V7 \
-skindir $ANDROID_SKINDIR \
-skin $ANDROID_SKIN \
-show-kernel \
-shell \
-sdcard $ANDROID_SDCARD
# -wipe-data
从2.3以后到3.x再到4.0, 4.1我已经没有玩过android源代码乐,这个暂时空缺,
4.2的自定义启动脚本
ANDROID_HOME=`pwd`
ANDROID_EMULATOR=$ANDROID_HOME/out/host/linux-x86/bin/emulator
ANDROID_SYSDIR=$ANDROID_HOME/out/target/product/generic
ANDROID_DATAIMG=$ANDROID_HOME/out/target/product/generic/userdata.img
#ANDROID_SKINDIR=$ANDROID_HOME/sdk/emulator/skins
ANDROID_SKINDIR=$ANDROID_HOME/development/tools/emulator/skins
ANDROID_KERNEL=$ANDROID_HOME/prebuilts/qemu-kernel/arm/kernel-qemu
ANDROID_KERNEL_V7=$ANDROID_HOME/prebuilts/qemu-kernel/arm/kernel-qemu-armv7
ANDROID_SKIN=WXGA800
ANDROID_SDCARD=$ANDROID_HOME/out/target/product/generic/sdcard.img
$ANDROID_EMULATOR \
-audio alsa \
-sysdir $ANDROID_SYSDIR \
-kernel $ANDROID_KERNEL_V7 \
-data $ANDROID_DATAIMG \
-partition-size 256 \
-skindir $ANDROID_SKINDIR \
-skin $ANDROID_SKIN \
-show-kernel \
-shell \
-sdcard $ANDROID_SDCARD
-wipe-data
将上面这段脚本代码保存到start.sh中
然后修改权限为可执行,就可以通过运行脚本来启动模拟器了。
# chmod a+x start.sh
# ./start.sh
阅读(2168) | 评论(0) | 转发(0) |