1. Android中的应用层每申请一个Surface,最终会通过jni和binder调用到surfaceflinger中,最终会创建一个Layerxxx(Layer,LayerBuffer,LayerBlur,LayerDim)类,最通常的是Layer类,在Layer类中有一个成员变量:

sp<GraphicBuffer> mBuffers[NUM_BUFFERS];

Layer的成员函数SetBuffers()初始化了该数组:

for (size_t i=0 ; i<NUM_BUFFERS ; i++) { mBuffers[i] = new GraphicBuffer(); }

其中,NUM_BUFFERS的定义是2,也就是说,android为每个Layer分配了两个显示缓冲,以便于做出PageFlip的动作。

2. GraphicBuffer作为显示内存的管理类,负责显示内存的申请和释放。

分配和释放显存有辅助类GraphicBufferAllocator完成,lock和unlock则是由辅助类GraphicBufferMapper来完成。这两个辅助类都会调用HAL层的模块gralloc来完成和底层驱动程序的交互。

更多相关文章

  1. android viewpager 一页显示多个图片
  2. Gallery初始化显示到指定位置
  3. 期中实验:记事本实现时间戳、搜索、正文缩略显示
  4. Android(java)学习笔记38:Android(安卓)短信发送
  5. Listview 自动滚动到最下边
  6. Android通知(Notification)使用详解
  7. android经典面试题集锦
  8. Android(安卓)Toast用法
  9. 从setContentView说起

随机推荐

  1. 关于Android 的内存泄露及分析
  2. Android之Volley框架在实际开发过程中运
  3. 适用于Android的OpenSL ES指南-概述
  4. 神奇的 Magisk
  5. Android px, dp, sp的区别
  6. 【幻灯片分享】凡客移动应用之Android +
  7. android底层HAL层深入了解
  8. [置顶] [转]android开发新浪微博客户端
  9. Android进阶-Android Handler消息机制的
  10. Android屏幕待机时间的获取和设置