http://blog.csdn.net/luoshengyang/article/details/6768304
简要整理:
linux-->init
|
native服务zygote(init.rc中定义的service,代码:app_main.cpp //步骤1)
|
{AppRuntime.start(),AndroidRuntime.start()}
|
{通过jni调用Java函数ZygoteInit.java.main(),startVM(),RegJNI}
|
{startSystemServer(), 为zygote服务建立伺服socket}
| |
{RuntimeInit.java.zygoteInit(), 无限循环等待来自ActivityManagerService的请求并通知zygote服务为应用程序fork进程(逻辑流程回到步骤1)}
|
初始化binder,调用 SystemServer.java.main()
|
SystemServer.init1()
|
JIN:com_android_server_SystemServer.cpp ---> 启动native服务{SurfaceFlinger,AudioFlinger,Sensor,MediaPlayer,Camera,AudioPolicy}
|
调用libsystem_server库函数system_init(),代码:system_init.cpp
|
SystemServer.init2()
|
ServerThread.start()--->启动java服务{ActivityManager,Lights,SensorPower,Connectivity,Package,WindowManager,Bluetooth...}
分享到:
相关推荐
"Android系统进程Zygote启动过程的源代码分析" 在 Android 系统中,所有的应用程序进程以及系统服务进程SystemServer都是由 Zygote 进程孕育(fork )出来的,这也许就是为什么要把它称为Zygote (受精卵)的原因吧...
(Android系统进程Zygote启动过程的源代码分析UML,Android系统默认Home应用程序(Launcher)的启动过程源代码分析uml,Android系统在新进程中启动自定义服务过程(startService)的原理分析UML,Android应用程序...
在内容上,《Android系统源代码情景分析(含CD光盘1张)》结合使用情景,全面、深入、细致地分析了Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层...
《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 ...
本文主要聚焦于Android应用程序的启动过程,特别是通过源代码分析来深入理解这一过程。我们将以点击手机屏幕上的应用程序图标启动MainActivity为例,来详细解析这一过程。 首先,启动过程始于用户点击Launcher...
Android启动,第二大阶段,Zygote启动。...紧接上一篇《 Android启动-init介绍》Linux内核启动之后,执行第一个进程 Init,init会启动本地服务,创建Zygote等。 这里我们就来研究一下Zygote启动过程。
《Android系统源代码分析》是由李俊编著的一本深入探讨Android操作系统的书籍,主要针对对Android内核、系统架构以及应用程序开发有浓厚兴趣的读者。这本书提供了对Android系统源代码的详尽解析,帮助读者理解...
本资源"Android系统源代码情景分析-源码"旨在帮助开发者深入理解Android的工作原理,通过源码级别的学习,提升开发和调试能力。 一、Android系统架构 Android系统主要分为以下几个层次: 1. **Linux内核**:作为...
《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 1.3.1 下载...
在Android操作系统中,Zygote进程是整个系统的核心部分,它是所有Android应用程序进程的始祖。Zygote的启动流程非常关键,因为它涉及到系统资源的初始化、Dalvik或ART虚拟机的预加载以及核心库的加载等。让我们深入...
通过对zygote启动过程的分析,我们可以看到zygote进程在Android系统中扮演着非常重要的角色。通过高效的启动机制和进程复用技术,zygote显著提高了应用程序的启动速度,同时降低了系统的资源消耗。理解zygote的工作...
接下来,我们将依据Android 6.0版本的源码来详细分析Zygote进程的启动流程。 #### 主要步骤解析 ##### 1. 初始化阶段 初始化阶段主要是进行环境配置,设置参数等准备工作。这部分工作主要通过`ZygoteInit#main()`...
其中,init 进程是 Android 系统启动的关键过程,负责初始化系统环境、挂载文件系统、启动系统服务等。 init 启动流程 init 进程的启动过程主要包括以下几个步骤:kernel 启动 init 进程、init 进程解析配置文件、...
Android系统源代码情景分析光盘资料 目录 第1篇初识Android系统 第1章 准备知识................................................................ 2 1.1 Linux内核参考书籍......................................
9. **系统启动流程**:从bootloader到Zygote的启动,再到System Server的运行,整个启动过程的源代码分析对理解Android的生命周期至关重要。 10. **设备驱动开发**:如何编写和集成设备驱动,以及如何调试和优化,...
总结来说,Android开机启动源代码的研究涵盖了Bootloader、Kernel、Init进程、Service启动、HAL初始化等多个方面,理解这一过程对于Android开发者而言至关重要,有助于优化系统性能、调试问题以及实现自定义功能。...
他首先从Android系统的启动流程入手,解释了Zygote进程的孵化过程,以及系统服务如何启动和管理。 书中的重点之一是Android的Dalvik和ART(Android Runtime)运行时环境。这部分内容涵盖了类加载机制、垃圾回收算法...
5. **系统启动流程**:源代码中包含了Android系统的启动过程,包括Zygote进程的孵化、System Server的初始化等,这对于理解系统启动时间和性能优化有重要价值。 6. **硬件抽象层(HAL)**:Android通过HAL将硬件...
在Android系统的启动过程中,从Linux内核加载完成后,系统将执行第一个用户空间进程——`init`进程,它作为后续所有进程的父进程。`init`进程负责启动一系列的服务和进程,最终启动`system_server`进程,后者则是...