脚本宝典收集整理的这篇文章主要介绍了ActivityManagerService知识点,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
-
职责:
- ActivityStack.java:其实是个管理类,管理activity的各种状态
- ActivityRecord.java:ActivityStack的管理对象,每个Activity在amS对应一个ActivityRecord,来记录Activity的状态以及其他的管理信息。其实就是服务器端的Activity对象的映像
-
ActivityThread.java:主线程
- H.java:Handler子类
- Instrumentation.java:这个东西我把它理解为ActivityThread的一个工具类,也算是一个劳动者吧,对于生命周期的所有操作例如onCreate最终都是直接由它来执行的。对于hook和测试会用到这个类
- ApplicationThread.java:用来实现ActivityManagerService与ActivityThread之间的交互。在ActivityManagerService需要管理相关Application中的Activity的生命周期时,通过ApplicationThread的代理对象与ActivityThread通讯
- Activity启动流程(http://gityuan.com/2016/03/12...)
-
启动流程:
- 点击桌面App图标,launcher进程采用Binder IPC向System_server进程发起startActivity请求;
- system_server进程接收到请求后,向zygote进程发送创建进程的请求;
- Zygote进程fork出新的子进程,即App进程;
- App进程,通过Binder IPC向sytem_server进程发起attachApplication请求;
- system_server进程在收到请求后,进行一系列准备工作后,再通过binder IPC向App进程发送scheduleLaunchActivity请求;
- App进程的binder线程(ApplicationThread)在收到请求后,通过handler向主线程发送LAUNCH_ACTIVITY消息;
- 主线程在收到Message后,通过发射机制创建目标Activity,并回调Activity.onCreate()等方法。
以上是脚本宝典为你收集整理的ActivityManagerService知识点全部内容,希望文章能够帮你解决ActivityManagerService知识点所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。