android 内核启动过程分析

Linux内核How to-2android在androidsystem、bootloade 启动之后会设置环境变量 。Android activity启动Process我以前是做嵌入式系统开发的 , 对平台比较熟悉,所以学习方向是自下而上学习,有相同工作经验的可以效仿:)个人觉得其实是三块,分为移植框架应用1、android系统移植,其实这项工作主要集成在androidlinuxkernel驱动编码和androidsystem启动debugging过程中 。对于androidHAL移植代码编写,其实android system需要移植的模块更少(最精简的系统启动),只需要实现libgralloc模块,就是显示和显存分配的代码和HDMI的启动 HD 。

之前写过相关的linuxkernel和androidcomplete启动process 。只要熟悉了这些原理,就解决了启动 过程中的问题 。移植android system基本上不会有大问题,只要启动是原来的android 。三个平台代码(海思、ST、博通)的android code和原android system code都研究的很透彻,基本上都是这么做的 。

1、Android开机速度优化初探Android的开机速度基本都不快 。通常系统移植后 , 眼前要看的就是优化开机时间 。下面简单回忆一下之前优化过的以下东西 。优化开机时间 , 你通常做的第一件事就是解决bug的问题,这显然是不合理的 。由于开发阶段的稳定性问题,有些地方可能会延迟或者频率定得低 , 所以先记下来,以后定期检查 。如果你不先看这些,你通常会把它们拿到机器上 。我们会统计一下开机时间,主要看以下时间段的分布:开机按键时间,开机时间(基本固定,除非你搞错了,基本再检查一遍)uboot启动time内核-2/然后开机 。

2、Android系统 启动-SystemServer进程相关源文件:根据上一篇关于Android系统的文章启动Zygote process , 当Zygote process 启动时,会调用ZygoteInit.main()方法 。其中会调用registerZygoteSocket、preload、startSystemServer、runSelectLoop来创建服务套接字,提前加载资源,创建SystemServer进程,循环创建子进程 。

3、Android10.0ActivityManagerService的 启动流程我们已经讲完了SystemServer的启动-4/ActivityManagerService,缩写为AMS,管理活动行为,控制活动的生命周期 , 发送消息和事件,管理内存 。activity manager service启动start bootstrap service启动ATM启动activitytaskmanagerservice . life cycle . onstart()最后被调用到启动ATM服务的源代码:activityTaskmanagerservice.java # life cycle . class . ActivityTaskManagerInternal被添加到本地服务的全局注册表中,
【android 内核启动过程分析】
4、Android系统中 启动的第一个进程是哪个?在内核层 , Android系统会启动Linux内核 。Android的核心系统服务都是基于Linux 内核,但是这个Linux 内核,怎么理解呢?Linux 内核不指Linux操作系统 , 内核只包括最基本的内存模型,进程调度 , 权限安全等等 。操作系统是一个更宽泛的概念,不仅包括内核,还包括设备驱动、应用框架和一些应用软件 , 所以Android和Ubuntu都是基于Linux 内核,不同的操作系统 。

5、AndroidFramework——AMS、PMS的 启动流程AMS实际上是SystemServer创建的 。不知道的可以看看这篇文章,AndroidFrameworkSystemServer process启动过程activitymanager service . life cycle . class实际上创建了ActivityManagerServer 。以及创建UI和CPUTracker的Lifecycle onStart方法,最后是桌面活动进程PMS,其实就是SystemServer创建的PackManagerService的主要功能,其实就是创建PackageManagerService对象,然后添加到ServiceManager中 , 其实就是扫描汇总我们data/app目录中的文件 。

6、AndroidActivity 启动流程本文主要根据android10.0.0来描述WMS的启动过程 。作为系统的关键服务 , WMS在system server . Java::start other Services启动WMS主要有以下功能:1 .应用程序应用surface,surfaceFinger通过WMS , Surface代表绘制面,应用程序绘制必须在绘制面上;2.管理窗口的层次结构,一个窗口一般是WMS端的WindowState,是有层次区分的 。它有两个值,基础层和子层 , 这两个值是共同确定的 。3.窗口动画:WindowAnimator , 其中有一个比较重要的对象PhoneWindowManager 。
7、linux 内核如何 启动 android In android system,在bootloade 启动之后,将依次设置环境变量启动kernel,ramdisk 。所以kernel 启动完成后,会,ramdisk中的init.rc文件会为挂载系统分区创造必要的条件,并关闭启动systemk中的一些服务 。所谓的-2android实际上是启动ramdisk和,用于挂载系统分区 。

    推荐阅读