【Android 开关机】
你必须十分努力,才能看起来毫不费力
纸上得来终觉浅,绝知此事要躬行
展开
-
Android 6.0 Reboot 流程源代码分析
Shutdown 跟 reboot流程很类似,所以这里以reboot分析:reboot的类型:1、手动长按power键选择reboot;2、adb reboot;3、手动长按power键11s触发reboot;4、BUG_ON(1),触发kernel panic流程reboot;上面1、2的本质上代码跑的是一样的,下面主要分析第1类正常的关键源码流程原创 2016-09-22 21:05:19 · 7734 阅读 · 3 评论 -
Android M 启动源码分析笔记之 - Init 进程
【本文意在更好的解读 init进程到system_server进程的启动过程】一、首先上一张总流程图流程图比较清晰的展示了init到system_server的启动过程和zygote的孵化原理. 接下来分以下几个阶段分析:1、init进程干了什么事情?2、zygote进程是如何启动的?如何成为java world所有进程的父进程?3、一个新app原创 2016-10-06 15:19:23 · 2636 阅读 · 0 评论 -
Android M 启动源码分析笔记之 - Zygote 孵化
【接上一篇的分析】2、zygote到Home程序启动源码分析:首先看服务执行入口函数:/* init进程的main函数服务启动代码段 */int main(int argc, char** argv) {... while (true) { if (!waiting_for_exec) { execute_one_原创 2016-10-08 21:27:05 · 1311 阅读 · 0 评论 -
Android M 启动源码分析笔记之 - App 进程
< 接上一篇: Android M 启动源码分析笔记之 - zygote 分析 > 老规矩,先来一张时序图,一图胜千言 啊~查看大图Here we go!从AMS的startActivity入口开始,时序图【1-3】:@Override public final int startActivity(IAppli原创 2016-10-09 21:40:30 · 1061 阅读 · 0 评论 -
kernel 启动流程之 【设备驱动加载】 学习笔记
先上总流程图,一图胜千言!点击查看大图head.S 初始化完成后跳转到 start_kernel 入口:kernel-3.18/init/main.c:505:asmlinkage __visible void __init start_kernel(void)START => 源码分析:这里要干的事情非常原创 2016-10-21 18:00:10 · 8016 阅读 · 9 评论 -
深入MTK平台bootloader启动之【 lk -> kernel】分析笔记
接上一篇分析: 《深入MTK平台bootloader启动之【 Pre-loader -> Lk】分析笔记》Pre-loader 运行在ISRAM,待完成 DRAM 的初始化后,再将lk载入DRAM中,最后通过特殊sys call手段实现跳转到lk的执行入口,正式进入lk初始化阶段.一、lk执行入口:位于.text.boot 这个section(段),具体定义位置原创 2016-11-05 22:18:23 · 24651 阅读 · 12 评论 -
深入MTK平台bootloader启动之【 Pre-loader -> Lk】分析笔记
1、bootloader到kernel启动总逻辑流程图bootloader 启动分两个阶段,一个是pre-loader加载lk(u-boot)阶段,另一个是lk加载kernel阶段。下面跟着流程图简述下两个阶段的加载流程。1-3:设备上电起来后,跳转到Boot ROM(不是flash)中的boot code中执行把pre-loader加载起到ISRAM, 因为当前DRAM(RAM分原创 2016-11-01 21:17:54 · 29519 阅读 · 5 评论 -
kernel 启动流程之 【head.S】 学习笔记
1、系统引导程序 【参考:kernel-3.18/Documentation/arm/Booting】bootloader 要干的主要事情:找到并初始化内存;初始化和使能一个串口输出,这个对于调试很重要;获取CPU类型,指的是具体体现结构CPU的类型,比如ARM Cortex-x系列;初始化kernel tagged list,向kernel传递系统内存原创 2016-10-21 17:53:49 · 4438 阅读 · 0 评论