性能优化——内存优化
- 显示内存优化:
显存占用 = 分辨率 × 色深字节数
表 1. 显示内存占用 宽 高 格式 双 framebuffer 屏幕是否旋转 内存占用 1024 600 ARGB8888 是 否 1024x600x4x2 = 4.8MB 1024 600 RGB565 是 否 1024x600x2x2 = 2.4MB 1024 600 ARGB8888 是 是 1024x600x4x2 +1024x600x4 = 7.2MB 1024 600 RGB565 是 是 1024x600x2x2 + 1024x600x2= 3.6 MB 配置策略:-
降低色深:非高保真场景 framebuffer 选用 rgb565。
详情可查看配置 Framebuffer。
- 屏幕方向:不开启旋转或者选择竖屏竖用,横屏横用的显示屏。
-
- 优化解码内存占用
- 如果不是必须包含透明度,使用 JPEG 图片替换 PNG 图片。。
宽 高 格式 解码内存占用 1024 600 PNG 1024x600x4 = 2.4 MB 1024 600 JPEG 1024x600x2 = 1.2 MB - 当内存比较紧张时,需要对图片缓存的释放进行控制。
LVGL V8 图片缓存释放接口:
// 释放对象 img_obj 的图片缓存 lv_img_cache_invalidate_src(lv_img_get_src(img_obj)); // 释放所有的图片缓存,在场景切换时,确定不需要已有的图片缓存可以这么调用 lv_img_cache_invalidate_src(NULL);LVGL V9 图片缓存释放接口:// 释放对象 img_obj 的图片缓存 lv_image_cache_drop(lv_image_get_src(img_obj)); // 释放所有的图片缓存,在场景切换时,确定不需要已有的图片缓存可以这么调用 lv_image_cache_drop(NULL);
- 如果不是必须包含透明度,使用 JPEG 图片替换 PNG 图片。。
