转自android的原理,为什么不需要手动关闭程序

不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。

Andoird大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。

如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。

进行内存调度有个阈值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。

当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。

但事实上他并不影响速度。相反加快了下次启动应用的速度。

这本来就是Android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。

(这里解决了大家非要关进程的误区!)

到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?

其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,

这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。

这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。

所以,论坛上有个更改内存阈值的程序可以有一定改善。

但改动也可能带来一些问题,取决于值的设定。

那么,进程管理软件有无必要呢?有的。

就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。

但一些小程序,完全可交由系统自己管理。

谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。

我就说说android后台的原理,你就明白了。

android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。

所以为什么有的程序切出去重进会到主界面。

但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。

服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。

至于广播什么的我就不涉及了。

所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这

种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢?(告诉我们如何合理使用进程管理软件)

还有一个,为什么android一个应用看起来那么耗内存。

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

(跟塞班也不一样,安卓不容易死机重启)

以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。

大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。大家不妨按我说的习惯来用用这个系统。

祝大家玩机愉快,这系统开十天半个月都没问题,不是windows。

android的原理,为什么不需要手动关闭程序的更多相关文章

  1. android的原理--为什么我们不需要手动关闭程序

    内容搜集自网络,有所删改       不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了.android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系.如果你知 ...

  2. Android Camera2采集摄像头原始数据并手动预览

    Android Camera2采集摄像头原始数据并手动预览 最近研究了一下android摄像头开发相关的技术,也看了Google提供的Camera2Basic调用示例,以及网上一部分代码,但都是在Te ...

  3. Android ADB原理及常用命令

    Android调试桥(ADB, Android Debug Bridge)是一个Android命令行工具,包含在SDK 平台工具包中,adb可以用于连接Android设备,或者模拟器,实现对设备的控制 ...

  4. Android记录11-控制ExpandableListView展开和关闭

    Android记录11-控制ExpandableListView展开和关闭 2013年12月5日 工作记录 我们在使用ExpandableListView可能会遇到各种问题,比如说只展开一个组,关闭其 ...

  5. Android root 原理

    Android root 原理 0x00 关于root linux和类Unix系统的最初设计都是针对多用户的操作系统,对于用户权限的管理很非常严格的,而root用户(超级用户)就是整个系统的唯一管理员 ...

  6. NFC(6)NFC编程的几个重要类,NFC硬件启动android应用原理

    用于NFC编程的几个重要类 Tag NFC 标签 NfcAdapter Nfc 的适配类 NdefMessage 描述NDEF格式的信息 NdefRecord 描述NDEF信息的一个信息段,类似tab ...

  7. 解决Android SDK Manager更新(一个更新Host的程序的原理实现和源码)

    <ignore_js_op>     同学遇到了更新Android SDK的问题,而且Goagent现在也无法用来更新.就想到了用替代Host的方法,添加可用的谷歌地址来实现更新.    ...

  8. [置顶] android系统如何在静音模式下关闭camera拍照声音(2)

    之前写过一篇“android系统如何在静音模式下关闭camera拍照声音”的博客,今天来写他的续篇,继续探讨这个问题. 公司新需求,要求在camera应用中添加一个开关,可以进行拍照声音的关闭和开启. ...

  9. 关于手动关闭BootStrap模态框

    在网上找手动关闭BootStrap模态框的解决方法,说是(需要引用bootstrap.js等): $("#myModal").modal('hide'); 但是我发现我的只能关闭 ...

随机推荐

  1. IOS8开发之实现App消息推送

    第一部分 Apple Push Notification Service 首先第一步当然是介绍一下苹果的推送机制(APNS)咯(ps:其实每一篇教程都有),先来看一张苹果官方对其推送做出解释的概要图. ...

  2. a标签中的href="#"与href="javascript:void(0)"区别

    转自http://blog.csdn.net/fightplane/article/details/5190037 <a href="#"> 点击链接后,页面会向上滚到 ...

  3. Java的浮点数

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5160771. ...

  4. 11.10 noip模拟试题

    1.第K小数 (number.cpp/c/pas) [问题描述] 有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数 相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少 ...

  5. minicom移植到ARM开发平台

    minicom需要ncurses库的支持.arm-linux-gcc中并没有此库故需要交叉编译ncurses,否则出现很多头文件.库函数找不到. 软件环境: ncurses-6.0 下载网址:http ...

  6. ASP.NET MVC 第八回 Helper之演化

    题目:如何在View中写一个超级连接连接到主页? 这个问题看起来很好回答: <a href="/home/index">首页</a> 其实上面这种不能称之为 ...

  7. C# 分页

    #region 分页 /// <summary> /// 分页 /// </summary> /// <param name="page">当前 ...

  8. CI框架篇之预热篇(1)

    CodeIgniter 的基本都了解了,现在就开始预热,如果学习一门语言一样,我们最开始都是输出一个'HELLO WORLD'一样, 现在我们也通过输出这样一个内容,来了解基本的使用. CodeIgn ...

  9. JS 定時刷新父類頁面

    function timeCount() { var url = "MAC.aspx"; parent.location.href = url; } function beginC ...

  10. Object-c 创建对象

    创建对象有两种方法: 1. NSString *str = [NSString string]; 2. NSString *myStr = [[NSString alloc]init]; 第一种创建方 ...