zoukankan      html  css  js  c++  java
  • Android启动过程

    1、背景知识                                                         

    Init进程是Linux环境下非常重要的一个进程,而Zygote进程是Java环境下的第一个进程,所有其他环境下的进程都是由Zygote进程来进行fork的,而init进程在启动Zygote进程之后,初始化Zygote进程之前,会先进行Android Runtime的启动和环境建立。

    Init进程主要负责文件系统的挂载,属性的初始化,各种配置的加载启动以及Action触发,Service的启动。Zygote作为Java环境下的服务进程,也在Init.rc中进行了配置,而init进程是由main函数进行触发。

    2、Android运行时的启动分析                                

    首先创建一个AppRuntime对象,接着调用它的start方法,而此start方法在父类AndroidRuntime中进行了定义,并且此处的参数为com.android.internal.os.ZygoteInit。

    在系统建立androidRuntime的时候,创建Java虚拟机,并将系统中一些JNI函数注册到Java虚拟机中,此后只需要通过JNI就可以调用这些Native方法。

    3、Android的启动过程                                         

    启动电源,加载引导程序到RAM;

    BootLoader引导;

    Linux Kernel启动;

    Init进程创建;

    Init fork出Zygote进程,Zygote进程创建虚拟机;创建系统服务;

    Android Home Launcher 启动。

  • 相关阅读:
    js语言结构小记(一)
    jquery插件:fancybox
    转载(深刻地了解到了js数组是引用类型)
    sqlite 页面结构分析
    有限状态机(FSM)的设计与实现(二)
    sqlite源码中的一个潜在Bug
    一种整数数据压缩存储的算法实现
    构建自己的内存池(一)
    sqlite Btree结构分析
    构建自己的内存池(二)
  • 原文地址:https://www.cnblogs.com/fankongkong/p/7514356.html
Copyright © 2011-2022 走看看