Advertisement

Android内存管理流程分析

阅读量:

在 Android 系统中,LCD 被视为一种帧缓冲设备,其驱动程序借助处理器内部的 LCD 控制器,将物理内存中的特定区域配置为显存。一旦向该内存区域写入数据,内容将即时呈现在 LCD 屏幕上。Android 在硬件抽象层(HAL)中引入了 gralloc 模块,该模块对用户空间中所有与帧缓冲设备相关的操作接口进行了封装,并通过 SurfaceFlinger 服务为应用程序提供显示支持。系统启动时会加载 gralloc 模块,随后打开帧缓冲设备以获取各类参数,并完成 gralloc 模块的初始化过程。当应用程序需要将内容显示在 LCD 上时,需借助 gralloc 模块申请一块图形缓冲区,并将其映射至自身的地址空间后进行内容写入。若应用程序不再使用该缓冲区,则需通过 gralloc 模块进行释放操作,并解除对该缓冲区的映射关系。

1、基础数据结构

gralloc 模块利用 struct private_module_t 进行描述,其结构定义如下:

复制代码
 struct private_module_t {

    
     gralloc_module_t base;
    
  
    
     private_handle_t* framebuffer;  /* 指向图形缓冲区的句柄 */
    
     uint32_t fla

全部评论 (0)

还没有任何评论哟~