最近研究了一下android的显示系统,参考了一些文档,做一点简单的总结
1,废话不多说,先来一张 surfacefinger源码的source tree
2,再上一张surfacefinger的组件图。(硬件平台是exynos CPU + MALI GPU)
3,名词解释
UMP :unified memory provider
这是由ARM定义的一种内存管理方式,主要用在Mali GPU
允许同一段内存被不同的进程空间映射。
这样可以共享内存,避免了内存的拷贝
最显著的应用,就是视频播放: OMX进程把解码后的数据放入到一段内存,surfacefilnger进程也共享这段内存,从而把这段内存的YUV数据,作为 openGL的纹理进行渲染
share memory management
framebufer driver
由app或者GPU在绘画的buffer,暂时还没有送到屏幕上
参考:http://blog.csdn.ne