• 职责:

    • 四大组件管理(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...)

  • 启动流程:

    • 点击桌面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知识点相关推荐

  1. Android中ActivityManagerService与应用程序(客户端)通信模型分析

    今天主要分析下ActivityManagerService(服务端) 与应用程序(客户端)之间的通信模型,在介绍这个通信模型的基础上,再 简单介绍实现这个模型所需要数据类型. 本文所介绍内容基于and ...

  2. 开机SystemServer到ActivityManagerService启动过程分析

    开机SystemServer到ActivityManagerService启动过程 一 从Systemserver到AMS zygote-> systemserver:java入层口: /*** ...

  3. Android (AMS)ActivityManagerService源码分析

    原址 在这篇博客中,给大家带来AMS的技术分享.AMS(ActivityManagerService)是贯穿Android系统组件的核心服务,负责了系统中四大组件的启动.切换.调度以及应用进程管理和调 ...

  4. Android ActivityManagerService (AMS)总结

    转载前言 AMS在Android中算是比较重要的一个知识点,不管是binder的源码还是Serveice的源码,都是涉及到AMS的,因此理解"AMS是什么"对一个Android开发 ...

  5. JAVA_Android客户端_基础知识点总结

    目录 一:JAVA基础 1.四大特性及其含义 2.状态修饰符 3.JVM和JVM 内存模型 4.JVM 内存结构 5.JVM之GC 关于G1: 6.类加载过程,类加载时机,类加载器,双亲委托模型 7. ...

  6. Android知识点原理总结

    Activity 4种启动模式 要讲启动模式,先讲讲任务栈Task,它是一种用来放置Activity实例的容器,他是以栈的形式进行盛放,也就是所谓的先进后出,主要有2个基本操作:压栈和出栈,其所存放的 ...

  7. 划重点!百度、阿里、腾讯大厂Android面试必问知识点系统梳理,啃一半公司随便挑

    前言 大厂面试一直是我们程序员小伙伴茶余饭后所津津乐道的话题.能进一线互联网大厂工作,也是每个程序员生涯的梦想,为的不仅仅是大厂的种种福利.工作环境和高薪,更为的是大厂的工作氛围,能加入到大牛的圈子, ...

  8. ActivityManagerService架构剖析开篇

    转https://www.jianshu.com/p/17b2844b2a27 ActivityManagerService是Android提供了管理Activity运行状态的系统进程,其实大家别被名 ...

  9. android进阶知识总结,Android进阶学习有哪些知识点

    Android进阶学习有哪些知识点 发布时间:2020-07-29 12:50:39 来源:亿速云 阅读:114 作者:Leah 本篇文章给大家分享的是有关Android进阶学习有哪些知识点,小编觉得 ...

最新文章

  1. 技术道路独行16载,他总结了CTO的五大自我修炼法则!
  2. c语言课程设计贴吧,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  3. poj pku 2528 线段树的基础应用
  4. 老李分享:Web Services 组件 2
  5. 2015-01-14
  6. 图神经网络(一)图信号处理与图卷积神经网络(3)图傅里叶变换
  7. oracle日志查看问题?
  8. 含泪整理最优质草坪灯光域网素材,你想要的这里都有
  9. Au 音频效果参考:混响
  10. WPF 精修篇 滑条
  11. Redis 惰性删除
  12. 微信小程序传数组给后台(thinkphp后台接受前端数组参数)
  13. Python正则表达式中的r
  14. Linux下:matplotlib 添加 Times New Roman字体
  15. 测试用例-——教室和椅子
  16. 微信小程序的开发(前端)
  17. 『赠书活动 | 第八期』《ChatGpt全能应用一本通》
  18. 黑马程序员__关于自己的一些学习死角的再学习(基于老毕的java基础视频)
  19. QQ技巧,QQ勋章,刷勋章,刷财源滚滚,
  20. AdRotator控件动态的显示广告图片-必看必会

热门文章

  1. 《网站分析师实战指南》一2.6 让例行公事的报告见鬼去吧
  2. Building for Production
  3. Netty 入门示例
  4. 使用Sublime Text 3作为Python编辑器有关中文问题
  5. postgresql在线备份与恢复(三)
  6. Lock 与 InterruptedException
  7. cnetos7安装docker V1.0
  8. python运维之轻松模拟开发FTP软件05
  9. 大数据项目开发案例_大数据分析技术——项目案例2(房价数据分析上)
  10. Swift2.0语言教程之闭包