佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

搜索
查看: 2121|回复: 14

android ram使用机制

[复制链接]
发表于 9-7-2013 12:44 AM | 显示全部楼层 |阅读模式
不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。

  到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。

  那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。

  谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢。

  还有一个,为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。

转载至google





本帖最后由 jlm 于 9-7-2013 12:45 AM 编辑

回复

使用道具 举报


ADVERTISEMENT

发表于 9-7-2013 09:36 PM | 显示全部楼层
勝过隔壁楼的千言万语。
回复

使用道具 举报

发表于 9-7-2013 09:40 PM | 显示全部楼层
我只是看到文章里兜到那么大个圈讲了一堆话结论就是一个Android手机想要系统顺畅就得堆更多RAM,因为永远做不到iOS那种优化和顺畅 本帖最后由 kwaihou 于 9-7-2013 09:41 PM 编辑

评分

参与人数 1人气 +5 收起 理由
rantao333 + 5 我很赞同

查看全部评分

回复

使用道具 举报

发表于 9-7-2013 10:38 PM | 显示全部楼层
我个人认为,Android apps memory management 的问题是起源于各个厂家拼硬件....
当RAM越来越大时,programmer们根本就不会去想要怎样optimize资源应用吧。。。
像IOS,资源就那么多,你无法有效利用,你的apps就不用想卖得出。。。
其实,除非google干涉,不然,拼硬件+九流的resource management 的apps...给你10g ram 都不够。。。
回复

使用道具 举报

发表于 10-7-2013 12:15 AM | 显示全部楼层
各自用到满意旣可, 无需做无谓的比较,尤其是"顺畅感"。
为什么这样说呢?因为它是人的一种感觉,容易受到情绪,心情,主观,先入为主所影响,较难作出精准判断(最多也是各讲各的好,最后是沒有结论的。)
况且现今同级手机间的差距已非常接近,只用人类的肉眼和触感是没办法作出客观精准判断的,除非借助一台300fps的高级/高速摄像机才能捕捉到那一刹那的分别。
所以Google在发布会上动用了一台300fps的高级录像机才能把 ICS4.0.4与Jelly Bean 4.1的顺畅度分别岀来(人的肉眼是无法分辫45fps以上的视频闪烁,人眼最大分辨速度大约50~100ms,也就是说,当图像连续速度超过30fps的时候,人眼就会认为画面是连续的,所以包括电视画面, CCTV  DVR在内大多数视频的连续播放速度都是30fps)
回复

使用道具 举报

发表于 10-7-2013 12:26 AM | 显示全部楼层
所以结论是什么?
回复

使用道具 举报

Follow Us
发表于 10-7-2013 12:30 AM | 显示全部楼层
各自用到开心就好。
回复

使用道具 举报

发表于 10-7-2013 12:42 AM | 显示全部楼层
ymcheong 发表于 10-7-2013 12:15 AM
各自用到满意旣可, 无需做无谓的比较,尤其是"顺畅感"。
为什么这样说呢?因为它是人的一种感觉,容易受 ...

老实说, 我去senheng看电视。 60fps 和 120fps有巨大的分别,
120 fps 和 800fps 又有巨大分别。
回复

使用道具 举报


ADVERTISEMENT

发表于 10-7-2013 02:35 AM | 显示全部楼层
理论上是,
但实际中主要的问题是很多应用程序滥用 Broadcast receiver 来自动启动,来窃取数据,推送广告。
狗哥的很多程序也是这样的。
我通常会反编译,删除Broadcast receiver就不会再自动启动浪费内存了.


有的程序会一直读取logcat,很容易就lag机了


装多了App很卡? 程序自动启动? 可能这就是解决方案
http://cforum3.cari.com.my/forum.php?mod=viewthread&tid=2722924


太多apps在后台运行了?介绍一个超实用的app!(ROOT)
http://cforum.cari.com.my/forum.php?mod=viewthread&tid=3130092
回复

使用道具 举报

发表于 10-7-2013 07:40 AM | 显示全部楼层
rantao333 发表于 10-7-2013 12:42 AM
老实说, 我去senheng看电视。 60fps 和 120fps有巨大的分别,
120 fps 和 800fps 又有巨大分别。

误解啦。有必要时我会再解析一下。
回复

使用道具 举报

发表于 10-7-2013 09:31 AM | 显示全部楼层
这里说的所谓不顺畅就是因为LAG和卡顿偶尔延迟而Project Butter只不过是让预设系统顺畅但它并不是代表它完全解决了Android系统滥用Memory导致不足的情况之下就LAG和Stutter,越用越慢甚至偶尔只是开个打电话或者Send个短讯的Apps也可以延迟那么慢的问题, 而且某些Android极端或者自认厉害的用户还是不肯接受这个事实,更不搞清楚当初Google所谓的Project Butter用意何在就说些来本末倒置的话论实在无言 本帖最后由 kwaihou 于 10-7-2013 09:55 AM 编辑

回复

使用道具 举报

发表于 10-7-2013 10:54 AM | 显示全部楼层
用家和测评家都有不同的需求和见解,写的人对自己的见解没错,只是看的人看不清作者的内容而自以为是起来。网络上就是存在这么多的人。
谢谢楼主分享。
回复

使用道具 举报

发表于 10-7-2013 11:19 AM | 显示全部楼层

ram多到用不完。。

回复

使用道具 举报

发表于 10-7-2013 11:33 AM | 显示全部楼层
神垂死 发表于 10-7-2013 11:19 AM
ram多到用不完。。

什么机款??
回复

使用道具 举报

发表于 10-7-2013 11:36 AM | 显示全部楼层
deckson. 发表于 10-7-2013 11:33 AM
什么机款??

android神机。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2026 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 15-5-2026 01:50 AM , Processed in 0.097531 second(s), 17 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表