android记录笔记(二)针对应用框架层梳理的整合笔记
这篇笔记主要是结合自我认知,加上各种学习资源,整理而成的查找笔记,整理的不好,还望指出错误,主要是用于查找与记录,该篇笔记大多借鉴刘望舒的博客,对大佬致敬哈,我也是你忠实的粉丝,如有冒犯,请见谅,也可告知,我将立即删除本篇文章。
针对应用框架层我认为必须要清楚的知识概念:
第一:一定要弄清楚安卓的体系结构,和安卓系统启动流程,清楚Binder和重要的系统进程,如AMS ,WMS PMS等。
第二:一定要弄清楚应用程序的安装和启动过程,明白四大组件的工作流程、明白进程内之间的操作(消息处理机制)、明白进程外之间的操作(jni 和 ndk)等
第三:还要弄清楚核心的知识板块,如键盘消息处理机制,蓝牙,wifi,音视频,nfc,Dalvik和ART虚拟机等
1)------ 安卓的体系结构
该图来自,罗升阳 android 系统源代码情景分析 和自我理解(丑)。
相关大佬文章:http://liuwangshu.cn/framework/system-architecture.html
2)------ 安卓系统启动流程
大佬的超级分析:
Android系统启动流程(一)解析init进程启动过程
Android系统启动流程(二)解析Zygote进程启动过程
Android系统启动流程(三)解析SyetemServer进程启动过程
Android系统启动流程(四)Launcher启动过程与系统启动流程
3)------ 清楚Binder
下面引用包建强老师的解析:https://www.cnblogs.com/Jax/p/6864103.html (Android底层知识(1))
4)------ AMS ,WMS PMS
##1.AMS
AMS 全称ActivityManagerService,是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要AMS的支持。
大佬文章:
ActivityManagerService(一)AMS启动流程和AMS家族
ActivityManagerService(二)ActivityTask和Activity栈管理
##2.WMS
WMS 全称WindowManagerService,是系统的其他服务,无论对于应用开发还是Framework开发都是重点的知识,它的职责有很多,主要有以下几点:
窗口管理,窗口动画,输入系统的中转站,Surface管理
详细大佬分析:
WindowManagerService(一)WMS的诞生
WindowManagerService(二)WMS的重要成员和Window的添加过程
WindowManagerService(三)Window的删除过程
关于WindowManager的分析:
WindowManager(一)WindowManager体系
WindowManager(二)Window的属性
WindowManager(三)Window的添加过程
##3.PMS
PMS,全称PackageManagerService,它主要负责对包进行管理。
他是如何处理APK安装的,主要有几个步骤:
- PackageInstaller安装APK时会将APK的信息交由PMS处理,PMS通过向PackageHandler发送消息来驱动APK的复制和安装工作。
- PMS发送INIT_COPY和MCS_BOUND类型的消息,控制PackageHandler来绑定DefaultContainerService,完成复制APK等工作。
- 复制APK完成后,会开始进行安装APK的流程,包括安装前的检查、安装APK和安装后的收尾工作。
大佬分析文章:已 APK的安装 为切入口,讲了PackageManager、APK文件结构和安装方式,详细看下面。
Android包管理机制(一)PackageInstaller的初始化
Android包管理机制(二)PackageInstaller安装APK
Android包管理机制(三)PMS处理APK的安装
Android包管理机制(四)PMS的创建过程
Android包管理机制(五)APK是如何被解析的
-------------未完,待完善