没有时间细看那么多文章,在此摘录和备忘一些内容:
(有些都是人家三年前的研究了。。落伍啊,部分可能正常方式访问不到,再次和国外落伍了。。)
1 The Android boot process from power on
2 Android Initialization Process
3 Android package installation
4 A quick look inside the Android emulator
5 What is Android?
6 Android - under the hood
7 Android Framework Startup
原创内容如转载请注明:来自 阿权的书房
(有些都是人家三年前的研究了。。落伍啊,部分可能正常方式访问不到,再次和国外落伍了。。)
1 The Android boot process from power on
引用
1. Power on and boot ROM code execution
2. The boot loader
3. The Linux kernel
4. The init process
5. Zygote and Dalvik
6. The system server
7. Boot completed
2. The boot loader
3. The Linux kernel
4. The init process
5. Zygote and Dalvik
6. The system server
7. Boot completed
2 Android Initialization Process
引用
init is the first process after kernel started. The corresponding source code lies in: device/system/init. It does the following tasks step by step:
1. Initialize log system.
2. Parse /init.rc and /init.%hardware%.rc.
3. Execute early-init action in the two files parsed in step 2.
4. Device specific initialize. For example, make all device node in /dev and download firmwares.
5. Initialize property system. Actually the property system is working as a share memory. Logically it looks like a registry under Windows system.
6. Execute init action in the two files parsed in step 2.
7. Start property service.
8. Execute early-boot and boot actions in the two files parsed in step 2.
9. Execute property action in the two files parsed in step 2.
10. Enter into an indefinite loop to wait for device/property set/child process exit events. For example, if an SD card is plugined, init will receive a device add event, so it can make node for the device. Most of the important process is forked in init, so if any of them crashed, init will receive a SIGCHLD then translate it into a child process exit event, so in the loop init can handle the process exit event and execute the commands defined in *.rc(it will run command onrestart).
1. Initialize log system.
2. Parse /init.rc and /init.%hardware%.rc.
3. Execute early-init action in the two files parsed in step 2.
4. Device specific initialize. For example, make all device node in /dev and download firmwares.
5. Initialize property system. Actually the property system is working as a share memory. Logically it looks like a registry under Windows system.
6. Execute init action in the two files parsed in step 2.
7. Start property service.
8. Execute early-boot and boot actions in the two files parsed in step 2.
9. Execute property action in the two files parsed in step 2.
10. Enter into an indefinite loop to wait for device/property set/child process exit events. For example, if an SD card is plugined, init will receive a device add event, so it can make node for the device. Most of the important process is forked in init, so if any of them crashed, init will receive a SIGCHLD then translate it into a child process exit event, so in the loop init can handle the process exit event and execute the commands defined in *.rc(it will run command onrestart).
3 Android package installation
4 A quick look inside the Android emulator
5 What is Android?
6 Android - under the hood
7 Android Framework Startup
原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
参观创新工厂
摘:LINUX系统性能调谐
