Android基础之Process

From: http://blog.csdn.net/xiruanliuwei/article/details/6278993

进程

默认情况下,同一个应用程序中的所有组件运行在同一个进程中,而且绝大多数的应用程序也都是这样的。但是,如果我们想要控制让某个特定的组件属于某个进程,我们可以在manifest文件中进行配置。

在每种组件元素(activity、service、receiver、provider)的manifest条目中,都支持一个“android:process”的属性,通过这个属性,我们可以指定某个组件运行的进程。我们可以通过设置这个属性,让每个组件运行在它自己的进程中,也可以只让某些组件共享一个进程。我们要可以通过设置“android:process”属性,让不同应用程序中的组件运行在相同的进程中,这些应用程序共享相同的Linux用户ID,拥有相同的证书。

<application>元素也有一个“android:process”属性,可以设置一个应用于全部组件的默认值。

    当可用内存数量低,而一些与用户即时交互的进程又需要内存时,Android随时可能会终止某个进程。运行在被终止的进程中的组件会因此被销毁,但是,当再次需要这些组件工作时,就会再启动一个进程。

    在决定要终止哪个进程时,Android系统会权衡它们对于用户的重要性。例如,相较于运行可见activities的进程,终止一个运行不可见activities的进程会更加合理。是否终止一个进程,依赖于运行在这个进程中的组件的状态。

 

进程生命周期

Android系统会尽可能让一个应用程序进程运行更长的时间,但是它也需要移除旧的进程,为那些新创建的进程或者相比起来更加重要的进程释放内存空间。要决定哪个进程保留,哪个进程终止,系统会将每个进程放置到“importance hierarchy”中,“importance hierarchy”是基于运行在进程中的组件以及这些组件的状态的。拥有最低重要性的进程会首先被干掉,然后就是那些次低重要性的进程,依次类推。

在“importance hierarchy”中,共有五个等级。下面的列表中,按照重要性列出了五种不同类型的进程:

1、 前台进程(Foreground process)

2、 可见进程(Visible process)

3、 服务进程(Service process)

4、 后台进程(Background process)

5、 空进程(Empty process)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值