本文记录Android系统启动过程,包含从linux kernerl到luancher启动完成的过程:

1、linux内核完成系统设置后,会在系统文件中寻找‘init’文件,然后启动root进程或者说系统的第一个进程;

2、init进程是linux内核完成系统设置之后启动的第一个进程或者说root进程,它也是其他所有进程的父进程,其有两个作用,一个是挂载目录,比如/sys,/dev等,二是运行init.rc脚本或init.xxx.rc脚本;

3、Init.rc脚本是Android自己规定的初始化脚本,上步中的init进程运行.rc脚本来建立几个基本的服务,其中最重要的是ServiceManager和Zygote进程,Zygote进程建立之后才会建立真正的Android运行空间;

4、Zygote进程会fork出一个SystemServer的进程,在该进程中会启动所有的Android服务,如PMS,AMS等;

5、上步中的SystemServer中启动完所有的Android服务后,会调用xxx.systemReady(callback)方法通知各个服务系统已就绪,其中在ActivityManagerService.systemReady()的调用中启动Launcher应用

Android 系统启动过程简单记录的更多相关文章

  1. Android系统启动过程-uBoot+Kernel+Android

    摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链 ...

  2. Android 深入浅出 - Android系统启动过程

    Activity的类继承关系及跟踪Activity的启动 Android系统启动过程 https://study.163.com/course/courseLearn.htm?courseId=213 ...

  3. Android系统启动过程[典☆☆☆]

    Android系统启动过程 首先Android框架架构图:(来自网上,我觉得这张图看起来很清晰) Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用. 启动 ...

  4. Android系统启动过程【转】

    转自:http://www.cnblogs.com/bastard/archive/2012/08/28/2660389.html Android系统启动过程 首先Android框架架构图:(来自网上 ...

  5. Android查看联系人简单记录

    简单实现打印联系人信息,可以作为插入联系人的基础和主要代码块,作为个人记录的小逻辑 package com.lgqrlchinese.contactstest; import android.Mani ...

  6. Android系统启动过程

    首先Android框架架构图: Linux内核启动之后就到Android Init进程,进而启动Android相关的服务和应用. 启动的过程如下图所示:(图片来自网上,后面有地址)   下面将从And ...

  7. Android系统启动过程全解析

    Android系统是一款基于Linux的移动操作系统,那么Android是如何启动起来的呢?本文就详细阐述Android系统的启动过程. 从内核之上,我们首先应该从文件系统的init开始,因为 ini ...

  8. python通过cx_oracle操作数据库过程简单记录

    1.环境配置 环境配置过程中,需要关注软件版本是否一致,主要包括:oracle客户端版本.cx_oracle版本.python版本: 2.操作记录 (1)验证环境是否正常:(无报错即为正常) impo ...

  9. Android 系统启动过程详解

    android 使用 linux 内核,一般运行在 ARM 体系架构上,android 设备启动的过程,应用层之下基本等同于linux, 从应用层第一个程序init开始有所区别,下面开始介绍. ste ...

随机推荐

  1. Python第9天

    迭代器(减少代码量增强可读性)和生成器(只能遍历一次):遵循迭代器协议,就是生成可迭代对象 生产者和消费者模型:可触发生成器运行的方法 直接调用next方法 用系统next+生成器的方法 send y ...

  2. time模块的学习

    time模块不在python35\lib的安装目录下,是因为该模块是用C语言编写,内置到python解释器中.各种时间格式相互转换关系: import time,datetime # print(ti ...

  3. jpa @RepositoryRestResource

    依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr ...

  4. Grafana短信报警实现

    1.阿里云短信服务API2.Jenkins-plugin:Generic Webhook Trigger Plugin 阿里云 下载阿里云短信服务SDK 创建短信服务ACCESS_KEY_ID Gra ...

  5. 【STM32】临界区进入退出宏 OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL()

    宏函数展开为: #define OS_CRITICAL_METHOD 3 #if OS_CRITICAL_METHOD == 3 #define OS_ENTER_CRITICAL() {cpu_sr ...

  6. <Dare To Dream>团队项目用户验收评审

    实验十二 团队作业8—团队项目用户验收评审 任务1:团队作业Beta冲刺 Beta冲刺第一天:http://www.cnblogs.com/Dare-To-Dream/p/9226994.html B ...

  7. unittest模块小结

    这次写的是unittest模块的测试用例,属于自动化的门槛,进去了基本算自动化入了门,测试内容很简单,模拟给url推送用户名.密码测试登录功能 先上代码: #login_test.py import ...

  8. [转] ADO.NET调用存储过程带输出参数或返回值

    CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(), @studentname nvarchar() OUTPUT AS BEGIN S ...

  9. oracle数据库查询语句case的用法

    实现功能: 1.先查询status=2的记录,如果查询到记录则返回第一条记录的Product_Name:2.如果查询不到status=2的记录,则判断status=1的记录是否存在,不存在则返回“请耐 ...

  10. git命令行获取某分支代码

    参考https://www.cnblogs.com/nylcy/p/6569284.html git clone -b branch1 http://xxx.xx.xxx... git clone - ...