- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用框架的工作原理 在默认情况下,每个应用运行在其独立拥有的Linux进程中。 每个进程拥有一个唯一的Java虚拟机(Dalvik)和唯一的linux用户ID。 如果两个应用拥有相同的linux用户ID,就会共享Linux进程和Dalvik虚拟机。 Android通过引导加载器(bootloader)将Linux内核装载到内存,启动初始化进程。 启动相关守护进程、Zygote虚拟机和相关的实时进程。 init.rc初始化脚本 在启动system\core\rootdir\init.rc脚本后, 会首先创建系统运行需要的各种环境变量, 接着创建各种文件系统(系统文件系统、用户文件系统、SDCard、Cache等)的挂载点,并挂载到MTD(Memory Technology Device)上。 设置进程的内存门槛、系统服务和守护进程的权限等,为各种网络(WIFI、UMTS、GPRS、CAMA等)设置所需的TCP缓存,然后创建各种守护进程。 启动Zygote进程 ?Init进程和一些重要的守护进程启动完成之后,系统启动Zygote 进程。 Zygote 进程启动后,首先初始化一个Dalvik VM实例,然后为它加载资源与系统共享库,并开启Socket监听服务,当收到创建Dalvik VM实例请求时,会通过COW(copy on write)技术复用自己,生成一个新的Dalvik VM实例。 Dalvik VM实例的创建方法基于linux系统的fork原理。 启动Runtime进程 ?启动在Zygote进程之后,Init进程会启动Runtime进程。 Runtime进程首先初始化服务管理器(Service Manager),并把它注册为绑定服务(Binder services)的默认上下文管理器,负责绑定服务的注册与查找。 然后Runtime进程会向Zygote进程发送启动系统服务(System Service)的请求,Zygote进程收到请求后,会“孵化”出一个新的Dalvik VM实例并启动系统服务进程。 启动本地服务 ??System Service会首先启动两个本地服务(由C或C++编写的native服务),Surface Flinger和Audio Flinger,这两个本地系统服务向服务管理器注册成为IPC服务对象,以便在需要它们的时候很容易查找到。 然后SystemService 会启动一些 Android 系统管理服务,包括硬件服务和系统框架核心平台服务,并注册它们成为IPC服务对象。 启动Home Laucher ?当SystemService加载了所有的系统服务后就意味着系统就准备好了,它会向所有服务发送一个系统准备完毕systemready 广播。 当ActivityManagerService 接收到systemready广播后,会向Zygoute进程发送创建Dalvik 虚拟机实例的请求,Zygoute进程会负责生成一个新的Dalvik 虚拟机实例,然后ActivityManagerService在系统中查找具有category android:name = “android.intent.category.HOME”/属性的Activity,并启动它。 ActivityManagerService同时也会使用同样的方法启动Contact(联系人)应用程序。 * APPLICATIONS Application APPLICATION FRAMEWORK LIBRARIES MediaPlayer AudioFlinger BinderIPC Dynamic Load Libaudio.so MediaPlayer Audio Driver Interface Media Framework Linux Kernel
您可能关注的文档
最近下载
- 风电工程风机基础施工作业指导书.doc VIP
- 西电人工智能19计算智能Part136.ppt VIP
- (必会)注册营养师近年考试真题题库(含答案解析).docx VIP
- 集成产品开发(IPD)(整体介绍).pptx VIP
- SY-T 5587.3-2013 常规修井作业规程 第3部分油气井压井、替喷、诱喷.pdf VIP
- 童光辉-政府会计-第七章 资产的核算-B.pptx VIP
- 党支部支委培训.pptx VIP
- 《网络与信息安全管理员》三级考试题库(含答案).docx VIP
- MT 76-2011 液压支架用乳化油、浓缩油及其高含水液压液.pdf VIP
- ★CCC内审检查表文档.docx VIP
文档评论(0)