-
创建
AppRuntime
并调用其start
方法,启动Zygote
进程。 -
创建 Java 虚拟机并为 Java 虚拟机注册
JNI
方法。 -
通过
JNI
调用ZygoteInit
的main
函数进入Zygote
的 Java 框架层。 -
通过
registerZygoteSocket
方法创建服务器端Socket
,并通过runSelectLoop
方法等待AMS
的请求来创建新的应用程序进程。 -
启动
SystemServer
进程。
SystemServer 进程主要用于创建系统服务,我们熟知的 AMS、WMS 和 PMS 都是由它来创建的,因此掌握 SystemServer 进程是如何启动的,它在启动时做了哪些工作是十分必要的。
SystemServer
进程启动总结
SystemServer 进程被创建后,主要做了如下工作:
-
启动 Binder 线程池,这样就可以与其他进程进行通信。
-
创建 SystemServerManager,其用于对系统的服务进行创建、启动和生命周期管理。
-
启动各种系统服务。(引导服务、核心服务和其他服务)
引导服务:AMS、PMS等等
1、SystemServer
进程启动总结
当电源键按下时引导芯片代码从预定义的地方(固化在 ROM)开始执行。加载引导程序 BootLoader 到 RAM,然后执行。
2、引导程序 BootLoader
引导程序 BootLoader 是在 Android 操作系统开始运行前的一个小程序, 它的主要作用是把系统 OS 拉起来并运行。
3、Linux
内核启动
当内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。当内核完成系统设置时,它首先在系统文件中寻找 init.rc 文件,并启动 init 进程。
4、init
进程启动
初始化和启动属性服务,并且启动 Zygote 进程。
5、Zygote
进程启动
创建 Java 虚拟机并为 Java 虚拟机注册 JNI 方法,创建服务器端 Socket,启动 SystemServer 进程。
6、SystemServer
进程启动
总结
其实要轻松掌握很简单,要点就两个:
- 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
- 多练。 (视频优势是互动感强,容易集中注意力)
你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
以上就是总结的关于在面试的一些总结,希望对大家能有些帮助,除了这些面试中需要注意的问题,当然最重要的就是刷题了,这里放上我之前整理的一份超全的面试专题PDF
还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
这里只是整理出来的部分面试题,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢在关注一下~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
s/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!