zoukankan      html  css  js  c++  java
  • 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虚拟机飞起来吧!


           


  • 相关阅读:
    [leetcode]Longest Common Prefix
    [leetcode]Container With Most Water
    [leetcode]Regular Expression Matching
    [leetcode]Palindrome Number
    [leetcode]String to Integer (atoi)
    [leetcode]Reverse Integer
    [leetcode]ZigZag Conversion
    [leetcode]Longest Palindromic Substring
    [leetcode]Add Two Numbers
    poj 1228 Grandpa's Estate
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/6823142.html
Copyright © 2011-2022 走看看