使用HAXM 与 KVM 给emulator加速


Android emulator 运行很慢,应该使用虚拟机加速, Windows 下 Android SDK Manager中可以安装 HAXM, 安装之后运行速度提升很多

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

参见:http://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 又失效( driver 是根据旧的kernel header 编译的), 需要重新安装

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

成功

更多相关文章

  1. 给android虚拟机加内存
  2. Android(安卓)Studio Error -- Could not create the Java Virtu
  3. [转]Ubuntu搭建Android环境
  4. eGalaxTouch校准
  5. Android(安卓)红外遥控器适配
  6. (转)Android(安卓)Building System 分析
  7. Android(安卓)Smali第一次完整的见面
  8. android 模拟器键盘控制键不能用 以及 设置模拟器屏幕大小
  9. Android(安卓)Studio程序无法加载到虚拟机解决方法

随机推荐

  1. Android 2.2 API demo
  2. Android jni调用第三方so库和.h文件
  3. Android手动创建和解析Json
  4. Android 中文API (94) —— MediaControlle
  5. Android 字体修改
  6. ubuntu下Qt之android环境配置以及一些常
  7. android 日志打印器 LogUtil
  8. Android 下拉刷新控件的使用
  9. Android(安卓)7.1.1 去除Launcher3的抽屉
  10. Android 横竖屏切换的Activity生命周期演