android TV架构启动流程分析(三)

来源:互联网 发布:研发费加计扣除算法 编辑:程序博客网 时间:2024/05/29 18:05

android TV架构分析(二)中最后说开始启动kernel了,实际上在启动kernel之前要先启动audio/video firmware。

 

我们知道现在的电视开机的时候都会有开机logo,其中android 机器会有两段logo,第一段logo我们叫bootlogo,第二段叫android的开机动画(也就是android的bootanimation进程);其中第一段logo是一张图片,在启动video fw的过程中调用VP_PowerOnVideo()解码显示出来。

video 启动:

          ros_start ——>TaskStart——>RosStartTaskCreateHook——>VP_PowerOnVideo——>往下就是获取开机logo的av信息,根据格式信息选择相应的解码程序进行解码显示

 

 

kernel  启动: 遵循android标准启动流程,第一个进程也就是init 进程(\system\core\init\init.c)。

    init会创建文件节点,挂载部分文件系统;解析init.rc 及其他xxx.rc文件并启动android服务,init的任务完成后通过for(;;)循环监测property(服务在工作中需要处理的会相对多一些),signal,keychord事件并响应,这些都可以在网上找到大牛的详细分析过程(推荐 老罗的android之旅)。

           在init解析*.rc 及启动的过程中,会启动init.tvserver.sh shell文件,这个shell脚本正是下一篇Tvserver 启动的地。在android的角度讲,这个tvserver 其实就是一个包含很多线程的大service。tvserver会封装很多接口,同时在提供java接口,java接口调用jni 方法,jni通过用rpc与tvserver通信最终调到tvserver提供的接口。

 

 

 

 

 

 

 

 

0 0