ActivityManagerService知识点

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了ActivityManagerService知识点脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
  • 职责:

    • 四大组件管理(activITy,service,content PRovider,boardcast recever)
    • 主要工作就是管理,记录,查询。
    • 四大组件进程通信的server端 四大组件属于client
    • 属于系统进程的一部分
  • ActivityStack.java:其实是个管理类,管理activity的各种状态
  • ActivityRecord.java:ActivityStack的管理对象,每个Activity在amS对应一个ActivityRecord,来记录Activity的状态以及其他的管理信息。其实就是服务器端的Activity对象的映像
  • ActivityThread.java:主线程

    • main方法

      • 应用进程绑定 thread.attach(false)
      • 主线程消息处理loop创建 LooPEr.prepareMainLooper()和Looper.loop()
  • H.java:Handler子类
  • Instrumentation.java:这个东西我把它理解为ActivityThread的一个工具类,也算是一个劳动者吧,对于生命周期的所有操作例如onCreate最终都是直接由它来执行的。对于hook和测试会用到这个类
  • ApplicationThread.java:用来实现ActivityManagerService与ActivityThread之间的交互。在ActivityManagerService需要管理相关Application中的Activity的生命周期时,通过ApplicationThread的代理对象与ActivityThread通讯
  • Activity启动流程(http://gityuan.com/2016/03/12...

ActivityManagerService知识点

  • 启动流程:

    • 点击桌面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,请注明来意。