Android进阶解密笔记
文章平均质量分 96
只影1
多年Android开发者经验,追求技术
展开
-
7.理解WindowManager
Window是一个抽象类,具体的实现类是PhoneWindow,它对View进行管理。WindowManager是一个接口类,继承自接口ViewManager,它是用来管理Window的,它的实现类为WindowManagerImpl。对Window(View)进行添加、更新和删除操作可以使用WindowManager,WindowManager会将具体的工作交给WMS来处理,WindowManager和WMS通过Binder来进行跨进程通信,WMS作为系统服务有很多API不会暴露给WindowManage原创 2022-06-25 23:55:09 · 669 阅读 · 0 评论 -
6.理解ActivityManagerService
由于AMS的逻辑多而复杂,因此是有一些类帮助AMS完成相关逻辑,而AMS和这些类就被称为AMS家族。Android7.0和Android8.0对于AMS相关部分处理有较大区别,需要区别看待ActivityManager是一个和AMS相关联的类,它主要对运行中的Activity进行管理,但是这些管理工作并不是由ActivityManager来处理的,而是交给AMS来处理的。ActivityManager中的方法会通过ActivityManagerNative(简称AMN)的getDefault方法来得到Act原创 2022-06-25 22:46:41 · 593 阅读 · 0 评论 -
5.理解上下文Context
Context,上下文。是一个 应用程序环境信息 的接口Context的使用场景分为两个大类由于Activity,Service和Application都间接继承自Context,所以一个应用程序进程中Context的数量等于Activity和Service的总个数+1(Application)Context是一个抽象类,它的内部定义了很多方法以及静态常量,它的具体实现为ContextImpl。和Context相关联的类,除了ContextImpl还有ContextWrapper、ContextThemeW原创 2022-06-25 12:19:22 · 486 阅读 · 0 评论 -
4.四大组件的工作过程
Activity的启动分为两种一种是根Activity的启动过程,另一种是普通Activity的启动过程。根Activity指的是应用程序启动的第一个Activity,因此根Activity的启动过程也可以理解为应用程序的启动过程。普通Activity指的是除第一个Activity外其他的Activity。Launcher桌面上应用程序的快捷图标就是启动根Activity的入口,当我们点击某个程序的快捷图标时,就会通过Launcher请求Ams来启动该应用程序。Launch请求Ams的时序图如下当我们点击应原创 2022-06-25 00:33:18 · 547 阅读 · 0 评论 -
3.应用程序进程启动过程
应用程序进程创建过程可以分为两个部分,分别是AMS发送启动应用进程请求以及Zygote接受请求并创建应用程序进程时序图如下Ams如果想要启动应用就需要向Zygote进程发送创建应用进程的请求,AMS通过调用startProcessLocked方法向Zygote进程发送请求/frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java/frameworks/base/core/java/android原创 2022-06-24 23:02:54 · 910 阅读 · 0 评论 -
2.Android系统启动
Android系统的启动流程有以下几个部分启动电源以及系统启动当电源按下时,引导芯片从预定义的地方(固化在ROM)开始执行。加载引导程序(BootLoader)到RAM,然后执行引导程序BootLoader引导程序BootLoader是在Android操作系统开始运行前的一个小程序,主要作用是把系统OS(Linux系统?)拉起来并运行Linux内核启动当Linux内核启动时,先进行系统设置(设置缓存、被保护存储器、计划列表、加载驱动)。当内核完成系统设置时,它首先在系统文件中寻找init.rc文件,并启动i原创 2022-06-24 14:11:39 · 756 阅读 · 0 评论