Android系统启动流程

1.Android系统启动流程

那么结合本篇以及本系列的前三篇文章,我们就可以得出Android系统启动流程,如下所示。 
1.启动电源以及系统启动 
当电源按下时引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序Bootloader到RAM,然后执行。 
2.引导程序BootLoader 
引导程序BootLoader是在Android操作系统开始运行前的一个小程序,它的主要作用是把系统OS拉起来并运行。 
3.Linux内核启动 
内核启动时,设置缓存、被保护存储器、计划列表、加载驱动。当内核完成系统设置,它首先在系统文件中寻找init.rc文件,并启动init进程。 
4.init进程启动 
初始化和启动属性服务,并且启动Zygote进程。 
5.Zygote进程启动 
创建JavaVM并为JavaVM注册JNI,创建服务端Socket,启动SystemServer进程。 
6.SystemServer进程启动 
启动Binder线程池和SystemServiceManager,并且启动各种系统服务。 
7.Launcher启动 
被SystemServer进程启动的ActivityManagerService会启动Launcher,Launcher启动后会将已安装应用的快捷图标显示到界面上。

结合上面的流程,给出Android系统启动流程图: 

Android系统启动流程

2.开机动画所处的位置

由surfacefinger启动,不由原来init.rc直接启动

https://blog.csdn.net/u010753159/article/details/51325500

3.开机启动prof Log

<< /proc/bootprof >>:
----------------------------------------
0	    BOOT PROF (unit:msec)
----------------------------------------
       663        : preloader
      2718        : lk (Start->Show logo: 744)
----------------------------------------
        27.566153 : ON
       136.795307 :    1-swapper/0       : initcall: arm64_device_init    40.393846ms
       157.571154 :    1-swapper/0       : initcall: param_sysfs_init    16.377846ms
       214.686231 :    1-swapper/0       : initcall: ccci_util_init    40.666308ms
       250.370154 :    1-swapper/0       : initcall: event_trace_init    26.059923ms
       321.267769 :    1-swapper/0       : initcall: populate_rootfs    53.117231ms
       391.744539 :    1-swapper/0       : probe: probe=platform_drv_probe drv=musb-hdrc(ffffff800946b840)    15.519077ms
       391.800308 :    1-swapper/0       : initcall: musb_init    16.094000ms
       425.951539 :    1-swapper/0       : probe: probe=platform_drv_probe drv=mtkfb(ffffff8009476c60)    27.151154ms
       426.249385 :    1-swapper/0       : initcall: mtkfb_init    28.278385ms
       458.749154 :    1-swapper/0       : initcall: modem_cd_init    15.351692ms
      1437.226618 :    1-swapper/0       : probe: probe=spi_drv_probe drv=sunwave-fp(ffffff80094c6cb0)   919.970925ms
      1437.332387 :    1-swapper/0       : initcall: sf_ctl_driver_init   920.152309ms
      2072.525927 :    1-swapper/0       : initcall: mt_spm_init   554.895847ms
      2078.197697 :  196-kworker/3:1     : probe: probe=mmc_bus_probe drv=mmcblk(ffffff80094d4110)   399.728539ms
      3319.500084 :    1-swapper/0       : probe: probe=i2c_device_probe drv=ltr559(ffffff800945c488)  1245.203080ms
      3319.807930 :    1-swapper/0       : initcall: alsps_init  1245.673080ms
      3350.704469 :    1-swapper/0       : probe: probe=i2c_device_probe drv=bmp280(ffffff800945df30)    15.867539ms
      3350.957930 :    1-swapper/0       : initcall: baro_init    16.650692ms
      3915.435163 :   53-kworker/u8:1    : probe: probe=i2c_device_probe drv=ft6x06_new(ffffff80094c6600)   535.894924ms
      3917.398009 :   53-kworker/u8:1    : probe: probe=platform_drv_probe drv=mtk-tpd(ffffff80094ba558)   539.099848ms
      3920.459163 :    1-swapper/0       : initcall: mtk_charger_init   544.432924ms
      3957.744240 :    1-swapper/0       : initcall: clk_debug_init    33.908846ms
      3961.032009 :    1-swapper/0       : Kernel_init_done
      5452.606166 :    1-init            : INIT:early-init
      6364.176707 :    1-init            : INIT:late-init
      6364.781168 :    1-init            : INIT:Mount_START
      8351.221558 :    1-init            : INIT:Mount_END
      8387.175404 :    1-init            : start teei_daemon (on fs)
      8390.148789 :    1-init            : start teei_daemon end (on fs)
      8492.065097 :  327-teei_daemon     : TEEI WorkQueue Created
      8492.109789 :  327-teei_daemon     : TEEI VFS Buffer Created
      8502.009635 :    1-init            : INIT:post-fs
      8856.556790 :    1-init            : INIT:post-fs-data
      8921.187328 :    1-init            : post-fs-data: on modem start
      8942.711021 :    1-init            : start teei cfg (on post-fs-data)
      8955.818867 :    1-init            : start teei cfg end (on post-fs-data)
      9452.177637 :  327-teei_daemon     : TEEI BOOT Stage1 Completed
      9453.333791 :  327-teei_daemon     : TEEI BOOT CMD Buffer Created
      9725.352330 :    1-init            : INIT:boot
      9918.550177 :    1-init            : USB ready
      9970.120639 :  390-vold            : vold:cryptfs_enable_internal:START
      9971.605869 :  370-ccci_mdinit     : ccci_md3: md_init srv start
      9986.179639 :    1-init            : INIT:vold.decrypt=trigger_shutdown_framework
     10047.415870 :  368-ccci_mdinit     : ccci_md1: md_init srv start
     10052.268100 :  368-ccci_mdinit     : ccci_md1: init
     10190.896408 :  327-teei_daemon     : TEEI BOOT Stage2 Completed
     10193.688870 :  327-teei_daemon     : TEEI BOOT Service1 Inited
     10193.742101 :  327-teei_daemon     : TEEI BOOT Keymaster Unlocked
     10284.522485 :    1-init            : INIT:vold.decrypt=trigger_post_fs_data
     10495.396024 :    1-init            : INIT:post-fs-data
     10547.657563 :    1-init            : post-fs-data: on modem start
     10567.273871 :    1-init            : start teei cfg (on post-fs-data)
     10584.649948 :    1-init            : start teei cfg end (on post-fs-data)
     10939.487333 :  426-SurfaceFlinger: : BOOT_Animation:START
     12562.424722 :  390-vold            : vold:encrypt_master_key:START
     12562.657106 :  390-vold            : vold:keymaster_create_key:START
     15747.409345 :  390-vold            : vold:keymaster_create_key:END
     15747.498960 :  390-vold            : vold:scrypt_keymaster:START
     17311.102733 :  390-vold            : vold:scrypt_keymaster:END
     17960.590581 :  390-vold            : vold:encrypt_master_key:END
     17965.918965 :  390-vold            : vold:decrypt_master_key:START
     17966.003888 :  390-vold            : vold:scrypt_keymaster:START
     19513.749584 :  390-vold            : vold:scrypt_keymaster:END
     19513.848431 :  390-vold            : vold:decrypt_master_key:END
     19518.434046 :  390-vold            : vold:cryptfs_enable_inplace:START
     26403.858447 :  390-vold            : vold:cryptfs_enable_inplace:END
     26488.997370 :  390-vold            : vold:decrypt_master_key:START
     26489.086601 :  390-vold            : vold:scrypt_keymaster:START
     28037.866835 :  390-vold            : vold:scrypt_keymaster:END
     28037.964759 :  390-vold            : vold:decrypt_master_key:END
     28695.554837 :  390-vold            : vold:cryptfs_restart_internal:START
     28699.209760 :    1-init            : INIT:vold.decrypt=trigger_reset_main
     30837.402304 :    1-init            : INIT:vold.decrypt=trigger_post_fs_data
     31043.468458 :    1-init            : INIT:post-fs-data
     31107.979535 :    1-init            : post-fs-data: on modem start
     31125.586535 :  327-teei_daemon     : TEEI BOOT Decrypt Unlocked
     31125.755920 :  327-teei_daemon     : TEEI BOOT Service2 Inited
     31159.208304 :    1-init            : start teei cfg (on post-fs-data)
     31183.158074 :    1-init            : start teei cfg end (on post-fs-data)
     31519.435459 :  327-teei_daemon     : TEEI BOOT Load TEES Completed
     31519.478690 :  327-teei_daemon     : TEEI BOOT All Completed
     31519.490536 :  327-teei_daemon     : TEEI_BOOT_OK
     31702.189844 :    1-init            : INIT:vold.decrypt=trigger_restart_framework
     32116.520307 :  390-vold            : vold:cryptfs_restart_internal:END
     32116.635461 :  390-vold            : vold:cryptfs_enable_internal:END, ret=0
     32321.755461 :  482-zygote64        : boot_progress_start
     33617.325926 :  368-ccci_mdinit     : ccci_md1: decpyt ready
     33619.063387 :  368-ccci_mdinit     : ccci_md1: reset
     33785.535388 :  368-ccci_mdinit     : ccci_md1: bootup
     38359.421014 :  482-main            : Zygote:Preload Start
     38677.507169 :  483-main            : Zygote:Preload End
     38849.372554 :  368-ccci_mdinit     : ccci_md1: ready
     40348.881865 :  482-main            : Zygote:Preload 4715 classes in 1800ms
     40536.839250 :  482-main            : Zygote:Preload 64 obtain resources in 186ms
     40571.867404 :  482-main            : Zygote:Preload 41 resources in 34ms
     41065.418020 :  482-main            : Zygote:Preload End
     41530.037329 : 1102-system_server   : Android:SysServerInit_START
     43077.210794 : 1102-system_server   : Android:PackageManagerService_Start
     43140.914102 : 1102-system_server   : Android:PMS_scan_START
     43143.757948 : 1102-system_server   : Android:PMS_scan_data:/vendor/overlay
     43221.506410 : 1102-system_server   : Android:PMS_scan_data:/system/framework
     43601.665719 : 1102-system_server   : Android:PMS_scan_data:/vendor/framework
     43611.346642 : 1102-system_server   : Android:PMS_scan_data:/system/priv-app
     46889.737573 : 1102-system_server   : Android:PMS_scan_data:/system/app
     52653.427356 : 1102-system_server   : Android:PMS_scan_data:/vendor/app
     52866.959587 : 1102-system_server   : Android:PMS_scan_data:/system/presetapp
    109655.541030 : 1102-system_server   : Android:PMS_scan_END
    109726.110492 : 1102-system_server   : PMS:reconcileAppsDataLI
    111146.830341 : 1102-system_server   : Android:PMS_READY
    114003.500964 :  483-main            : Zygote:Preload 4715 classes in 2157ms
    114256.658041 : 1102-system_server   : PMS:performDexOpt:com.mediatek.ims
    114289.513810 :  483-main            : Zygote:Preload 64 obtain resources in 284ms
    114331.412503 :  483-main            : Zygote:Preload 41 resources in 41ms
    114863.786812 : 1220-QkSp_performDex : PMS:performDexOpt:com.mediatek.ims
    116049.856276 : 1102-system_server   : PMS:performDexOpt:com.android.providers.settings
    116052.011276 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.providers.settings
    116056.421122 : 1102-system_server   : PMS:performDexOpt:com.android.inputdevices
    116063.351584 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.inputdevices
    116070.269276 : 1102-system_server   : PMS:performDexOpt:com.android.server.telecom
    116073.287968 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.server.telecom
    116088.447892 : 1102-system_server   : PMS:performDexOpt:com.android.inputmethod.latin
    116091.869353 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.inputmethod.latin
    116157.704661 : 1102-system_server   : PMS:performDexOpt:com.android.settings
    116160.647507 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.settings
    116184.234661 : 1102-system_server   : PMS:performDexOpt:com.qiku.android.configcenter
    116186.145507 : 1220-QkSp_performDex : PMS:performDexOpt:com.qiku.android.configcenter
    116200.713969 : 1102-system_server   : PMS:performDexOpt:com.android.phone
    116203.190507 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.phone
    116283.789431 : 1102-system_server   : PMS:performDexOpt:com.android.location.fused
    116292.689892 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.location.fused
    116306.726123 : 1102-system_server   : PMS:performDexOpt:com.android.systemui
    116357.545969 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.systemui
    116375.392431 : 1102-system_server   : PMS:performDexOpt:com.android.providers.media
    116385.881277 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.providers.media
    116393.848892 : 1102-system_server   : PMS:performDexOpt:com.mediatek.location.lppe.main
    116398.186815 : 1220-QkSp_performDex : PMS:performDexOpt:com.mediatek.location.lppe.main
    117048.866355 : 1102-system_server   : PMS:performDexOpt:com.android.providers.downloads
    117052.288817 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.providers.downloads
    117085.277355 : 1102-system_server   : PMS:performDexOpt:com.android.core.patchsystem
    117087.844048 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.core.patchsystem
    117095.659509 : 1102-system_server   : PMS:performDexOpt:com.qiku.android.safe
    117098.175356 : 1220-QkSp_performDex : PMS:performDexOpt:com.qiku.android.safe
    117108.529509 : 1102-system_server   : PMS:performDexOpt:com.mediatek.bluetooth.dtt
    117111.240817 : 1220-QkSp_performDex : PMS:performDexOpt:com.mediatek.bluetooth.dtt
    117120.790433 : 1102-system_server   : PMS:performDexOpt:com.qiku.android.contacts
    117123.440356 : 1220-QkSp_performDex : PMS:performDexOpt:com.qiku.android.contacts
    117132.767817 : 1102-system_server   : PMS:performDexOpt:com.mediatek.providers.drm
    117136.583202 : 1220-QkSp_performDex : PMS:performDexOpt:com.mediatek.providers.drm
    117142.697509 : 1102-system_server   : PMS:performDexOpt:com.mediatek.batterywarning
    117144.452356 : 1220-QkSp_performDex : PMS:performDexOpt:com.mediatek.batterywarning
    117185.831817 : 1102-system_server   : PMS:performDexOpt:com.android.printspooler
    117187.882740 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.printspooler
    117195.702894 : 1102-system_server   : PMS:performDexOpt:com.android.sc
    117198.046279 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.sc
    117208.492587 : 1102-system_server   : PMS:performDexOpt:com.qiku.android.calendar
    117210.520279 : 1220-QkSp_performDex : PMS:performDexOpt:com.qiku.android.calendar
    117220.131817 : 1102-system_server   : PMS:performDexOpt:com.qiku.android.launcher3
    117223.655356 : 1220-QkSp_performDex : PMS:performDexOpt:com.qiku.android.launcher3
    117233.032433 : 1102-system_server   : PMS:performDexOpt:com.mediatek.duraspeed
    117235.186740 : 1220-QkSp_performDex : PMS:performDexOpt:com.mediatek.duraspeed
    117246.485279 : 1102-system_server   : PMS:performDexOpt:com.android.keychain
    117249.713664 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.keychain
    117297.598433 : 1102-system_server   : PMS:performDexOpt:com.qiku.cardmanager2
    117299.536048 : 1220-QkSp_performDex : PMS:performDexOpt:com.qiku.cardmanager2
    117312.726818 : 1102-system_server   : PMS:performDexOpt:com.android.osfota
    117315.795048 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.osfota
    117323.138895 : 1102-system_server   : PMS:performDexOpt:com.mediatek.thermalmanager
    117325.636664 : 1220-QkSp_performDex : PMS:performDexOpt:com.mediatek.thermalmanager
    117668.021511 : 1102-system_server   : PMS:performDexOpt:com.mtk.telephony
    117670.370665 : 1220-QkSp_performDex : PMS:performDexOpt:com.mtk.telephony
    118040.469589 : 1102-system_server   : PMS:performDexOpt:com.mediatek.mdmconfig
    118042.794819 : 1220-QkSp_performDex : PMS:performDexOpt:com.mediatek.mdmconfig
    118084.169896 : 1102-system_server   : PMS:performDexOpt:com.android.wallpaperbackup
    118087.126204 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.wallpaperbackup
    118092.179512 : 1102-system_server   : PMS:performDexOpt:com.android.bluetooth
    118094.256512 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.bluetooth
    118103.959358 : 1102-system_server   : PMS:performDexOpt:com.android.providers.contacts
    118105.985358 : 1220-QkSp_performDex : PMS:performDexOpt:com.android.providers.contacts
    121384.339750 : 1102-system_server   : AMS:systemReady
    122448.832830 : 1102-system_server   : AMS:AMS_READY
    122579.516061 : 1102-system_server   : AP_Init:[service]:[com.android.inputmethod.latin]:[com.android.inputmethod.latin/.LatinIME]:pid:1277
    122719.523907 : 1102-system_server   : AP_Init:[service]:[com.android.systemui]:[com.android.systemui/.SystemUIService]:pid:1295:(PersistAP)
    122876.061677 : 1116-system-server-i : AP_Init:[]:[WebViewLoader-armeabi-v7a]:pid:1309
    122913.863677 : 1116-system-server-i : AP_Init:[]:[WebViewLoader-arm64-v8a]:pid:1314
    123057.271985 : 1102-system_server   : SystemServer:NetworkStatsService systemReady
    123279.157293 : 1102-system_server   : SystemServer:ConnectivityService systemReady
    123379.702217 : 1102-system_server   : SystemServer:NetworkPolicyManagerServ systemReady
    123814.363448 : 1102-system_server   : SystemServer:PhaseThirdPartyAppsCanStart
    123848.021064 : 1102-system_server   : AP_Init:[added application]:[com.mediatek.ims]:[com.mediatek.ims]:pid:1369:(PersistAP)
    123883.222372 : 1102-system_server   : AP_Init:[added application]:[com.android.phone]:[com.android.phone]:pid:1374:(PersistAP)
    123969.667064 : 1102-system_server   : AP_Init:[activity]:[com.android.settings:CryptKeeper]:[com.android.settings/.CryptKeeper]:pid:1397
    124048.761141 : 1102-system_server   : Android:SysServerInit_END
    124375.909604 : 1221-Binder:1102_3   : AP_Init:[activity]:[com.android.settings]:[com.android.settings/.FallbackHome]:pid:1431
    125106.392990 : 1118-ActivityManager : AMS:ENABLE_SCREEN
    125112.070605 : 1127-android.display : AP_Launch: com.android.settings/.FallbackHome 757ms
    130481.581849 :  399-Binder:375_1    : BOOT_Animation:END
    130481.626464 : OFF
----------------------------------------
================ END of FILE ===============

 

ams.ready之后,会调用startHome,fallback启动之后,会调用到activityidle,然后到enalbescreen,最后调用到wms.enablescreen.wms等 keyguard statusbar  navigationbar  wallpaper绘制完后,退出开机动画,发送boot_complete广播,然后unlockuser会走finish,然后发送unlockuser广播,fallback收到unlock广播就会重新启动launcher,此时launcher就启动了

 

上一篇:django项目开发部署完整案例【最终效果展示】【源码】【simpleui】【增删改查】


下一篇:ADO.NET 帮助类 参数传递 存储过程 分页