Android启动流程
文章平均质量分 95
LokiCode
github地址:https://github.com/LokiLeung
做一个创造性的程序员
展开
-
【Android系统启动】 Android SystemServer 进程启动流程源码解析
中看到, 传递给zygote的参数中, 含有systemserver的包名"com.android.server.SystemServer",通过搜索此包名得知systemserver位置。主要也是负责启动各种服务和应用,通过过滤其中trace,可以看出大概启动了多个service或者manager,部分是根据配置是否启动的。方法进行类似埋点的操作,systemservice会将启动阶段通知到各个服务,各个服务能够根据不同阶段完成自己的一些车初始化工作。从代码中可以看到,启动到不同阶段的时候,会调用。原创 2024-07-17 16:07:56 · 1479 阅读 · 0 评论 -
【Android系统启动】 Android Zygote 进程启动流程源码解析
在 userdebug 版本中,如果 persist.debug.dalvik.vm.jdwp.enabled 为 1,则所有应用均可使用 JDWP 和 ptrace 进行调试。题外话, 之前找zygote源码的时候,本来想直接通过进程名找这个模块的源码,结果发现根本没有zygote这个名字的命令。通过命令查找到对应的进程目录发现,原来的进程的名字当时编译为。通过上面传下来的参数,“com.android.internal.os.ZygoteInit”,可以得知Java层的包名,以此找到Java代码。原创 2024-07-17 13:57:03 · 815 阅读 · 0 评论 -
【Android系统启动】 Android Init 进程启动流程源码解析
第一个阶段,第一个阶段主要做了一些挂载基本文件系统、设置环境变量等的操作,第二阶段则挂在了额外的文件系统,使用epoll实现了一个事件驱动型的功能,加载和执行.rc文件中的命令;在init.rc文件中, on zygote-start的地方, 写了start zygote, start是android内置的命令,在解析rc文件之前就已经将这些方法放到代码中了,命令会执行start方法,将zygote拉起来;PS:代码中epoll的使用和原理还不大懂,后续需要填坑…(哈哈,其实别的也很多不懂)原创 2024-07-08 20:31:33 · 869 阅读 · 1 评论 -
【Android系统启动】 Android Init 语言官网教程及中文翻译
文章根据system/core/init/README.md对Android Init语言进行翻译;下面给出Init语言中文翻译和原文,翻译为机翻和个人翻译综合完成,如有错误欢迎提出纠正。原创 2024-04-21 04:03:40 · 1247 阅读 · 1 评论 -
【Android系统启动】 Kernel启动流程
可以看到kernel启动的时候,进行了许多环境相关的初始化,如引导CPU、设置缓存、安全信息、内存管理、proc等虚拟文件系统初始化等等;这里主要功能包括等待kthreadd线程设置完成、执行内核初始化的可释放部分、完成异步初始化代码、释放初始化内存、最终化内核映射、设置系统状态为运行中等;然后尝试**执行一系列的init命令(二进制可执行文件),直到找到一个可行的初始化命令为止,**如果都失败,则会触发内核panic。在执行之前,打印出了一些要执行的命令和环境变量信息,以便进行调试和跟踪。原创 2024-04-20 23:14:18 · 1632 阅读 · 0 评论 -
【Android系统启动】 BootLoader - Little Kernel启动流程源码解析
后文中的lk指 Little KernelAndroid启动会经过BootLoader阶段, BootLoader中, 挑选little kernel作为bootloader程序进行源码研究。当然也许多公司使用的是uboot,像作者公司许多项目也是使用uboot。lk官方源码中,没有集成高通、MTK平台的代码, 但是在github开源代码中,能够找到适配高通平台和MTK平台的lk,本文先是基于官方开源代码lk进行总体的分析, 然后对高通平台lk、MTK平台lk的不同部分进行分析;原创 2024-04-17 01:44:45 · 1081 阅读 · 0 评论 -
【Android系统启动】 Android14启动流程概览
作为一个Android开发工程师,了解Android系统从上电到全功能启动的流程,是十分有必要的。这个对排查系统疑难问题、定制系统开发都十分有帮助。因此记录以下系列文章笔记。文章编写与2024年,基于AOSP官网主干代码ARM64b部分学习,按年份计算代码处于Android14~Android15中间。笔者水平有限,如存在谬误,欢迎指出纠正。原创 2024-04-15 02:08:00 · 2022 阅读 · 0 评论