我们曾经遇到过一些对emulator的特殊需求,比如要求启动模拟器时全屏,生成windows版的emulator,以及需要64位系统编译等,下面逐一来解决。
1,全屏
1)在external/qemu/android/skin/window.c的
skin_window_create()函数中增加
window->fullscreen=1;
2) make emulator
3)用编译出的emulator替换模拟器中的emulator就可以启动时全屏了。
2,windows版本
有的时候我们需要一个windows版的emulator。
Android从froyo开始,支持用mingw32在Linux下编译出windows版的模拟器,比之前用cygwin方便多了。
make file 参考development/build/tools/windows_sdk.mk。
具体编译命令是
make win_sdk
如果只要emulator,可以用以下命令生成emulator.exe。
USE_MINGW=1 make PRODUCT-sdk-emulator
...
Install: out/host/windows-x86/bin/emulator.exe
3,64bit版
Android SDK升级到2.3之后,在我的Ubuntu9.04上启动模拟器会报错
./emulator: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11' not found (required by ./emulator)
据说升级到Ubuntu10.x后就可以用了。
但本人懒得升级,于是下载了android tools-r8的branch,打算自己编译一个emulator来用。
编译时居然要64位系统。
还是老办法,修改build/core/main.mk如下,
danny@danny-laptop:~/repository/tools-r8$ repo diff build/core/main.mk
project build/
diff --git a/core/main.mk b/core/main.mk
index 4c772bb..68791f6 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -68,13 +68,13 @@ $(info Checking build tools versions...)
ifeq ($(BUILD_OS),linux)
build_arch := $(shell uname -m)
-ifneq (64,$(findstring 64,$(build_arch)))
-$(warning ************************************************************)
-$(warning You are attempting to build on a 32-bit system.)
-$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
-$(warning ************************************************************)
-$(error stop)
-endif
+#ifneq (64,$(findstring 64,$(build_arch)))
+#$(warning ************************************************************)
+#$(warning You are attempting to build on a 32-bit system.)
+#$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
+#$(warning ************************************************************)
+#$(error stop)
+#endif
endif
ifneq ($(HOST_OS),windows)
再make emulator并替换sdk中的emulator,模拟器正常启动了。收工。