linux下不是很完美的提高android虚拟机的启动速度
去年双十一换的新电脑,华硕vivo4000的,配置的不算很好,4k的屏幕:3840×2160, 940M的显卡, core i7的CPU, 8G的内存,硬盘是1T的机械硬盘,除了硬盘基本感觉还可以吧。系统是win10 home版本的,有点不爽,后来自己重新分配硬盘分区后,安装了我最爱的manjaro linux,几乎天天更新。linux下使用比window10爽的不是一点。哈哈。好了,开始切入正体了:
(1)core i7支持vt技术了,网上很多教程是window下安装HAXM驱动,后来到intel官网,发现有window版本的,mac版本的,恰恰缺少linux的,linux已经默认启用了
(2)经过n多次验证,发现是虚拟机启动的时候会在/home/×××××/.android/avd/(虚拟机目录下)建立一个目录,名称是metrics,如果没有这个目录及其目录中的文件,启动正常
(3)我的解决办法是每次启动虚拟机前将该目录删除后,再启动虚拟机。速度很快,快到不到20s启动就完成了。
(4)这种解决办法有个缺点就是每次要删除一个目录,再到android/tools/目录下启动android虚拟机,我的解决办法是将android/tools/的目录添加到/etc/profile文件中,因此文件内容如下:PATH=".:/usr/local/sbin:/usr/local/bin:/usr/bin:/home/michelle/WORKM/ANDROID_SDK/tools/",注意最前边有个"."目录就是指当前目录的意思。使用命令:emulator64-x86 -avd NBAndroidVM
-qemu -m 2047 -enable-kvm,这个命令复杂些,挨个说说:emulator64-x86启动虚拟机的命令 -avd NBAndroidVM 选项后加上虚拟机的名称 -qemu 启动加速 -m 2047 指定内存为2047,不能设置为2048,否则会无法启动 -enable-kvm 最后的这个是使用linux的虚拟技术,后来干脆一鼓作气:写了个脚本,内容如下:
#!/bin/bash
rm -rf /home/michelle/.android/avd/metrics/
echo "删除目录成功"
emulator64-x86 -avd NBAndroidVM -qemu -m 2047 -enable-kvm
可以将以上的4行内容保存在startavd.sh的脚本文件中,chmod +x startavd.sh,将脚本加上可执行属性,以后就可以双击脚本启动虚拟机,或者使用sh startavd.sh启动虚拟机了
(5)为了稳妥期间,注销下,就可以享受飞一般的感觉了。
我的虚拟机配置文件:config.ini
avd.ini.encoding=UTF-8 //编码
abi.type=x86 //虚拟机类型
disk.dataPartition.size=2048M //分区大小
hw.accelerometer=yes
hw.audioInput=yes
hw.battery=yes
hw.camera.back=none
hw.camera.front=none
hw.cpu.arch=x86 //CPU架构
hw.dPad=yes //启用方向键,上下左右中等
hw.device.hash2=MD5:6930e145748b87e87d3f40cabd140a41
hw.device.manufacturer=Google
hw.device.name=Nexus 4 //虚拟机名称
hw.gps=yes
hw.keyboard=yes //包含电源键的一行按键,三个
hw.lcd.density=320
hw.mainKeys=yes //包含主页键的一行按键
hw.ramSize=2048 //虚拟机内存
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.trackBall=no
image.sysdir.1=system-images/android-19/default/x86/
sdcard.size=1024M
skin.dynamic=yes
skin.name=768x1280
skin.path=768x1280
tag.display=Default
tag.id=default
vm.heapSize=64
hardware-qemu.ini内容如下
hw.cpu.arch = x86
hw.cpu.model = qemu32
hw.ramSize = 2048
hw.screen = touch
hw.mainKeys = yes
hw.trackBall = no
hw.keyboard = yes
hw.keyboard.lid = no
hw.keyboard.charmap = qwerty2
hw.dPad = yes
hw.gsmModem = yes
hw.gps = yes
hw.battery = yes
hw.accelerometer = yes
hw.audioInput = yes
hw.audioOutput = yes
hw.sdCard = yes
hw.sdCard.path = /home/michelle/.android/avd/NBAndroidVM.avd/sdcard.img
disk.cachePartition = yes
disk.cachePartition.path = /home/michelle/.android/avd/NBAndroidVM.avd/cache.img
disk.cachePartition.size = 66m
hw.lcd.width = 768
hw.lcd.height = 1280
hw.lcd.depth = 16
hw.lcd.density = 320
hw.lcd.backlight = yes
hw.gpu.enabled = no
hw.initialOrientation = portrait
hw.camera.back = none
hw.camera.front = none
vm.heapSize = 64
hw.sensors.proximity = yes
hw.sensors.magnetic_field = yes
hw.sensors.orientation = yes
hw.sensors.temperature = yes
hw.useext4 = yes
kernel.path = /home/michelle/WORKM/ANDROID_SDK/system-images/android-19/default/x86//kernel-qemu
kernel.parameters = androidboot.hardware=goldfish clocksource=pit android.checkjni=1
kernel.newDeviceNaming = no
kernel.supportsYaffs2 = yes
disk.ramdisk.path = /home/michelle/WORKM/ANDROID_SDK/system-images/android-19/default/x86//ramdisk.img
disk.systemPartition.initPath = /home/michelle/WORKM/ANDROID_SDK/system-images/android-19/default/x86//system.img
disk.systemPartition.size = 550m
disk.dataPartition.path = /home/michelle/.android/avd/NBAndroidVM.avd/userdata-qemu.img
disk.dataPartition.size = 2g
avd.name = NBAndroidVM
请大家酌情修改,让自己的android虚拟机飞起来吧!
linux下不是很完美的提高android虚拟机的启动速度的更多相关文章
- kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 【转】
转自:http://blog.chinaunix.net/uid-26349264-id-4455634.html 目录 kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 ...
- 优化Linux下的内核TCP参数以提高系统性能
内核的优化跟服务器的优化一样,应本着稳定安全的原则.下面以64位的Centos5.5下的Squid服务器为例来说明,待客户端与服务器端建立 TCP/IP连接后就会关闭SOCKET,服务器端连接的端口状 ...
- 优化Linux下的内核TCP参数来提高服务器负载能力
http://blog.renhao.org/2010/07/setup-linux-kernel-tcp-settings/ /proc/sys/net目录 所有的TCP/IP参数都位于/proc/ ...
- linux下tomcat启动很慢的解决办法
1.用vim编辑器打开tomcat的bin目录下的catalina.sh [root@iz09a32x1sghz3z bin]# vi /usr/local/src/java/tomcats/tomc ...
- linux下编译支持opencl的opencv for android
主要的步骤其他人已经写过,请参考这篇:https://www.cnblogs.com/hrlnw/p/4720977.html 操作的细节请参考附件的pdf: https://files.cnblo ...
- windows党码农在linux下你最需要的软件列表TOP10
NO 10.QQ 神奇的TX,经常更新接口,使得linux社区的模仿软件总是跟不上步伐,一整就不能登陆使用.可是老大,您怎么自从2009-01-04发布了第一版QQ for Linux 1.0 Bet ...
- Linux下磁盘分区挂载
一般你去买vps都会看到介绍说硬盘多少G 比如 80G 但是你进入系统df -h的时候发现怎么只有10G呢, 其实这10G是用来装系统的和一些常用服务软件的 不是给你放网站数据的 那50G硬盘在哪 ...
- Linux下clock计时函数学习【转】
转自:https://www.cnblogs.com/wfwenchao/p/5195022.html 平时在Linux和Winows下都有编码的时候,移植代码的时候免不了发现一些问题.1. 你到底准 ...
- linux下安装python,Django,虚拟环境
linux下python安装步骤: 1.下载python3源码包 wget https://www.python.org/ftp/python/3.6.6/Python-3.6.7.tgz 2.下载p ...
随机推荐
- java util - base64转换工具
测试代码 package cn.java.codec.base64; public class Test { public static void main(String[] args) { Stri ...
- manjaro中文输入法已安装但切换不了解决方法
情况如图所示,输入法安装了,但Ctrl+空格键或者鼠标选择切换都不行 解决方法: 打开家目录下面的.xprofile文件,如果没有这个文件就新建一个,加入下面内容 保存文件,退出. 重启电脑就可以了
- Centos7(Linux)下安装VMware12
https://blog.csdn.net/u012605477/article/details/65627234
- Network of Schools POJ - 1236 (强联通)
一些学校连接到了一个计算机网络.网络中的学校间有如下约定:每个学校维护一个列表,当该学校收到软件或信息后将会转发给列表中的所有学校(也就是接收方列表).需要注意的是如果B学校在A学校的接收方列表中,A ...
- Java面向对象---泛型
概念 泛型可以解决数据类型的安全问题,主要原理是在类声明的时候通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型. 格式 访问权限 class 类名称<泛型,泛型...>{ ...
- C# SQL数据库学习时遇到到一些异常
1一些关于SqlHelper类的异常: DataAdapter.SqlHelper”的类型初始值设定项引发异常. ExecuteNonQuery.SqlHelper”的类型初始值设定项引发异常. Ex ...
- TCP/IP网络编程之优于select的epoll(一)
epoll的理解及应用 select复用方法由来已久,因此,利用该技术后,无论如何优化程序性能也无法同时接入上百个客户端.这种select方式并不适合以web服务端开发为主流的现代开发环境,所以要学习 ...
- 图说不为人知的IT传奇故事-2-IBM咬不动的胡桃
此系列文章为“图说不为人知的IT传奇故事”,各位大忙人可以在一分钟甚至几秒内了解把握整个内容,真可谓“大忙人的福利”呀!!希望各位IT界的朋友在钻研技术的同时,也能在文学.历史上有所把握.了解这些故事 ...
- Atom-无懈可击的Markdown编辑器
备战美赛期间,向岳神学习,搞了Atom玩协作开发,第一次没有自动补全的手撸了遗传算法.今天发现Atom还有写Markdown的妙用,遂拿来练手. 1. 安装Atom 下载安装Atom:https:// ...
- STL之string使用简介
声明一个C++字符串 string类的构造函数和析构函数如下: string s; //生成一个空字符串s string s(str) //拷贝构造函数 生成str的复制品 string s(str, ...