浅析-探究Android世界 APP启动的奥秘一

走进Android世界,指尖轻轻的触碰即可打开一个个缤纷多彩的应用,即可享受极致的交互体验。到底是谁在背后操纵这一切,默默维护着秩序?

 

角色登场:

系统服务: ActivityManagerService (AMS管理组件生命周期等); WindowManagerService(WMS管理窗口展示); PackageManagerService (PKMS记录并管理所有包体相关信息):

应用概念:Application    (实际作用域:更加贴合进程; 若APP中有多个进程,则会创建多个Application)

主线程:ActivityThread (应用的主线程,承接了与AMS服务交互(AMS通过ApplicationThread与应用进程交互),于此同时调度当前进程中的组件周期变化)

组件:Activity,Service,ContentProvider, BroadCast

 

关系分解:

(1) 系统服务与四大组件: Android系统中设计不同服务的管理,如AMS,WMS,PKMS等,其目的是统筹对所有运行在系统上的应用进行管控。于此同时,系统服务框架的构建屏蔽了开发者开发应用需向底层交互的细节。系统服务搭建了一套快速构建应用的模板(就是我们常用的四大组件)

而每个组件都是职责明确的: Activity主要维系用户交互, Service主要用于长时间驻留后端处理事务, ContentProvider主要用于存储应用数据, BroadCast主要维系着不同应用之间的通知;

应用开发者需要用利用好四大组件即可生产出好的应用产品。

(2) Application与四大组件:  Application与四大组件相同点都是模板,供系统服务调度。区别在于作用域: Application的作用域为当前进程, 而四大组件的作用域小于Application。以Activity为例: 正常调度的话,其作用域为具体页面存活时间。

(3) Application与主线程:  Application逻辑上是应用的概念,其作用域可以理解为进程;

                                               主线程(可以理解为应用进程的大管家):每一个进程都会有一个主线程;ActivityThread中负责分发创建Activity,Application以及生命周期状态同步更新,于此同时还与AMS等系统服务交互, 内部还支持AMS向应用进程通信(ApplicationThread)。

 

 

 

 

 

小结:

以上主要简述应用与系统服务之间基本交互流程。

(1) AMS服务通过ActivityThread中的ApplicationThread(Bn端)进程间通信,通知应用发生变化

(2) 而应用直接可与AMS进程间通信,通过ActivityManager Bp端进行跨进程通信

(3) ActivityThread接受AMS消息后,分发调度执行组件相关操作

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值