android 屏幕显示 怎么刷新 framebuffer 详解

发布网友

我来回答

1个回答

热心网友

Android屏幕绘制基本与linux相同,都是使用Framebuffer来绘制屏幕,设备为/dev/graphic/fb0.Framebuffer 存储在内存或者显存中,比如一个800 ×600的屏幕,每个像素点为16位色,那么Framebuffer的大小就为(800 × 600 × 16/8) byte
手机的LCD屏幕通过显存中当前的Framebffer和缓存的framebuffer来绘制屏幕上的每一个像素点.

具体顺序为:

1 打开framebuffer设备;

2 通过ioctl取得fixed screen information;(ioctl(fd,FBIOGET_FSCREENINFO, &finfo))

3 通过ioctl取得variable screen information;(ioctl(fd,FBIOGET_VSCREENINFO, &vinfo))

4 通过mmap映射设备内存到进程空间;(记得区分内核空间和用户空间,用户空间是无法对物理内存直接读写的)

5 写framebuffer;

6 终止。(记得终止时一定要取消映射,并close掉句柄)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com