文档章节

Android图形显示系统——下层显示1:基础知识与相关文件

jxt1234
 jxt1234
发布于 2015/10/15 18:06
字数 586
阅读 21
收藏 0

基础知识和相关文件

基础知识

Android下层显示相关的代码相对而言并不是很多,核心部分在三件厂商或SOC厂商提供/集成的驱动之中。尽管如此,这部分代码涉及到一系列基础类库,不了解的话也很难读懂。
这些基础知识这里只做简单介绍,详细了解看链接或可自行百度或Google

binder/Service

Android中用于进程间通信的基本方法,需要了解它是怎么使用的,不然会搞不明白surfaceflinger服务怎么起来,怎么发挥作用的。
http://blog.csdn.net/new_abc/article/details/8097775

Thread

Android自己实现的线程类封装。主要关注子类需要重写哪些虚函数,做什么事情。
system/core/libutils/Threads.cpp
这篇文章可以参考一下,不过 libutils的目录在Android4.4之后改到system/core下面了。
http://www.csdn123.com/html/blogs/20130802/46970.htm

sp/wp

Android里面的智能指针和弱引用,基础类型了,主要留意onFirstRef的调用时机。
http://blog.chinaunix.net/uid-24922718-id-3787722.html

MessageHandler/Loop

Android中的消息处理机制,对显示而言,主要是用来做vsync垂直同步时用到。
http://www.cnblogs.com/angeldevil/p/3340644.html

Zygote

Android所有进程的父进程,涉及开机动画。不过这部分代码和上层显示关联更多(预加载)。
http://blog.csdn.net/zhgxhuaa/article/details/24201127

OpenGL和EGL

图形标准和窗口标准。使用GPU硬件加速功能必须。
OpenGL没什么文章能讲清的,没有背景知识的了解一下就好。
EGL可以参考这篇:
http://blog.csdn.net/ldh_123456/article/details/17422479

Android下层显示主要相关文件

系统头文件

上层库共享接口定义

system/core/include/system/graphics.h
system/core/include/system/window.h

硬件模块接口定义

hardware/libhardware/include/hardware/gralloc.h
hardware/libhardware/include/hardware/hwcomposer_defs.h
hardware/libhardware/include/hardware/hwcomposer.h

系统库

主要模块和相关类如下图所示:
系统库与类

驱动

设备相关的HAL层驱动各厂商并不相同且一般属于保密信息,Kernel也主要是根据芯片使用手册配置寄存器,不适合讲且没有太多参考价值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

© 著作权归作者所有

共有 人打赏支持
jxt1234
粉丝 5
博文 36
码字总数 41634
作品 0
杭州
私信 提问
4412开发板-Android系统架构

本文转自迅为开发板手册:http://www.topeetboard.com 1、 架构图直观 下面这张图展示了Android系统的主要组成部分: 可以很明显看出,Android系统架构由5部 分组成,分别是:Linux Kernel、...

topeet
2015/07/06
787
2
android自学笔记《四》——应用程序结构分析

昨天在帖子里看到的一个分析方法,很简单,给大家分享下! 呵呵,由于我也是刚开始学习Android,还没有学到下面这些知识,这里就直接截图了。 看完他这个分析之后,我对Android程序有了一个简...

郭子
2012/02/03
0
1
android基础知识02——线程安全5: AsyncTask

android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供...

迷途d书童
2012/03/23
1K
0
android基础知识02——线程安全1:定义及例子

android的UI操作不是线程安全的,同时也只有主线程才能够操作UI,同时主线程对于UI操作有一定的时间限制(最长5秒)。为了能够做一些比较耗时的操作(比如下载、打开大文件等),android提供...

迷途d书童
2012/03/23
793
0
android自学笔记《三》——系统架构分析

下面是Android的系统架构图 翻译后 从上图中可以看出,Android系统架构为4层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下: 1)应用程序...

郭子
2012/02/03
0
5

没有更多内容

加载失败,请刷新页面

加载更多

Linux下端口转发工具rinetd介绍

linux下简单好用的工具rinetd,实现端口映射/转发/重定向,针对TCP协议,不支持UDP。 官网地址 http://www.boutell.com/rinetd 里面介绍及使用齐全。 使用场景举例: 阿里云内网Redis连接问题...

ouhoo
9分钟前
0
0
Oracle学习日志-5(算数运算符,比较运算符和逻辑运算符)

因为有编程基础,所以对于这一章还是很好理解,只需要注意对NULL的运算。 操作的表格 算数运算符 查询商品名字和商品售价,并商品售价乘2 SELECT product_name,sale_price * 2 AS "sale_pri...

白话
22分钟前
0
0
搜索引擎(Lucene介绍、分词器详解)

Lucene介绍 Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简...

这很耳东先生
27分钟前
0
0
quartz详细介绍

quartz常用api Scheduler 调度程序交互的主要API。 Job 希望由调度程序执行的组件实现的接口。 JobDetail 用于定义作业的实例。 JobDataMap 可以包含不限量的序列化数据,在job运行的时候可以...

大笨象会跳舞吧
27分钟前
0
0
kotlin使用jackson序列化enum

默认情况下,我们序列化与反序列化enum是它的name,事实上大部分情况下我们需要序列化的是我们自定义的value,那应该怎么做呢? 这种情况下我们就需要@JsonValue与@JsonCreator data class U...

weidedong
31分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部