App启动流程大纲及其目录

89 阅读2分钟

话说,搬砖这么久了,无论是知识的广度还是深度上都还是依托于App。现在都在卷基础,那么什么是基础,基础包括很多东西,比如算法,比如FrameWork。

而app 如何启动,涉及到的知识点就蛮多的,比如说,如何从apk里面获取到的activity,为什么4大组件不写进AndroidManifest 文件就会报错,这个就涉及到PMS,如何启动一个application,如何启动一个activity就是AMS,我们拿到activity对象,如何将view 绘制到window 上就涉及到WMS,其中还有很多知识点,比如说,资源文件通过id获取,多个dex文件如何进行类加载,比如说app工程如何合并成一个apk文件。当我们把这一系列流程跑通了之后,就会发现,很多所谓的黑科技,如换肤、热修复、热更新、加固、编译时技术等等就很好理解,都是基于这一套思维架子进行处理。

所以,我们先从最简单的入手。

这个每更新一篇,都更新一次。先写第一版,后续再填充内容。

binder 进程间通信

PMS

PMS可以说是Android 应用得以启动的数据提供者。

handdler 消息通信

AMS

负责创建appliction,activity,服务等,并管理其生命周期。

WMS

这个负责将activity 或者app 的UI层渲染到屏幕上。

资源加载

这个可以做换肤,换主题啥的,当然热修复、热更新、都需要用到他,只要涉及到通过外部dex 导入执行的都需要。

类加载器

这是外部dex 可以被执行的关键点。

编译时技术

Zygote 进程