`

[转]Android进程管理

阅读更多
转载地址:http://android.tgbus.com/Android/tutorial/200812/172711.shtml
除了Activity Lifecycle以外,Android还有一个Process Lifecycle的说明:

  在内存不足的时候,Android是会主动清理门户的,那它又是如何判断哪个process是可以清掉的呢?文档中也提到了它的重要性排序:

  1. 最容易被清掉的是empty process,空进程是指那些没有Activity与之绑定,也没有任何应用程序组件(如Services或者IntentReceiver)与之绑定的进程,也就是说在这个process中没有任何activity或者service之类的东西,它们仅仅是作为一个cache,在启动新的 Activity时可以提高速度。它们是会被优先清掉的。因此建议,我们的后台操作,最好是作成Service的形式,也就是说应该在Activity中启动一个Service去执行这些操作。

  2.接下来就是background activity了,也就是被stop掉了那些activity所处的process,那些不可见的Activity被清掉的确是安全的,系统维持着一个 LRU列表,多个处于background的activity都在这里面,系统可以根据LRU列表判断哪些activity是可以被清掉的,以及其中哪一个应该是最先被清掉。不过,文档中提到在这个已被清掉的Activity又被重新创建的时候,它的onCreate会被调用,参数就是onFreeze时的那个Bundle。不过这里有一点不明白的是,难道这个Activity被killed时,Android会帮它保留着这个Bundle吗?

  3.然后就轮到service process了,这是一个与Service绑定的进程,由startService方法启动。虽然它们不为用户所见,但一般是在处理一些长时间的操作(例如MP3的播放),系统会保护它,除非真的没有内存可用了。

  4.接着又轮到那些visible activity了,或者说visible process。前面也谈到这个情况,被Paused的Activity也是有可能会被系统清掉,不过相对来说,它已经是处于一个比较安全的位置了。

  5.最安全应该就是那个foreground activity了,不到迫不得已它是不会被清掉的。这种process不仅包括resume之后的activity,也包括那些onReceiveIntent之后的IntentReceiver实例。

  在Android Application的生命周期的讨论中,文档也提到了一些需要注意的事项:因为Android应用程序的生存期并不是由应用本身直接控制的,而是由 Android系统平台进行管理的,所以,对于我们开发者而言,需要了解不同的组件Activity、Service和IntentReceiver的生命,切记的是:如果组件的选择不当,很有可能系统会杀掉一个正在进行重要工作的进程。

  下一步要了解的应该是Intent和它的IntentReceiver了,改天继续。

分享到:
评论

相关推荐

    个人编写Android进程管理器源代码,可完美运行

    个人编写Android进程管理器源代码,可完美运行

    android上的进程管理软件

    一个简单的android进程管理软件,适合初学者研究

    android进程管理

    Android进程 Android内存策略 Android虚拟机Dalvik Android与linux相比 进程间通讯

    Android应用程序进程管理

    这个PPT讲Android应用程序进程的启动和回收,主要涉及到Zygote进程、System Server进程,以及组件管理服务ActivityManagerService、窗口服务WindowManagerService,还有专用驱动Low Memory Killer。通过了解Android...

    Android进程管理器.pdf

    Android进程管理器.pdf

    Android进程管理机制及优化(HTC&其它可参考)

    NULL 博文链接:https://2528.iteye.com/blog/1056413

    Android进程管理机制及优化forHTCHeRO.pdf

    Android进程管理机制及优化forHTCHeRO.pdf

    ProcessManager(android 进程管理)

    1 杀进程释放的内存大小是可能为负数, 原因是求出两次(释放前后)内存总数相减 2 android 4.0 应用内存,cup显示问题 原因 解析 top 命令返回的字符串时是按照2.x 版本计算的,没有涉及4.0版本的,简单修改一下...

    Android系统中的进程管理:进程的创建

    本文是进程管理系统文章的第一篇,会讲解Android系统中的进程创建。本文适合Android平台的应用程序开发者,也适合对于Android系统内部实现感兴趣的读者。Android系统以Linux内核为基础,所以对于进程的管理自然离不...

    进程管理.zip

    android 的进程管理 --只包括获取进程和杀死进程

    Android进程管理机制及优化_for_HTC[整理].pdf

    Android进程管理机制及优化_for_HTC[整理].pdf

    Android文件管理器源码

    Android文件管理器(增加了文件夹复制移动,下载资源暂停删除等,以及复制过程中的可视化进程)是一个基于Android开发的应用,包含常用文件操作以及文件下载功能,文件操作包括打开文件夹和打开各类的文件(apk、avi...

    android 任务管理器

    对后台运行的进程进行管理,可对某个进程进行查看程序详情、杀死进程、打开程序操作 2. 应用管理 对手机全部应用进行管理 3. 系统资源监控 可以实时查看手机运行时的CPU利用率、内存利用率、已使用内存、可用内存、...

    android程序管理代码

    android程序管理代码,简单实现程序管理,可以查看、卸载安装的程序,一键停止正在运行的进程

    android项目之aidl跨进程调用举例Demo

    android项目之aidl跨进程调用举例Demo,开发aidl跨进程调用,主要分以下步骤: 1. 创建.aidl文件-该文件(YourInterface.aidl)定义了客户端可用的方法和数据的接口。 2. 在makefile文件中加入.aidl文件-(Eclipse...

    Android项目实战--手机卫士29--杀死后台进程

    Android项目实战--手机卫士29--杀死后台进程

    Android进程管理软件-Melo Process Manager.zip

    这是本人2011的自己做的毕业设计,里面包含了所有毕业设计的文档,包括: 1.封面扉页; 2.开题报告; 3.论文正文+附录; 4.任务书; 5.英文翻译封面;...另外还有大部分源代码,该毕业设计花费了我几个月的心血,本来想...

    android任务管理器

    直接加载到虚拟机上就可以运行。可以对进程进行全杀,或者单杀。另外还包括服务,文件管理,程序管理等等。。

    Android结束进程的方法详解

    最近在做一个类似与任务管理器的东西,里面有个功能,可以通过这个管理器结束掉其他的进程。 在Android平台下,结束进程的方法还是比较多的。首先指明,此处的“结束进程”,包含了结束自身进程和结束其他进程两个...

Global site tag (gtag.js) - Google Analytics