学习啦>学习电脑>电脑硬件知识>内存知识>

Android虚拟机内存怎么分配

时间: 沈迪豪908 分享

  爱学习的小伙伴们,可能都知道Android虚拟机,但是你知道Android虚拟机内存怎么分配吗?

  安卓虚拟机

  这款软件是google官方出品,以方便开发者使用安卓环境,方便开发。可以让你在PC端(电脑上)安装运行模拟Android系统。并可以在电脑端进行几乎任何手机上可以进行的操作,甚至还可以像手机一样连接电脑,被手机助手检测到,可以模拟所有官方版本的安卓系统,并且有多款皮肤和屏幕样式可供选择。但由于windows电脑需要跨平台,所以模拟出来的效果和虚拟机性能可没有arm机器跑起来的好。

  使用方法

  准备工作:在体验前我们首先要下载Java的JDK(全称Java SE Development Kit)以及Android的SDK。下载Java JDK或者Java JRE(建议选择JDK,JDK比JRE多出开发功能,可以用来编译java程序)[1] 下载Android SDK[2] 安装JDK和SDK:安装Java JDK或JRE(一般安装在默认路径,若改变路径请对应修改下面环境变量的值)安装Android SDK,免装版建议放到一个记得住的地方,建议不要有中文路径打开安装好后打开所安装的目录(默认C:\Program Files\Android\android-sdk)打开SDK Manager.exe 加载过程中程序会连接Google服务器更新Android各版本资源,下载非常慢,建议。在需要安装的版本前面打勾,下载时间很漫长,除了安卓必要的组件之外(必要组件会提示),勾选一个系统,如api 15Android 4.0(我们在这里就只示范一下安装Android 4.0的了),各版本安装过程大同小异,机友如有兴趣可以继续尝试其他版本。点击Install packages。选择Accept All,然后点击Install修改环境变量:完成下载后,我们首选需要对电脑进行java的环境变量的设置右键点击我的电脑-属性高级-环境变量(WindowsXP) 高级系统设置-高级-环境变量(Windowns7)点击新建.。.添加下面这两个变量变量名:JAVA_HOME变量值:C:\Program Files\Java\jdk1.6.0_10 如果安装路径不同,按自己的安装情况写变量名:classpath变量值:.;%JAVA_HOME%\lib;(注意符号,前面是英文的句号和分号,最后有个分号,这行的java_home就相当于引用上边的路径,所以也可以直接写上面文件夹中的lib文件夹的路径)还有一个环境变量Path,系统默认已经出现,在系统变量下找到这个变量,点击编辑。在已经有的变量值前面,加入下面这个变量C:\Program Files\Java\jdk1.6.0_10\bin; (或自己安装的路径,注意包括“;”即在每一个路径中间加上分号)安装完成,可以使用了

  Android虚拟机虚拟机内存怎么分配

学习啦在线学习网   大家都知道Android的上层应用是基于 Dalvik Virtual Machine的。Dalvik VM的特点是基于寄存器,相比SUN的JVM(基于堆栈,没有寄存器)来说,理论上完成同样的功能需要的指令条数少,但是指令集复杂。到了Android2.2,Dalvik终于实现了JIT(Just In Time)功能,前进了一大步。

  近期我们遇到OutOfMemory的错误,通常是堆内存溢出。网上有些帖子说可以通过函数设置应用的HEAP SIZE来解决这个问题,其实是不对的。

  VMRuntime.getRuntime().setMinimumHeapSize(NewSize);

  堆(HEAP)是VM中占用内存最多的部分,通常是动态分配的。堆的大小不是一成不变的,通常有一个分配机制来控制它的大小。比如初始的HEAP是4M大,当4M的空间被占用超过75%的时候,重新分配堆为8M大;当8M被占用超过75%,分配堆为16M大。倒过来,当16M的堆利用不足30%的时候,缩减它的大小为8M大。重新设置堆的大小,尤其是压缩,一般会涉及到内存的拷贝,所以变更堆的大小对效率有不良影响。

学习啦在线学习网   上面只是个例子,不过可以看到三个参数:max heap size, min heap size, heap utilization(堆利用率)。

  Max Heap Size,是堆内存的上限值,Android的缺省值是16M(某些机型是24M),对于普通应用这是不能改的。函数setMinimumHeapSize其实只是改变了堆的下限值,它可以防止过于频繁的堆内存分配,当设置最小堆内存大小超过上限值时仍然采用堆的上限值(16M),对于内存不足没什么作用。

  setTargetHeapUtilization(float newTarget) 可以设定内存利用率的百分比,当实际的利用率偏离这个百分比的时候,虚拟机会在GC的时候调整堆内存大小,让实际占用率向个百分比靠拢。

  //程序onCreate时调用

  private final static floatTARGET_HEAP_UTILIZATION = 0.75f;

  VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);

  总结:

  手机应用开发资源是很有限的,堆内存的上限值只有16M。不过只要代码写的好,这个值对于目前的手机应用需求已经足够了。

  如果出现内存溢出问题,把精力放在代码优化上吧。

java虚拟机的内存设置详解Android虚拟机内存怎么分配相关文章:

1.怎么查看win7虚拟机最大动态内存

2.VM虚拟机提示物理内存不足怎么办

3.安卓内存机制怎么更改?

4.虚拟机显示物理内存不足怎么解决

5.pd虚拟机占用内存吗

Android虚拟机内存怎么分配

爱学习的小伙伴们,可能都知道Android虚拟机,但是你知道Android虚拟机内存怎么分配吗? 安卓虚拟机 这款软件是google官方出品,以方便开发者使用安卓环境,方便开发。可以让你在PC端(电脑上)安装运行模拟Android系统。并可以在电脑端进
推荐度:
点击下载文档文档为doc格式

精选文章

  • java虚拟机的内存怎么设置
    java虚拟机的内存怎么设置

    学习啦在线学习网相信很多人都学过java,那么你知道java虚拟机的内存设置吗?不知道的话跟着学习啦小编一起来学习了解java虚拟机的内存设置。 java虚拟机的内存设置详解

  • 怎么提升Android手机运行内存
    怎么提升Android手机运行内存

    爱学习的小伙伴们,你们知道如何提升Android手机运行内存吗?不知道的话跟着学习啦小编一起来学习一下怎么提升Android手机运行内存吧。 提升Android手机运

  • 电脑硬盘和内存的区别
    电脑硬盘和内存的区别

    学习啦在线学习网爱学习的小伙伴们,你们知道电脑硬盘和内存有什么区别吗?不知道的话跟着学习啦小编一起来学习电脑硬盘和内存有什么区别。 给大家讲讲硬盘跟内存有

  • 怎么提高内存性能
    怎么提高内存性能

    学习啦在线学习网爱学习的小伙伴们,你们知道怎么提高你们的内存性能吗,不知道的话跟着学习啦小编一起来学习提高内存性能的方法。 提高内存性能的方法 1 根据我所知

2003615