Android进程和线程

一、进程

    Android是一个多用户,多任务系统,可以并行运行多个应用程序,应用程序努力争取CPU时间来执行自己的任务。

    每个应用运行在一个从Zygote复制的独立linux进程中。默认情况下,所有的Android组件运行在相同的进程中,进程的名字与Android Application Menifest文件中定义的包名一致。

    Linux内核会公平的为每个应用分配CPU时间片。Android操作系统努力去维护应用尽可能长时间的运行,但是,当可获取内存变低时,会killing优先级低的应用来释放资源。

    Android应用的优先级分为以下几种,从高到低:

    1、Foreground Process。

    2、Visible Process。

    3、Service Process。

    4、Background process。

    5、Empty process。

   Android的应用在安装时会被分配一个唯一的Linux User ID(UID),这样,它的进程会运行在一个sandboxed环境中,会将应用的数据和代码和其它应用隔离。在有些情况下,一个应用可以显式的与其它应用共享UID,来访问它们的数据。

二、线程

    在一个Android进程中,可以有多个线程。一个进程中的多个线程可以共享进程中的数据,也可以有自己独立的存储空间来存放自己的数据。

    当应用进程启动时,除了DVM housekeeping线程,系统会创建一个main线程用来和UI交互,所以main线程又被称为UI Thread。它会处理UI事件,保证应用的响应,因此,你需要避免在main Thread中处理耗时的任务,而将其放在独立的线程中。这些任务通常包括:网络交互, 读写文件, 图像和视频处理,复杂的数学计算,文字处理,编解码等。 因此,我们需要管理进程之间的协作和数据共享。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值