本文转载自:http://blog.csdn.net/yangwen123/article/details/8023654

一般开机过程大致可以分为三个大阶段:

1. OS级别,由bootloader载入Linux kernel后,kernel开始初始化, 并载入built-in的驱动程序。Kernel完成开机后,载入init process,切换至user-space后,结束kernel 的循序过程(sequence),进入排程模式(process scheduling)。

2. Android-level,由init process 开始,读取init.rc,Native服务启动,并启动重要的外部程序,例如:servicemanager、Zygote以及System Server。

3. Zygote-Mode,Zygote启动完System Server后,进入Zygote Mode,在Socket 等候命令。随后,使用者将看到一个桌面环境(Home Screen)。桌面环境由一个名为Launcher的应用程序负责提供。

注:Zygote主要负责启动System server和执行android程序(APK)。成功启动System server后会使用socket方式监听(monitorandroid apps/prcesses)

查看init.rc文件显示,系统首先启动servicemanager,然后启动zygote:

  1. service ueventd /sbin/ueventd
  2. class core
  3. critical
  4. service console /system/bin/sh
  5. class core
  6. console
  7. disabled
  8. user shell
  9. group log
  10. service adbd /sbin/adbd
  11. class core
  12. disabled
  13. service servicemanager /system/bin/servicemanager
  14. class core
  15. user system
  16. group system
  17. critical
  18. onrestart restart zygote
  19. onrestart restart media
  20. onrestart restart surfaceflinger
  21. onrestart restart drm
  22. service vold /system/bin/vold
  23. class core
  24. socket vold stream 0660 root mount
  25. ioprio be 2
  26. service netd /system/bin/netd
  27. class main
  28. socket netd stream 0660 root system
  29. socket dnsproxyd stream 0660 root inet
  30. socket mdns stream 0660 root system
  31. service debuggerd /system/bin/debuggerd
  32. class main
  33. service surfaceflinger /system/bin/surfaceflinger
  34. class main
  35. user system
  36. group graphics
  37. onrestart restart zygote
  38. service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
  39. class main
  40. socket zygote stream 660 root system
  41. onrestart write /sys/android_power/request_state wake
  42. onrestart write /sys/power/state on
  43. onrestart restart media
  44. onrestart restart netd
  45. service drm /system/bin/drmserver
  46. class main
  47. user drm
  48. group drm system inet drmrpc sdcard_r
  49. service media /system/bin/mediaserver
  50. class main
  51. user media
  52. group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc system
  53. ioprio rt 4
  54. service bootanim /system/bin/bootanimation
  55. class main
  56. user graphics
  57. group graphics
  58. disabled
  59. oneshot
  60. service dbus /system/bin/dbus-daemon --system --nofork
  61. class main
  62. socket dbus stream 660 bluetooth bluetooth
  63. user bluetooth
  64. group bluetooth net_bt_admin
  65. service bluetoothd /system/bin/bluetoothd -n
  66. class main
  67. socket bluetooth stream 660 bluetooth bluetooth
  68. socket dbus_bluetooth stream 660 bluetooth bluetooth
  69. # init.rc does not yet support applying capabilities, so run as root and
  70. # let bluetoothd drop uid to bluetooth with the right linux capabilities
  71. group bluetooth net_bt_admin misc
  72. disabled
  73. service installd /system/bin/installd
  74. class main
  75. socket installd stream 600 system system
  76. service flash_recovery /system/etc/install-recovery.sh
  77. class main
  78. oneshot
  79. service racoon /system/bin/racoon
  80. class main
  81. socket racoon stream 600 system system
  82. # IKE uses UDP port 500. Racoon will setuid to vpn after binding the port.
  83. group vpn net_admin inet
  84. disabled
  85. oneshot
  86. service mtpd /system/bin/mtpd
  87. class main
  88. socket mtpd stream 600 system system
  89. user vpn
  90. group vpn net_admin inet net_raw
  91. disabled
  92. oneshot
  93. service keystore /system/bin/keystore /data/misc/keystore
  94. class main
  95. user keystore
  96. group keystore drmrpc
  97. socket keystore stream 666
  98. service dumpstate /system/bin/dumpstate -s
  99. class main
  100. socket dumpstate stream 0660 shell log
  101. disabled
  102. oneshot
  103. service sshd /system/bin/start-ssh
  104. class main
  105. disabled
  106. service mdnsd /system/bin/mdnsd
  107. class main
  108. user mdnsr
  109. group inet net_raw
  110. socket mdnsd stream 0660 mdnsr inet
  111. disabled
  112. oneshot
  113. service vtserver /system/bin/vtserver
  114. user root
  115. disabled
  116. oneshot

Android 启动过程介绍【转】的更多相关文章

  1. Android启动过程介绍

    开机过程大致可以分为以下三个阶段 OS级别 由bootloader载入linux kernel后,kernel开始初始化, 并载入built-in的驱动程序.Kernel完成开机后,载入init pr ...

  2. Android(java)学习笔记162:Android启动过程(转载)

    转载路径为: http://blog.jobbole.com/67931/ 1. 关于Android启动过程的问题: 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样 ...

  3. Android启动过程深入解析

    本文由 伯乐在线 - 云海之巅 翻译.未经许可,禁止转载!英文出处:kpbird.欢迎加入翻译小组. 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样的? 什么是Li ...

  4. Android启动过程深入解析【转】

    转自:http://www.open-open.com/lib/view/open1403250347934.html 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么 ...

  5. Android(java)学习笔记105:Android启动过程(转载)

    转载路径为: http://blog.jobbole.com/67931/ 1. 关于Android启动过程的问题: 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样 ...

  6. Android 核心分析 之八Android 启动过程详解

    Android 启动过程详解 Android从Linux系统启动有4个步骤: (1) init进程启动 (2) Native服务启动 (3) System Server,Android服务启动 (4) ...

  7. Android启动过程以及各个镜像的关系

    Android启动过程 Android在启动的时候,会由UBOOT传入一个init参数,这个init参数指定了开机的时候第一个运行的程序,默认就是init程序,这个程序在ramdisk.img中.可以 ...

  8. Android4.4 以太网和DHCP启动过程介绍

    转自:http://blog.csdn.net/wlwl0071986/article/details/51451843 Android4.4已经加入了以太网的支持.现在对以太网的初始化流程.网络策略 ...

  9. Android 启动过程的底层实现

    转载请标明出处:  http://blog.csdn.net/yujun411522/article/details/46367787 本文出自:[yujun411522的博客] 3.1 androi ...

随机推荐

  1. Careercup | Chapter 6

    6.2 There is an 8x8 chess board in which two diagonally opposite corners have been cut off. You are ...

  2. lms111,rplidar 方向和起始角

    上图中,从X反方向是开始,按顺时针方向增加,实际运转方向也为顺时针方向. lms111:正放时:数据按逆时针依次输出.(起始----->结束) 北阳:正放时:数据按逆时针依次输出

  3. Codeforces Gym 100203I I WIN 最大流

    原题链接:http://codeforces.com/gym/100203/attachments/download/1702/statements.pdf 题解 首先寻找每个I,然后枚举形状,如果匹 ...

  4. luogu P1018 乘积最大

    题目描述 今年是国际数学联盟确定的"2000――世界数学年",又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一 ...

  5. Cef应用程序结构

    Application Structure 应用程序结构 Every CEF3 application has the same general structure. Provide an entry ...

  6. IDEA查看源码时提示:Library source does not match the bytecode for class的问题分析

    通过Maven查看依赖的源码时,通常是Maven自动下载JAR包附属的source包,但是会出现一个问题,由于使用lombok插件会造成编写的Java文件和编译后的class上有差别,所以IDEA打开 ...

  7. AndroidStudio怎样导入jar包

    来自:http://jingyan.baidu.com/article/e6c8503c7190b7e54f1a1893.html AndroidStudio用于开发安卓Apk非常地方便,但是它的很多 ...

  8. Mybatis原理分析一 从JDBC到Mybaits

    1.引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2 ...

  9. 记一次痛苦的ubuntu配置Go环境 -- Ubuntu & Go

    下载Go一定到: https://golang.org/dl/  这里, 其他的都不好使. 还有go不一定跟32位和64有关, 还和CPU架构有关, 不知道架构一个一个试, 亦可以看我的关于查看Ubu ...

  10. win7阻止iis开机启动

    https://zhidao.baidu.com/question/111234812.html 1.在"开始/运行/" 输入"services.msc" 启动 ...