`
月下独酌
  • 浏览: 130855 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

[CSDN]Android系统进程Zygote启动过程的源代码分析

 
阅读更多
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启动过程的源代码分析.pdf

    "Android系统进程Zygote启动过程的源代码分析" 在 Android 系统中,所有的应用程序进程以及系统服务进程SystemServer都是由 Zygote 进程孕育(fork )出来的,这也许就是为什么要把它称为Zygote (受精卵)的原因吧...

    老罗的android之旅时序图

    (Android系统进程Zygote启动过程的源代码分析UML,Android系统默认Home应用程序(Launcher)的启动过程源代码分析uml,Android系统在新进程中启动自定义服务过程(startService)的原理分析UML,Android应用程序...

    Android系统源代码情景分析 / 罗升阳著

    在内容上,《Android系统源代码情景分析(含CD光盘1张)》结合使用情景,全面、深入、细致地分析了Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层...

    《Android系统源代码情景分析》

    《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 ...

    Android应用程序启动过程源代码分析

    本文主要聚焦于Android应用程序的启动过程,特别是通过源代码分析来深入理解这一过程。我们将以点击手机屏幕上的应用程序图标启动MainActivity为例,来详细解析这一过程。 首先,启动过程始于用户点击Launcher...

    Android启动-Zygote启动介绍

    Android启动,第二大阶段,Zygote启动。...紧接上一篇《 Android启动-init介绍》Linux内核启动之后,执行第一个进程 Init,init会启动本地服务,创建Zygote等。 这里我们就来研究一下Zygote启动过程。

    Android系统源代码分析.pdf

    《Android系统源代码分析》是由李俊编著的一本深入探讨Android操作系统的书籍,主要针对对Android内核、系统架构以及应用程序开发有浓厚兴趣的读者。这本书提供了对Android系统源代码的详尽解析,帮助读者理解...

    Android系统源代码情景分析-源码

    本资源"Android系统源代码情景分析-源码"旨在帮助开发者深入理解Android的工作原理,通过源码级别的学习,提升开发和调试能力。 一、Android系统架构 Android系统主要分为以下几个层次: 1. **Linux内核**:作为...

    Android系统源代码情景分析-罗升阳-源码

    《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 1.3.1 下载...

    模拟Android系统Zygote启动流程

    在Android操作系统中,Zygote进程是整个系统的核心部分,它是所有Android应用程序进程的始祖。Zygote的启动流程非常关键,因为它涉及到系统资源的初始化、Dalvik或ART虚拟机的预加载以及核心库的加载等。让我们深入...

    zygote启动过程

    通过对zygote启动过程的分析,我们可以看到zygote进程在Android系统中扮演着非常重要的角色。通过高效的启动机制和进程复用技术,zygote显著提高了应用程序的启动速度,同时降低了系统的资源消耗。理解zygote的工作...

    Android Zygote启动流程源码解析

    接下来,我们将依据Android 6.0版本的源码来详细分析Zygote进程的启动流程。 #### 主要步骤解析 ##### 1. 初始化阶段 初始化阶段主要是进行环境配置,设置参数等准备工作。这部分工作主要通过`ZygoteInit#main()`...

    展锐Android11.0开机启动流程介绍V1.0-nowatermark

    其中,init 进程是 Android 系统启动的关键过程,负责初始化系统环境、挂载文件系统、启动系统服务等。 init 启动流程 init 进程的启动过程主要包括以下几个步骤:kernel 启动 init 进程、init 进程解析配置文件、...

    Android系统源代码情景分析光盘

    Android系统源代码情景分析光盘资料 目录 第1篇初识Android系统 第1章 准备知识................................................................ 2 1.1 Linux内核参考书籍......................................

    Android系统源代码情景分析 [罗升阳著]

    9. **系统启动流程**:从bootloader到Zygote的启动,再到System Server的运行,整个启动过程的源代码分析对理解Android的生命周期至关重要。 10. **设备驱动开发**:如何编写和集成设备驱动,以及如何调试和优化,...

    android 开机启动源代码

    总结来说,Android开机启动源代码的研究涵盖了Bootloader、Kernel、Init进程、Service启动、HAL初始化等多个方面,理解这一过程对于Android开发者而言至关重要,有助于优化系统性能、调试问题以及实现自定义功能。...

    罗升阳-Android系统源代码情景分析

    他首先从Android系统的启动流程入手,解释了Zygote进程的孵化过程,以及系统服务如何启动和管理。 书中的重点之一是Android的Dalvik和ART(Android Runtime)运行时环境。这部分内容涵盖了类加载机制、垃圾回收算法...

    Android系统自带项目源代码

    5. **系统启动流程**:源代码中包含了Android系统的启动过程,包括Zygote进程的孵化、System Server的初始化等,这对于理解系统启动时间和性能优化有重要价值。 6. **硬件抽象层(HAL)**:Android通过HAL将硬件...

    android系统从init进程开始到systemserver启动详细流程

    在Android系统的启动过程中,从Linux内核加载完成后,系统将执行第一个用户空间进程——`init`进程,它作为后续所有进程的父进程。`init`进程负责启动一系列的服务和进程,最终启动`system_server`进程,后者则是...

Global site tag (gtag.js) - Google Analytics