请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站资讯笑话
圈子家园应用排行文章新帖搜索公交查询店铺点评金山快盘实验室网盘教案管理2012上网客户端

127社区-师生的网上家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

搜索
热搜: 在哪里那邮件 二手笔记本 隔离 邮箱激活 网络硬盘 放假通知 电影 电脑答疑 easy 营养学基础 php FTP 五一 iis web临时会话 3+1 实习生 诺基亚 科创宽带 英语演讲比赛

关于安卓的内存机制问题,走入误区的朋友们都应该来看看!

2011-7-31 11:28| 发布者: Ckviv| 查看: 605| 评论: 0

摘要: 鉴于有很多为了留出更大的内存空间而老是自动杀进程的同学,还有很多说后台程序太多会耗电的同学,这里有两篇文章分享给大家。 第一篇: 合理使用内存,正确认识任务管理器 Android内存原理不用在意剩余内存的大小.其 ...

      

        鉴于有很多为了留出更大的内存空间而老是自动杀进程的同学,还有很多说后台程序太多会耗电的同学,这里有两篇文章分享给大家。
       第一篇:[知识] 合理使用内存,正确认识任务管理器 Android内存原理不用在意剩余内存的大小.其实很多人都是把使用其他系统的习惯带过来来了.安卓Android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系.如果你知道java,就能更清楚这机制了.其实和java的垃圾回收机制类似,系统有一个规则来回收内存.进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西.当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊.但事实上他并不影响速度.相反加快了下次启动应用的速度.这本来就是安卓Android标榜的优势之一,如果人为去关闭进程,没有太大必要.特别是自动关进程的软件.

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

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

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

以上这些设计确保了安卓Android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现.大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要.大家不妨按我说的习惯来用用这个系统.最后推荐一款进程管理软件,systempanel,market上能搜到,界面友好启动快,功能也不错,用于手动关闭进程很好的软件. 祝大家玩机愉快,这系统开十天半个月都没问题,不是windows.

至于为什么开了大程序或者开了好几个程序之后切换会变慢,我的理解如下:

1.大程序A已经开启,占用70%内存,如果再想运行一个B,需要50%的内存,则就需要一个将A从内存中释放或者压缩的过程,所以表现出来的就是慢一会儿

2.ABCDE共占用内存80%,运行新程序Z需要 20%的内存,系统内存因为没见过剩余0的时候,也就是应该剩一部分空闲内存,那么就需要从A~E这几个程序中选择一个或者几个来关闭,这一过程也需要耗费系统资源,所以会慢一会儿

3.也就是说你手动去杀程序的时候,就是替系统在释放内存,就算你不杀,在需要内存的时候系统也会自动释放.

4.不在后台运行的程序(没服务的),即使不杀也不会耗电.在后台运行的(有服务的)程序,如后台放歌,当然会耗电.

5.不是说杀进程没用,不然作者就不会推荐进程管理软件了.哪个带服务耗电哪个后台一直在运行,看服务就能看出来,这样的该杀.

6,以qq举例,正常的退,会在进程管理里留下qq的运行状态,但不耗电不占 cpu,如果你只是切换出去(按小房子而不是退出)那么自然会耗电,因为程序还在运行.

(qq后台一样后台 就是qq正常退出的时候 和别的软件一样 不完全退出 会在内存里留着 但是不占cpu 不费电 再次启动就会非常快了 这就是为什么 android 能超越 WM6的系统的原因)

 

 


鲜花

握手
1

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

  • 435198590

收藏 分享 邀请

最新评论

下级分类

  • 手机展示
  • 平板电脑
  • 业界动态
  • 人才需求
  • 开发工具
  • 应用程序
  • 在线教程
  • 视频教程

手机客户端|Archiver|Dr.Com下载|自助广告位|127格子铺|127社区-师生的网上家园 ( 渝ICP备10016736号 )  手机客户端  

GMT+8, 2012-8-28 08:54

回顶部