android 模擬器 3D 開發環境配置

使用HAXM 與 KVM 給emulator加速

Android emulator 運行很慢,應該使用虛擬機加速, Windows 下 Android SDK Manager中可以安裝 HAXM, 安裝之後運行速度提升很多

Intel HAXM (Hardware Accelerated Execution Manager) 使用基於 Intel(R) Virtualization Technology (VT) 的硬件加速

參見: https://www.cnblogs.com/beginor/archive/2013/01/13/2858228.html

在 HAXM 在 在 Ubuntu 下面對應的就是 KVM, 在運行 emulator 的時候的通過 -qemu -m 512 -enable-kvm,使得 emulator 運行在 kvm 之上,速度也得到很大提升

emulator -avd a -qemu -m 512 -enable-kvm

這兩者的原理讓 qemu 不再模擬 x86的 cpu瞭,而是把硬件指令都交給虛擬機,所以速度大增。

遺憾的是: KVM 隻支持 intel, amd 的 cpu,而 HAXM可能隻支持 Intel的

Ubuntu下 sdk 編譯完成的 運行 emulator

下載 android 源碼,lunch 中選擇 x86-full, 再用 make -j8 sdk 可以編譯得到 emulator , 可以直接運行

cd out/host/linux-x86/

bin/emulator

而後emulator 運行 out/target/product/generic_x86 下面的東西

這樣你就不用創建 avd, 但是卻不能修改 hardware-qemu.ini(創建 avd 可以修改的),但可以加參數比如 emulator -gpu on

gpu 是否加速

使用 -gpu on 可以讓把模擬器中 gles 指定轉化的PC主機的 opengl 指令,而不是使用軟3d( cpu 模擬 gpu ), 3d程序將變得很流暢。

但前提是你安裝好的顯卡的 opengl驅動

調用關系可能是,如果你安裝瞭 Mesa, 在找不到合適的 driver 情況下, Mesa 使用 soft 3d, 就是說即使模擬器中 -gpu on 打開,Android 以為是使用硬3D,但PC主機自己卻使用軟3D

Your application
↓ (sends graphic requests defined by the “GLX extension to the X Protocol”)
X Server with the GLX extension
↓ (convert your request to OpenGL commands)
OpenGL
↓ (redirects function calls to implementation defined by)
Mesa
↓ (forwards OpenGL commands)
DRI
↓ (converts OpenGL commands to GPU commands)
Graphic Card

3D Images on your screen

在 Ubuntu 下安裝 driver 是個麻煩事, Intel 的驅動不支持 Ubuntu12.04,隻支持最新的 Ubuntu, 老的 ATI 比如 1300/1500, ATI隻支持到 Ubuntu 9.04, 最後隻好買個GT610 Nvidia顯卡,driver 才裝上,3D才生效。

如果更新 Kernel ,driver 又回失效, 需要重新安裝

sudo sh NVIDIA-Linux-x86_64-331.49.run

這時候可能會出錯

ERROR: The kernel header file ‘/lib/modules/3.2.0-24-generic/build/include/linux/kernel.h’ does not exist

重新獲取 kernel header 當運行

sudo apt-get install linux-headers-3.2.0-24

再重新安裝 driver

sudo sh NVIDIA-Linux-x86_64-331.49.run

成功

發佈留言