【Android开发API】应用的组成部分进程和线程.pdfVIP

【Android开发API】应用的组成部分进程和线程.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【Android开发API】应用的组成部分进程和线程.pdf

eoe 移动开发者社区 / 原文地址: /guide/topics/fundamentals/processes-and-threads.ht ml android中进程与线程 - Processes and Threads 当一个应用程序开始运行它的第一个组件时,Android会为它启动一个Linux进程,并在其 中执行一个单一的线程。默认情况下,应用程序所有的组件均在这个进程的这个线程中运行。 然而,你也可以安排组件在其他进程中运行,而且可以为任意进程衍生出其它线程. 下面将 介绍如何在android系统中使用线程和进程. 进程 - Processes 默认情况下,同一应用程序的所有组件运行在同一进程中。不过,如果你需要控制某个组件 属于哪个进程,也可以通过修改manifest文件来实现。 manifest文件中的所有支持andr oid:process属性的那些项,例如活动| activity,服务| service, receiver,和内 容提供|provider都可以指定一个进程,这样这些组件就会在指定的进程中运行.你可以 设置这个属性使每个组件运行于其自己的进程或只是其中一些组件共享一个进程.你也可以 设置android:process以使不同应用的组件们可以运行于同一个进程—这样需要这些应用 共享同一个用户ID并且有相同的数字证书. application元素也支持android:process 属性,用于为所有的组件指定一个默认值. Android系统可能在某些时刻决定关闭一个进 程,比如内存很少了并且另一个进程更迫切的需要启动时.进程被关闭时,其中的组件们都 被销毁.如果重新需要这些组件工作时,进程又会被创建出来。 当决定关闭哪些线程时,A ndroid系统会衡量进程们与用户的紧密程度.例如,比起一个具有可见的activity的进程, 那些所含activity全部不可见的进程更容易被关闭.如何决定一个进程是否被关闭,取决 于进程中运行的组件们的状态.决定关闭进程的规则将在下面讨论. 进程的生命期 Android系统会尽量维持一个进程的生命,直到最终需要为新的更重要的进程腾出内存空 间。为了决定哪个进程该终止,系统会跟据运行于进程内的组件的和组件的状态把进程置于 不同的重要性等级。当需要系统资源时,重要性等级越低的先被淘汰。 重要性等级被分为 5个档。下面列出了不同类型的进程的重要性等级(第一个进程类型是最重要的,也是最后 才会被终止的) 1前台进程 用户当前正在做的事情需要这个进程。如果满足下面的条件,一个进程就被认为是前台进程: 1)这个进程拥有一个正在与用户交互的 Activity(这个Activity的onResume() 方法被调 eoe 移动开发者社区 / 用)。 2)这个进程拥有一个绑定到正在与用户交互的activity上的Service。 3)这个进程拥有一个前台运行的Service — service调用了方法 startForeground(). 4)这个进程拥有一个正在执行其任何一个生命周期回调方法(onCreate(),onStart(), 或o nDestroy())的Service。 5)这个进程拥有正在执行其onReceive()方法的BroadcastReceiver。 通常,在任何时间点,只有很少的前台进程存在。它们只有在达到无法调合的矛盾时才会被 终止--如果内存太小而不能继续运行时。通常,到了这时,设备就达到了一个内存分页调 度状态,所以需要终止一些前台进程来保证用户界面的反应. 2可见进程 一个进程不拥有运行于前台的组件,但是依然能影响用户所见。满足下列条件时,进程即为 可见: 1)这个进程拥有一个不在前台但仍可见的Activity(它的onPause()方法被调用)。例如当一 个前台activity启动一个对话框时,就出了这种情况。 2)这个进程拥有一个绑定在前台(或者可见)Activity的服务。 一个可见的进程是极其重要的,通常不会被终止,除非内存不够,需要释放内存以便前台进 程运行。 3服务进 一个进程不在上述两种之内,但它运行着一个被startService()所启动的service。 尽管一个服务进程不直接影响用户所见,但是它们通常做一些用户关心的事情(比如播放音 乐或下载数据),所以除非系统没有足够的空间运行前台进程和可见进程时才会终止一个服 务进程。 4 后台进程 一个进程拥有一个当前不可见的activ

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档