zoukankan      html  css  js  c++  java
  • 不要通过终止进程的方式清理内存

    通过终止进程来清理内存的方案是不合适的,理由如下:

    1、 android 有自身的进程和内存管理机制,其设计规范是要保证程序尽可能快地启动,这就要求程序退出后仍然占用内存保存数据;

    2、 android 的内存管理策略保证在新程序载入时有足够的内存,当内存不足时会自行关闭优先级低的进程来释放内存;

    3、 进程数据长期缓存在内存,对于 android 来说不是缺陷,而是优势,它尽可能地确保程序的启动质量以提升用户体验,人们长期被强迫症困扰,一直误以为大量占用内存是低效的表现,这与人们长期使用桌面系统不无关系;

    4、 我们的另一个误区是,占用内存耗电,其实不然!真正耗电的幕后推手是 CPU,反复清理内存需要CPU反复地工作,所以清理内存反而耗电;

     

    网上一个形象的比喻:你在图书馆查资料,一种方案是把可能需要的资料全部从书架上取下来放到桌上,可能会有冗余,但不必经常去书架取书;另一种方案,书桌上只放当前正在查阅的资料,查完马上放回书架,这样虽然书桌上很干净,但你需要反复从书架上取书放书。这里书就好比内存,取书放书的动作好比 CPU 的工作。显然第一种方案更加高效和轻松。

     

    一些靠谱的资料:

    阐述为什么不需要终止进程来释放内存的原因http://android.nextapp.com/site/fx/doc/exit

     

    两位谷歌工程师的建议:

    Romain Guy :用户不要去做终止进程来释放内存的事,这与 android 的应用设计框架相悖,应该交由系统去做(这里的用户既是指使用 APP的用户,也是指APP本身或APP开发人员)https://groups.google.com/forum/#!topic/android-developers/G_D3pKnGLt0    http://stackoverflow.com/questions/2042222/close-application-and-launch-home-screen-on-android

     

    Dianne Hackborn : 强烈反对使用 System.exit() 来终止程序,请不要如此设计你的 Android 应用 https://groups.google.com/forum/#!topic/android-developers/Y96KnN_6RqM

  • 相关阅读:
    Python3 文件
    Python 字典
    Python OS
    Python函数zip-map
    Python 3.5 filter
    python3.5.2库getpass
    JavaScript学习四
    cocos creator学习
    JavaScript学习三
    JavaScript学习3
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3174490.html
Copyright © 2011-2022 走看看