用HAXM(KVM)提升Android Studio模拟器速度

用HAXM(KVM)提升Android Studio模拟器速度,第1张

只要你的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就可以了;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7125980.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存