欢迎来到天天文库
浏览记录
ID:7783096
大小:35.00 KB
页数:5页
时间:2018-02-25
《智能手机硬件加速及虚拟内存利弊分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、智能手机硬件加速及虚拟内存利弊分析1.debug.sf.hw=0,修改为debug.sf.hw=1,此步骤为打开硬件加速2.dalvik.vm.heapsize=24m,修改为dalvik.vm.heapsize=32m,此步骤为修改虚拟机大小为32m上面的第二点注意,这是修改虚拟机内存,不是修改虚拟内存!!这2者完全不同!最近论坛里关于修改安卓系统2个参数的帖子很火,说修改后可以提升手机的性能。修改后有说好用的,也有说不好用的,好用的把楼主捧为了神,不好用的把楼主骂个半死,其实科学嘛,总有好处有坏处的,我们只要好好分析,就能得知我们为什么要改,还有修改后可以
2、得到什么样的益处。捧别人为神或者踩别人为泥都对事情发展没有好处。关于修改的内容,主要是修改2个参数:debug.sf.hw=0,修改为debug.sf.hw=1,此步骤为打开硬件加速dalvik.vm.heapsize=24m,修改为dalvik.vm.heapsize=32m,此步骤为修改虚拟机大小为32m我来跟你解释这2个参数有什么作用,并且说说为什么我做ROM的时候不修改这2个参数。1.dalvik.vm.heapsize=24m,修改为dalvik.vm.heapsize=32m,此步骤为修改虚拟机大小为32m安卓系统实际上,就是建立在linux内核上
3、的一个JAVA系统,了解JAVA的同学应该知道,在运行JAVA程序的时候,需要在每个程序上建立一个虚拟机,以获得内存的分配,优点是假设某个程序崩溃了,系统只要关闭那个虚拟机就可以了,不会影响其他程序,缺点是很耗内存,因为你每开一个程序,就要新开一个虚拟机。举个例子,打开程序A的时候,程序A就自动向系统申请1份虚拟机内存,然后不关闭,再开一个程序B,程序B要求向系统申请3份内存,假设虚拟机内存设置为24M,那么这2个程序合共占用了内存1X24+3X24=96M。假设虚拟机内存设置为32M,则这2个程序合共占用了内存1X32+3X32=128M那么,究竟修改好,还
4、是不修改好呢?假设你的机子里,平常只运行一些小程序,例如QQ、看书软件、小游戏等,那么建议你不要修改,就使用标准的24M,因为足够用,并且防止运行程序过多,而产生崩溃。那是不是越小越好呢?当然不是,因为分配给程序的内存过小,有可能因为软件申请不到足够的内存,而运行不流畅。假设平常经常运行大型程序,例如大型3D游戏等,则可以稍微调大一些,以使大型程序得到足够的内存来运行,可以更流畅。那是不是越大越好呢,当然不是,因为调的太大,其他程序就分配不到内存,无法运行了。google为什么要把系统的虚拟机设置为24M呢?由于有些软件吃内存,也有一些小软件不吃内存,我觉得这
5、是属于一个中庸的设计,由于没法全部偏向大型,也没法全部偏向小型,那就中庸吧。我们都知道,华为C8650的机身内存RAM是256M,这是固定的,给一个虚拟机用24M还是32M,自己决定吧,不过,对于某些程序控,在手机里装一大堆需要开启服务的软件的筒子们,建议还是别改了,否则开机的时候需要启动一大堆程序,最后弄得机子都开不了。我们来和常用的windows系统对比一下,假设同样有256M内存windows系统的内存机制是:来了一个程序,程序告诉系统,我要100M,然后来了第二个程序,第二个程序说,我要150M,这个时候,内存已经被使用100M+150M=250M,剩
6、余6M。然后来了第三个程序,第三个程序说,我要50M,由于不够分给他,系统就崩溃了。安卓系统的内存机制是:来了一个程序,程序告诉系统,我要100M,然后来了第二个程序,第二个程序说,我要150M,这个时候,内存已经被使用100M+150M=250M,剩余6M。然后来了第三个程序,第三个程序说,我要50M,这个时候系统自动关闭最先申请内存程序的虚拟机,或者最次要程序的虚拟机,他把第一个程序关闭了,系统获得了100M的内存,加上剩余的6M,合共106M,分配给第三个程序50M,系统继续运行。第一个是三个和尚,最后大家都没水吃第二个是牺牲小我,完成大我。当然,系统在
7、实际运用中,比上面复杂多了,例如安卓还加入了“隐藏机制”,只要不运行的程序,都自动马上释放内存,windows系统出现3个程序抢内存的情况,也加入了“等待机制”等,有兴趣的话可以自己研究。转载一段隔壁的论坛的文章:《安卓的原理...不用在意内存的大小》(以下全部都是转载)不用在意剩余内存的大小。其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统
8、才会按一个列表来关闭用户不需要的东西。
此文档下载收益归作者所有