Android系统显示框架

1 Linux 驱动   FrameBuffer

  在内核层,系统屏幕是使用一个称为帧缓冲区的硬件设备来描述的,而用户空间的应用程序可以通过设备文件/dev/fb0或者/dev/graphics /fb0来操作这个硬件设备。实际上,帧缓冲区本身并不是一个真正的硬件,它只不过是对显卡的一个抽象表示,不过,我们通过访帧缓冲区就可以间接地操作显 卡内存以及显卡中的其它寄存器

硬件抽象层(HAL)模块Gralloc

为了在屏幕中绘制一个指定的画面,我们需要:

1.  分配一个匹配屏幕大小的图形缓冲区

2.  将分配好的图形缓冲区注册(映射)到当前进程的地址空间来

3.  将要绘制的画面的内容写入到已经注册好的图形缓冲区中去,并且渲染(拷贝)到系统帧缓冲区中去

为了实现以上三个操作,我们还需要:

1. 加载Gralloc模块

2. 打开Gralloc模块中的gralloc设备和fb设备

其中,gralloc设备负责分配图形缓冲区,Gralloc模块负责注册图形缓冲区,而fb设备负责渲染图形缓冲区

3 SurfaceFlinger服务负责绘制Android应用程序的UI

这是学习老罗的笔记 ,向老罗致敬。

时间: 2024-10-24 07:35:29

Android系统显示框架的相关文章

Android系统Audio框架介绍

音频基础知识 声音有哪些重要属性呢? 响度(Loudness) 响度就是人类可以感知到的各种声音的大小,也就是音量.响度与声波的振幅有直接关系. 音调(Pitch) 音调与声音的频率有关系,当声音的频率越大时,人耳所感知到的音调就越高,否则就越低. 音色(Quality) 同一种乐器,使用不同的材质来制作,所表现出来的音色效果是不一样的,这是由物体本身的结构特性所决定的. 如何将各种媒体源数字化呢? 音频采样 将声波波形信号通过ADC转换成计算机支持的二进制的过程叫做音频采样(Audio Sam

Android系统显示原理

应用层 Android显示过程的概括:Android应用程序把经过测量.布局.绘制后的surface缓存数据,通过SurfaceFlinger把数据渲染到显示屏幕上,通过Android的刷新机制来刷新数据.也就是说应用层负责绘制,系统层负责渲染,通过进程间通信把应用层需要绘制的数据传递到系统层服务,系统层服务通过刷新机制把数据更新到屏幕. 绘制原理中每个View绘制的三个步骤中Measure和Layout都是递归来获取View的大小和位置,层级越深,元素越多,耗时也就越长. 1.Measure

Android安全模型之Android安全机制(Android系统分区及加载)

Android设备的分区包括系统分区,数据分区,Cache分区及SD卡分区等.具体概括如下: 1. 系统分区通常加载为只读分区,包含操作系统内核,系统函数库,实时运行框架,应用框架与系统应用程序等,由OEM厂商在出厂时植入,外界不能更改,如此,当系统出现安全问题时,用户可以启动进入所谓的"安全模式",加载只读的系统分区,不加载数据分区中的数据内容,隔离第三方应用程序可能带来的安全威胁. /system/app目录存放系统自带应用程序APK /system/lib目录存放系统库文件. /

基于Android系统应用层与框架层剖析View点击事件

基于Android操作系统的框架层和应用层,介绍了View的绘制.触摸事件的传递流程,分析了View与用户交互时被回调的相关框架层代码和应用层代码,研究了Android应用中事件处理的相关重要机制.通过具体代码详细剖析了在Android系统下用户和View交互过程中折射出的回调机制,回调方法在系统框架的详细执行过程,以及基于回调机制的经典事件处理模型. 1 引言 Android是一种基于Linux的自由及开放源代码的操作系统,目前基于Android平台的应用日趋广泛.Android应用程序大多基

android系统框架

应用层(APP) 应用框架层(API框架) 系统运行库层(包括Android Runtime.Libraries) Linux内核层 进程管理(process management) 定时器(timer) 中断管理(interrupt management) 内存管理(memory management) 模块管理(module management) 虚拟文件系统接口(VFS layer) 文件系统(file system) 设备驱动程序(device driver) 进程间通信(inter-

2、android系统框架的介绍

android系统框架介绍 src目录:主要完成java代码编写 assets目录:资源目录 res目录:存放图片.布局文件.字符串.菜单等文件 bin目录:输出文件夹,如生成apk文件 project.properties:工程属性文件配置 gen目录:系统自动生成的源代码目录 R.java文件:系统自动生成的文件,默认有attr.drawable.layout.string4个静态内部类,每个类对应一种资源 AndroidManifest.xml:描述package中暴露的组件(activi

Android 系统框架简介

从整体系统框架而言,Android系统分成内核层.硬件抽象层.系统运行层.应用程序框架层以及应用程序层. ·内核层 基于Linux操作系统,开发的系统驱动层. ·硬件抽象层 进一步降低Android系统与硬件的耦合度 ·系统运行库层 包含了支撑整个系统正常运行的基础库.多数是由C/C++实现. ·应用程序框架层 一方面为上层应用程序提供了API接口:另一方面也囊括了不少系统级服务进程的实现,是与Android应用开发者关系最直接的一层. 一般都是JAVA语言编写. ·应用程序层 ...

Android应用程序框架层和系统运行库层日志系统源代码分析

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6598703 在开发Android应用程序时,少不了使用Log来监控和调试程序的执行.在上一篇文章Android日志系统驱动程序Logger源代码分析中,我们分析了驱动程序Logger的源代码,在前面的文章浅谈Android系统开发中Log的使用一文,我们也简单介绍在应用程序中使Log的方法,在这篇文章中,我们将详细介绍Android应用程序框架

Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6642463 在前面几篇文章中,我们详细介绍了Android系统进程间通信机制Binder的原理,并且深入分析了系统提供的Binder运行库和驱动程序的 源代码.细心的读者会发现,这几篇文章分析的Binder接口都是基于C/C++语言来实现的,但是我们在编写应用程序都是基于Java语言的,那么,我 们如何使用Java语言来使用系统的Binder机