【Android源码 栏目提醒】:网学会员鉴于大家对Android源码 十分关注,论文会员在此为大家搜集整理了“Android系统的开机画面显示过程分析 - 老罗的Android之旅 - 博客频道 - CSDN - 其它资料”一文,供大家参考学习
CSDN首页 资讯 论坛 博客 下载 搜索 更多 您还未登录! 登录 注册 帮助 老罗的
Android之旅 爱生活,爱
Android 目录视图 摘要视图 订阅 个人资料 公告CSDN论坛重写,将于9月正式上线 SDCC软件开发者大会:编程马拉松团队火热招募中 用开源IaaS构建自己的云——OpenStack征稿启事 5折限时抢购移动开发者大会门票!
Android系统的开机画面显示过程分析 分类:
Android 2012-07-09 00:56 3137人阅读 评论66 收藏 举报 好几个月都没有更新过博客了,从今天开始,老罗将尝试对
Android系统的UI实现作一个系统的分析,也算 是落实之前所作出的承诺。
提到
Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面 了。
Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段。
本文将 Luoshengyang 详细分析这三个开机画面的显示过程,以便可以开启我们对
Android系统UI实现的分析之路。
第一个开机画面是在内核启动的过程中出现的,它是一个静态的画面。
第二个开机画面是在init进程启动的过 程中出现的,它也是一个静态的画面。
第三个开机画面是在系统服务启动的过程中出现的,它是一个动态的画 面。
无论是哪一个画面,它们都是在一个称为帧缓冲区(frame buffer,简称fb)的硬件设备上进行渲染的。
接下 来,我们就分别分析这三个画面是如何在fb上显示的。
1. 第一个开机画面的显示过程 访问:568348次 积分:6805分
Android系统的第一个开机画面其实是Linux内核的启动画面。
在默认情况下,这个画面是不会出现的,除非 排名:第368名 我们在编译内核的时候,启用以下两个编译选项: 原创:54篇 转载:0篇 译文:0篇 评论:2115条 CONFIG_FRAMEBUFFER_CONSOLE CONFIG_LOGO 博客公告 第一个编译选项表示内核支持帧缓冲区控制台,它对应的配置菜单项为:Device Drivers ---gt Graphics 本博客所有文章均为原创,欢 迎交流,欢迎转载;转载请勿 support ---gt Console display driver support ---gt Framebuffer Console support。
第二个编译选项表示 篡改内容,并且注明出处,禁 止用于商业目的,谢谢! 内核在启动的过程中,需要显示LOGO,它对应的配置菜单项为:Device Drivers ---gt Graphics support ---gt Bootup logo。
配置
Android内核编译选项可以参考在Ubuntu上下载、编译和安装
Android最新内核源代码 博客专栏 (Linux Kernel)一文。
老罗的
Android 帧缓冲区硬件设备在内核中有一个对应的驱动程序模块fbmem,它实现在文件 之旅 文章数:54篇 kernel/goldfish/drivers/video/fbmem.c中,它的初始化函数如下所示: 阅读量: 567693 cpp 1 0. / 2 0. be_nt nt rm ufr usse fmmii -ii faebfe sbytm 3 0. 4 0. ntaie h rm ufr usse. Iiilz tefaebfe sbytm 阅读排行 5 0. 29566 6 0. 在Ubuntu上下载、编译和安装
Android最新源代码 OE hs ucin s ol_ o e ald y rvr/hrmmc NT:Ti fnto i _ny t b cle b diesca/e.. 7 0. 26210
Android应用程序启动过程源代码分析 8 0. / 22880 在Ubuntu上为
Android系统编写Linux内核驱动程序 9 0. 22290
Android进程间通信(IPC)机制Binder简要介绍和学习计划 c i t _ i i 0 1. tt sai n _nt 20464 1 1.
Android硬件抽象层(HAL)概要介绍和学习计划 be_ntvi fmmiiod 2 1. 19777 在Ubuntu上下载、编译和安装
Android最新内核源代码(Linux Kernel) 3 1. rccetfquot UL f_rcfp po_raequotb0 NLampbpo_os 15867 在Ubuntu上为
Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序 4 1. 15412
Android应用程序键盘(Keyboard)消息处理机制分析 5 1. f rgse_hdvF_AOfquotampbfp i eitrcreBMJRquotbf_os 1. 6 pitual o e ao d o b esn BMJR r Service Manager成为
Android进程间通信(IPC)机制Binder守护进程之路n k quot n b e t g t m j r f r f d v quot F _ A O 15158 7 1. 14896 在Ubuntu为
Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口 8 1. bcas ls_raeTI_OUE gahcquot f_ls cascetHSMDLquotrpis 9 1. f I_Rbcas i SERf_ls 0 2. rnkKR_ANN Ual o rae b ls rn pitENWRIGquotnbet cet f cas erodnPRERf_ls lquot T_Rbcas 评论排行 1 2. bcas f_ls NL UL 2 2. blog.csdn.net/luoshengyang/article/details/7691321 1/39 2.3 eun rtr 0 250
Android应用程序启动过程源代码分析 2.4 127 在Ubuntu上下载、编译和安装
Android最新源代码 119 在Ubuntu上为
Android系统内置Java应用程序测试Application Frameworks层的硬件服务 108 这个函数首先调用函数proc_create在/proc目录下创建了一个fb文件,接着又调用函数register_chrdev来注
Android应用程序键盘(Keyboard)消息处理机制分析
Android博客文章整理 101 册了一个名称为fb的字符设备,最后调用函数class_create在/sys/class目录下创建了一个graphics目录,用来描 95 在Ubuntu上下载、编译和安装
Android最新内核源代码(Linux Kernel) 述内核的图形系统。
86 在Ubuntu上为
Android系统编写Linux内核驱动程序 80 在Ubuntu上为
Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序 模块fbmem除了会执行上述初始化工作之外,还会导出一个函数register_framebuffer: 66
Android系统的开机画面显示过程分析 60
Android系统在新进程中启动自定义服务过程(startService)的原理分析 cpp 1 0. XOTSMOeitrfaeufr EPR_YBLrgse_rmbfe 最新评论 这个函数在内核的启动过程会被调用,以便用来执行注册帧缓冲区硬件设备的操作,它的实现如下所示:
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 gzzaigcn: 罗老师,你有更新了, cpp 期待你的开启动画。
正想着,如 何更改启动的动画来着呢。
1 0. /
Android应用程序消息处理机制(Looper、Handler)分析 2 0. eitrfaeufr eitr rm ufr eie rgse_rmbfe -rgsesafaebfe dvc xukai7: 我看了
Android应用程序 3 0. f_no rm ufr no tutr bif:faebfe if srcue 键盘(Keyboard)消息处理机制 分析 一文,我想问下,int Nat... 4 0. 5 0. eitr rm ufr eie f_no Rgsesafaebfe dvc bif.
Android应用程序消息处理机制(Looper、Handler)分析 Luoshengyang: xukai7:是的, 6 0. UI线程在消息循环的过程中,有 7 0. eun eaie rn n ro r eo o ucs. Rtrsngtv eroo err o zr frsces 两种唤醒方式,一种是自然醒, 8 0. 即睡眠超时时间到,另... 9 0. /
Android应用程序消息处理机制(Looper、Handler)分析 0 1. xukai7: 我想问下罗大哥,在
android2.2前使用的是notifywait 1 1. itn 机制的消息通知过程。
andro... 2 1. eitrfaeufrsrc bif f_no rgse_rmbfetutf_nobif 3 1.
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 sundroid: 顶 一直在期待 4 1. n iti 5 1.
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 tut beet vn src f_vn eet uoykcuftnawi: 爱死你了老罗。
。
6 1. ... ... 7 1.
Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析 gzzaigcn: 8 1. f nmrgsee_b BMX i u_eitrdf F_A Luoshengyang:OK,谢谢 9 1. eun EXO rtr -NI 0 2.
Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析 Luoshengyang: gzzaigcn:你看 1 2. ... ... 一下binder_transaction这个函 2 2. 数,当参数reply等于1的时... 3 2. u_eitrdf nmrgsee_b
Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析 4 2. o i fr 0iltF_Ai BMX gzzaigcn: Luoshengyang:哦, t-gtbuffer-gttarget_node这个是 5 2. f eitrdf i rgsee_bi NULL的原因何在... 6 2. ra bek 2. 7 bif-nd
Android应用程序与SurfaceFlinger服务的关系概述和学习计划 f _ n o gt o e i tankai19880619: 老罗,看到你 8 .