Board logo

标题: 安卓这种内存管理机制好么 [打印本页]

作者: b0207191    时间: 2016-7-6 23:23     标题: 安卓这种内存管理机制好么

引用:
android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要,特别是使用自动关进程的软件。  (这里解决了大家非要关进程的误区!)  到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。  那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。  谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢?(告诉我们如何合理使用进程管理软件)  还有一个,为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。(跟塞班也不一样,案桌不容易死机重启)  以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。大家不妨按我说的习惯来用用这个系统。
windows上的策略是用户自己指定关闭进程,安卓是系统帮你关闭,那么很可能就会关闭不希望关闭的程序,而且这个是灵活的,无法事先设置好策略。比如某游戏,可能正好快通关,不希望切换到别的应用一会儿就被杀掉,但有时候又不重要。
作者: 旨旨    时间: 2016-7-6 23:45

posted by wap, platform: SONY Xperia Z3
出发点是好的,可惜纵容流氓
作者: LTFYH    时间: 2016-7-7 01:14

这种很不习惯,经常是想退出时完全释放结果不释放,然后不想释放资源时又被系统回收了,结果就是在开发时要想些莫名其妙的方法来避免这种情况。
作者: xbox720    时间: 2016-7-7 01:25

posted by wap, platform: 小米5
玩游戏中途去qq抢个红包,几秒钟,回来游戏就reset了,只想说fxxk
作者: blaze1999    时间: 2016-7-7 07:43

posted by wap, platform: iPhone
mac的好
作者: Seiker    时间: 2016-7-7 07:50

所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。
呵呵厚
作者: sig1b    时间: 2016-7-7 07:59

实际感觉最白痴的机制,没有之一。
作者: ffcactus    时间: 2016-7-7 08:15

posted by wap, platform: iPhone
安卓系统太垃圾,
安卓爱好者太文化,
安卓软件太流氓。
作者: 幻飞一线天    时间: 2016-7-7 08:29

posted by wap, platform: Samsung
喷了,程序有锁的,难道没人用,不希望被退出的程序,点一下小锁,不就好了。
作者: francisic    时间: 2016-7-7 08:39

posted by wap, platform: LG G2
标榜个屁,机制就是需要管理的,该杀的不杀,不该杀的使劲儿干它,凡事要靠手动,不洗不偏,安卓这方面确实不行。
作者: b0207191    时间: 2016-7-7 09:12

引用:
原帖由 xbox720 于 2016-7-7 01:25 发表
posted by wap, platform: 小米5
玩游戏中途去qq抢个红包,几秒钟,回来游戏就reset了,只想说fxxk
我就是说这个,有个游戏马上要创纪录最高分了,结果来个电话或者微信回个消息,游戏重启了,记录都没了
作者: 大头木    时间: 2016-7-7 09:28

posted by wap, platform: Android
买4g内存的机器,然后锁定游戏
作者: jun4rui    时间: 2016-7-7 09:31

posted by wap, platform: Chrome
引用:
原帖由 @幻飞一线天  于 2016-7-6 12:29 发表
喷了,程序有锁的,难道没人用,不希望被退出的程序,点一下小锁,不就好了。
用肯定有用,但是你要知道国产的定制化Android系统,好吧就是MIUI这种,老子明明锁了根本没用,放后台隔不久就被杀掉了,所以老子现在特别讨厌MIUI!虽然给新手用确实不错省心,但是你稍微对其有点要求的,用深入了,就会发现各种坑,妈比每次改版就知道推出APP级更新,坑反正没人关注也不怎么填!
作者: ffcactus    时间: 2016-7-7 09:40

posted by wap, platform: iPhone
引用:
原帖由 @jun4rui  于 2016-7-7 09:31 发表
用肯定有用,但是你要知道国产的定制化Android系统,好吧就是MIUI这种,老子明明锁了根本没用,放后台隔不久就被杀掉了,所以老子现在特别讨厌MIUI!虽然给新手用确实不错省心,但是你稍微对其有点要求的,用深入了,就会发现各种坑,妈比每次改版就知道推出APP级更新,坑反正没人关注也不怎么填!
都这样了,你那米2还能用这么久,真爱呀。
作者: 月宫雅    时间: 2016-7-7 09:41

posted by wap, platform: Android
引用:
原帖由 @jun4rui  于 2016-7-7 09:31 发表
用肯定有用,但是你要知道国产的定制化Android系统,好吧就是MIUI这种,老子明明锁了根本没用,放后台隔不久就被杀掉了,所以老子现在特别讨厌MIUI!虽然给新手用确实不错省心,但是你稍微对其有点要求的,用深入了,就会发现各种坑,妈比每次改版就知道推出APP级更新,坑反正没人关注也不怎么填!
MIUI6,没有问题,不知道现在的MIUI如何
作者: VODKA    时间: 2016-7-7 09:46

posted by wap, platform: Firefox
这个机制傻逼透了。。。。。

后台程序随时可能被无缘无故的杀掉,这种操作系统也太不可靠了。。。。。
作者: sig1b    时间: 2016-7-7 09:59

虽然不十分了解安卓系统,黑这种内存管理机制随时都十分乐意参加。其实这个傻逼机制是有linux核心基础的,java环境也无法关闭,傻逼一带一大群啊,,,,,,
作者: ffcactus    时间: 2016-7-7 10:05

posted by wap, platform: iPhone
引用:
原帖由 @sig1b  于 2016-7-7 09:59 发表
虽然不十分了解安卓系统,黑这种内存管理机制随时都十分乐意参加。其实这个傻逼机制是有linux核心基础的,java环境也无法关闭,傻逼一带一大群啊,,,,,,
放屁,这哪里是什么Linux核心基础?
作者: jun4rui    时间: 2016-7-7 10:09

posted by wap, platform: Chrome
引用:
原帖由 @月宫雅  于 2016-7-6 13:41 发表
MIUI6,没有问题,不知道现在的MIUI如何
MIUI7+红牛2,刚出来前几个月,用网易云音乐在后台,100%在若干分钟后被杀,锁定在内存完全没用。后来解决了,但是你只要调整成省电模式还是偶尔莫名就被干掉了,最后开性能模式其它全默认才解决,但是电池明显不耐用了,后来我换机了,小米你爱修不修随意了
作者: ffcactus    时间: 2016-7-7 10:20

posted by wap, platform: iPhone
引用:
原帖由 @jun4rui  于 2016-7-7 10:09 发表
MIUI7+红牛2,刚出来前几个月,用网易云音乐在后台,100%在若干分钟后被杀,锁定在内存完全没用。后来解决了,但是你只要调整成省电模式还是偶尔莫名就被干掉了,最后开性能模式其它全默认才解决,但是电池明显不耐用了,后来我换机了,小米你爱修不修随意了
喷了,我原以为虚拟机垃圾还只是设计理念不同,没想到这都垃圾得突破了我的想象,2333。
这电脑报还天天给虚拟机吹逼,我也真是佩服。
作者: sig1b    时间: 2016-7-7 10:45

引用:
原帖由 ffcactus 于 2016-7-7 10:05 发表
posted by wap, platform: iPhone
放屁,这哪里是什么Linux核心基础?
自己百度,linux核心的缓存机制就支持这种加载文件到内存备用,刷新,,,
作者: ffcactus    时间: 2016-7-7 11:03

posted by wap, platform: iPhone
引用:
原帖由 @sig1b  于 2016-7-7 10:45 发表
自己百度,linux核心的缓存机制就支持这种加载文件到内存备用,刷新,,,
半桶水就别在这里晃了,都不屑与你解释。
作者: 富二代    时间: 2016-7-7 11:48

posted by wap, platform: Android
引用:
原帖由 @jun4rui  于 2016-7-7 10:09 发表
MIUI7+红牛2,刚出来前几个月,用网易云音乐在后台,100%在若干分钟后被杀,锁定在内存完全没用。后来解决了,但是你只要调整成省电模式还是偶尔莫名就被干掉了,最后开性能模式其它全默认才解决,但是电池明显不耐用了,后来我换机了,小米你爱修不修随意了
这估计是5.0内存泄露的问题。同样2g的红牛三好多了
作者: lewx    时间: 2016-7-7 12:07

posted by wap, platform: iPhone
太自由的方案问题多多
作者: sig1b    时间: 2016-7-7 12:27

本来不是黑安卓全部,基于这个系列的内存机制太不为用户考虑了,结果顺带linux,java都带上了。这个方面以前是不该被黑的,因为硬件上物理内存都比较少,但是保留到现在而无法关闭,只有说实在太不应该了。这里不禁要问,以后100g物理内存也要杀用户后台程序吗?

[ 本帖最后由 sig1b 于 2016-7-7 13:27 编辑 ]
作者: 国家重点型号    时间: 2016-7-7 12:53

posted by wap, platform: MAC OS X
引用:
原帖由 @sig1b  于 2016-7-7 10:45 发表
自己百度,linux核心的缓存机制就支持这种加载文件到内存备用,刷新,,,
胡说八道,你说linux核心哪块代码是加载文件做缓存的?
作者: sig1b    时间: 2016-7-7 13:22

引用:
原帖由 国家重点型号 于 2016-7-7 12:53 发表
posted by wap, platform: MAC OS X
胡说八道,你说linux核心哪块代码是加载文件做缓存的?
自己百度,方法多,,,

[ 本帖最后由 sig1b 于 2016-7-7 13:24 编辑 ]
作者: 国家重点型号    时间: 2016-7-7 13:33

posted by wap, platform: iPhone
引用:
原帖由 @sig1b  于 2016-7-7 13:22 发表
自己百度,方法多,,,
别往外扯,我看过2.6版本内存分页的代码,你告诉我哪里有读文件做缓存的

本帖最后由 国家重点型号 于 2016-7-7 13:34 通过手机版编辑
作者: sig1b    时间: 2016-7-7 13:48

引用:
原帖由 国家重点型号 于 2016-7-7 13:33 发表
posted by wap, platform: iPhone
别往外扯,我看过2.6版本内存分页的代码,你告诉我哪里有读文件做缓存的

本帖最后由 国家重点型号 于 2016-7-7 13:34 通过手机版编辑  
百度的:http://www.ha97.com/4337.html




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0