中级会员
- 积分
- 303
- 金钱
- 303
- 注册时间
- 2019-11-10
- 在线时间
- 61 小时
|
5金钱
本帖最后由 woshi520laoxie 于 2023-12-25 11:25 编辑
使用lvgl 8.3版本
使用情况:
2.1、弄了几个页面
2.2、多个页面跳转,由于页面与页面的调用都会使用到lv_obj_create,开辟堆区的空间
icon_cont_left = lv_obj_create(tab_left);
2.3、如果多次调用那么会造成内存重复开辟,然后堆浪费掉,没有回收,最终堆使用完毕,无法再使用
2.4、我也不能创建之后就立马clean掉,因为obj还绑定了回调函数,需要在按下按钮的时候做一些操作
---》这种情况下会造成内存持续增加
3.1、几个页面
3.2、每次切换页面的时候,我就调用 lv_obj_clean(lv_scr_act());// 清除整个对象的数据
3.3、这种情况,查看内存没有持续增加了,但是重复多几次之后,就会出现段错误
网上看了一些,有说是style的原因,不过style开启的内存不多,应该不是这个原因,我也试过只初始化一次
所以有朋友使用过lgvl的吗?你们多个页面是怎么操作的呢
4.1、我也有一些想法,就是开启多个页面,只初始化一次,有一些页面不用了,我就隐藏掉,但是我觉得这样会造成内存的浪费
4.2、所以还是选择关闭页面了就把该释放的内存释放掉的好,因为我有一些页面,使用了很大的图片背景,很费内存的
***********小结**************:
》》提问:如何能够多个页面切换的同时,也可以安全稳定的把该释放的内存全都释放掉呢。
|
|