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


    内容搜集自网络,有所删改
           不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是使用自动关进程的软件。(这里解决了大家非要关进程的误区!)
            到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。但改动也可能带来一些问题,取决于值的设定。
           那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。
           谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢?(告诉我们如何合理使用进程管理软件)
           还有一个,为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。(跟塞班也不一样,安卓不容易死机重启)
            以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。大家不妨按我说的习惯来用用这个系统。
          祝大家玩机愉快,这系统开十天半个月都没问题,不是windows。
    以下内容为保养方法
    本文来自 瀬戸のテーマ 在此感谢!
    多工系统,Multi-task System
        这个字眼其实是针对使用者和程式开发者多于系统本身,因为这世上没有一个系统不是多工的。
    那么,为什么又会有这个术语?
        原因很简单,因为其实多工指的并非系统本身,而是操作环境。
    多工和非多工的操作环境有何分别?
        系统在执行一个程序时,会有以下几个步骤:
             1. 把主程式放到 RAM 中
             2. 在 RAM 中执行程序
             3. 依照程序的需要,把 RAM 分给该程序使用
        在执行程序时,多工和非多工操作环境是没有分别的,而分别在程序结束时。
        多工操作环境:
           1. 把分给该程序使用的 RAM 回收
           2. 如程序本身没有设定自行关闭的话,会把主程式留在 RAM 中
           3. 如该程序没有工作的话,就会在背景待命,否则就是背景执行。
        非多工操作环境:
           1. 强制关闭该程序
           2. 把分给该程序使用的 RAM 回收
           3. 把主程式从 RAM 中移除,取回记忆体
        说到这裡,多工与非多工的分别大家就会很清楚了。
        这是非多工环境的 Iphone、Featured Phone 和多工环境的 Windows Mobile(WM)、Symbian、Android 最大的分别。
        Iphone 永远有足够的 RAM 去给系统运作,所以永保系统运作的顺畅度。
        而 WM、Symbian、Android 这类多工系统,在执行一定数量的程序后,系统便会变钝。

  • 相关阅读:
    常用设计模式
    文件上传相关报错: The current request is not a multipart request或is a MultipartResolver configured?
    Intellij IDEA 与 Gitlab 实现代码上传与下载
    Oracle两表关联,只取B表的第一条记录
    notepad++ 调整行间距
    Ubuntu18.04直接安装python3.7或者升级自带的python3.6版本之后导致终端无法打开的解决办法
    黑苹果之DELL台式机安装Mac OS X 10.13.6版本操作系统
    Windows Ping | Tracert 's Bat 脚本并行测试
    centos 7 修改 sshd | 禁止 root 登录及 sshd 端口脚本定义
    C语言中malloc函数的理解
  • 原文地址:https://www.cnblogs.com/techfans/p/4106880.html
Copyright © 2020-2023  润新知