AndroidFrameWork
文章平均质量分 84
来撕特成
这个作者很懒,什么都没留下…
展开
-
Activity的启动流程
小伙伴们面试的时候是不是被问过Activity的启动流程很多啊。那我们就来看看吧。个人感觉这类文章代码细节太多,反而容易迷失在源码调用之中,从而忽略了Activity启动过程的本质。所以本文就简单地定性地对Activity启动过程进行描述,不会贴上大篇幅的源码。本文是根据Android11.0系统源码讲述的。原创 2024-02-04 05:59:22 · 1396 阅读 · 0 评论 -
ATM和AMS启动流程
AMS 在初始化的过程中,也伴随着了ATMS(ActivityTaskManagerService)的初始化。回过头来看ActivityTaskManagerService Lifecycle类中的onStart方法里面publishBinderService,这个方法做了什么呢。Lifecycle构造函数中初始化了AMS,和在ATM中的Lifecycle类似,创建了ATM服务。最终调用的是ServiceManager addService,也就是将ATM这个服务添加到ServiceManager中。原创 2024-01-29 12:00:22 · 435 阅读 · 0 评论 -
system_server进程创建流程
Zygote.forkSystemServer 返回的是一个int型的pid,如果pid不等于0,代表的是在父进程中执行,即。记得上一篇Zygote进程创建里面提到过,forckSystemServer创建system_server进程。返回的Runnable对象,执行run, 执行system_server main 方法,然后return了。最终执行handleSystemServerProcess,是在system_server进程中执行。Zygote进程,如果pid等于0,代表在子进程中执行。原创 2024-01-27 20:57:57 · 430 阅读 · 0 评论 -
Zygote的启动流程
preload()方法主要预先加载了framework中通用的类和资源(core/res/res/values/arrays.xml)、openGL、本地共享库、webView的一些资源。在zygote进程对应的文件是app_main.cpp文件,在app_main.cpp文件的main()方法中先解析了init.rc中配置的参数并根据配置的参数设置zygote的状态。startVM()方法多了大量的命令参数拼接最后通过JNI_CreateJavaVM()方法创建虚拟机。原创 2024-01-27 09:49:32 · 880 阅读 · 0 评论 -
Android 系统启动过程
当按下电源时,引导芯片代码会从预定义的地方(固化在ROM) 开始执行,加载引导程序BootLoader到RAM,然后执行。启动内核的第一个进程idle(pid=0),idle进程是Linux系统第一个进程,是init进程和kthreadd进程的父进程。原创 2024-01-25 14:05:34 · 2116 阅读 · 0 评论