只要你的CPU是intel的产品并且支持VT(virtualization Technology)就可以使用HAXM技术将你的模拟器的速度提升至真机的水平。
Intel只提供了windows版和MAC版,而没有linux版,其实linux版就是KVM,只要启用了KVM,自然就是HAXM了。
Android的编译环境Google首推Linux平台(64位的Ubuntu)而Mac系统排到第二位。那么在Linux平台下是如何硬件加速的呢?
那就是传说中的KVM(Kernel-based Virtual Machine),同样的,它需要硬件的支持,比如intel的VT和AMD的V,它是基于硬件的完全虚拟化。
一切顺利,接下来要创建x86或x86_64的模拟器,其他模拟器不支持。
使用起来果然飞快,连打开网页的速度都令人惊奇。当然了,如果不用命令行启动,直接在Android Studio中启动x86_64架构的模拟器,速度也是很快,唯独arm架构的模拟器启动速度奇慢无比。话又说回来,既然有了比较不错的cpu,那么机器的其他配置一定差不了,这样的配置跑起模拟器来肯定要比原来强。
模拟器顺手了,下面就尽情享受开发的乐趣吧。
首先你需要设置一下emulator工具的目录之类的要在.bashrc中新增环境变量,如下
ANDROID_PRODUCT_OUT=~/android/out/target/product/generic
ANDROID_PRODUCT_OUT_bin=~/android/out/host/linux-x86/bin
这里是设置你的输出文件的位置和bin工具目录
然后在命令行输入:
export path=${path}:${ANDROID_PRODUCT_OUT_bin}:${ANDROID_PRODUCT_OUT}
上面是导入了相关的配置,然后使之生效。
source ~/.bashrc
接着切换到输出的system文件夹
cd ~/android/out/target/product/generic
然后来创建模拟器
emulator -system system.img -data userdata.img -ramdisk ramdisk.img
如果你运气够好的话,也许现在已经在运行了,不过我运气明显不够好。
提示一:
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
If you are an Android sdk user, please use ‘@<name>’ or ‘-avd <name>’
to start a given virtual device (see -help-avd for details).
Otherwise, follow the instructions in -help-disk-images to start the emulator
既然人家提示了,那就按照步骤走吧,输入命令:
emulator -help-avd
接着提示如下:
use ‘-avd <name>’ to start the emulator program with a given Android
Virtual Device (a.k.a. AVD), where <name>must correspond to the name
of one of the existing AVDs available on your host machine.
See -help-virtual-device to learn how to create/list/manage AVDs.
As a special convenience, using ‘@<name>’ is equivalent to using
‘-avd <name>’.
跟着提示继续走,输入命令:
emulator -help-virtual-device
又是提示了:
An Android Virtual Device (AVD) models a single virtual
device running the Android platform that has, at least, its own
kernel, system image and data partition.
Only one emulator process can run a given AVD at a time, but
you can create several AVDs and run them concurrently.
You can invoke a given AVD at startup using either ‘-avd <name>’
or ‘@<name>’, both forms being equivalent. For example, to launch
the AVD named ‘foo’, type:
emulator @foo
The ‘android’ helper tool can be used to manage virtual devices.
For example:
android create avd -n <name>-t 1 # creates a new virtual device.
android list avd # list all virtual devices available.
Try ‘android –help’ for more commands.
Each AVD really corresponds to a content directory which stores
persistent and writable disk images as well as configuration files.
Each AVD must be created against an existing sdk platform or add-on.
For more information on this topic, see -help-sdk-images.
延伸1):
Android x86模拟器Intel Atom x86 System Image配置与使用方法
大家现在开发使用的Android 模拟器模拟的是 arm 的体系结构(arm-eabi),因此模拟器并不是运行在x86上而是模拟的arm,所以我们调试程序的时候经常感觉到非常慢,大部分开发者应该都深有体会。
针对这种情况,前段时间intel推出了支持x86的Android模拟器,这将大大提高启动速度和程序的运行速度,这将允许Android模拟器能够以原始速度(真机运行速度)运行在使用intel x86处理器的电脑中,各位开发者有福了,下面将为大家展示使用方法。
一、首先下载intel提供的 intel® Hardware Accelerated Execution Manager 1.0.1(R2)
requirement:
1. requires the Android* SDK to be installed (version 17 or higher). SDK17或者以上
2.intel® processor with support for VT-x, EM64T, and Execute Disable (XD) bit functionality intel的cpu:并支持VT-X(虚拟化技术)、可扩展64位、Execute Disable bit。(均需要保证在bios中开启Enable)
3. At least 1 gb of available ram 1G以上内存,否则安装不了
满足硬件和软件要求之后,就可以开始安装了,一直下一步至安装成功。途中有个地方选择分配给HAXM内存大小,一般默认就好,分太多会拖慢整机速度。
安装成功后命令行输入sc query intelhaxm,查看运行状态: state is: “4 RUNNING” ,即代表安装成功。需要更改分配内存,重新运行一下安装程序选择change即可修改。
还可以使用以下指令手动开启和关闭:
Stop: sc stop intelhaxm
Start:
sc start intelhaxm
满足软硬件条件,若提示如下Error:but intel Execute Disable bit (XD) is not turned on......
(需要开启系统数据执行保护功能dep,下午纠结了好久才查到。官网原文:Windows* hosts may need to enable dep (Data Execution Prevention) in addition to intel XD)
命令行使用指令:bcdedit.exe /set nx optin 打开即可,需要重启电脑
二、下载Intel Atom x86 System Image
1. 从SDK Manager下载:打开SDK Manager,展开至Android2.3.3(API10)(注意:目前只有2.3.3和4.0.3(Ice Cream Sandwich)有x86的Image),需要和2.3.3的SDK Platform配合使用。
2.使用avd Manager创建一个新的avd: Hardware Property里面选择gpu emulation yes 还有 Keyboard support yes
3.开始使用飞速的模拟器吧,各种爽歪歪
好的工具可以更有效率的开发APP,让我们从此告别那龟速的模拟器吧
用virtualbox新建虚拟机的时候,我一开始选择的是other,安装过程正常,启动没成功;于是重新建立虚拟机,选择linux和linux2.6,正常;一开始想给虚拟机分配1G内存,但是virtualBox警告说会使PC变慢,于是我分了700多M;
网上说网络设置要选择bridged adapter,可是我的模拟器还是无法使用网络,比如用浏览器上网失败,不知为何?
安装完android之后,有时候虚拟机无法正常启动,有时候桌面上有一块黑的,重启一下就可以了;
一开始鼠标点不中android桌面,选择虚拟机窗口的设置:控制->禁止自动独占鼠标;鼠标从模拟器移除来的时候,按一下右边的Ctrl即可;
此时eclipse还找不到虚拟机,先查看android的ip地址,在android界面下按Alt+F1,很奇怪我的机器是Alt+F2,进入命令行,敲:netcfg,我的android地址是176.168.1.106,然后设置eclipse:window->preference->Android->DDMS->Use ADBHOST打勾,value设置为刚才看到的ip地址;然后打开eclipse的DDMS界面,在左边device标签找到一个向下按钮,点击打开菜单,找到reset adb,点击,eclipse就找到虚拟机了;
选择我的android工程,点击run,程序在android模拟器中启动了,速度比android官方模拟器要快,占用电脑内存也少很多,很好;
一段时间不动,android进入锁屏,当我想开锁的时候,点不中,此时按一下Esc就可以了;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)