立即注册
查看: 2803|回复: 1

[经验分享] mt2503 [Framework]如何控制尽量不弹出Memory不够界面

发表于 2017-11-8 13:00:02 | 显示全部楼层 |阅读模式 来自 广东省深圳市
[DESCRIPTION]
ASM机制:所有APP共享一块Memory,当启动某个AP申请Memory不够时,会弹出OOM(OutofMemory)提示关闭一些AP。
[SOLUTION]
若想手机上不弹OOM,有两种处理方法:
1.增大ASMPool的大小


2.改变UE行为,不要设计会弹OOM的场景,即如果A运行,再运行B会弹OOM,则不允许有从A进B的UE行为出现。
增大ASMPool的大小需要考虑整个手机的RAM配置,看Memory是否足够你增大。
Asmmemorypool为全局变量:g_applib_ap_mem_pool;
增大Pool的操作有简单测试法和标准操作法:
简单测试法:直接定义数组g_applib_ap_mem_pool的size为某个值。
标志操作法:查找到所有会弹OOM的场景,比如A/B都需要ASMmemory,两个同时运行时会弹OOM,则配置A/Bconcurrent。
对于使用ASM1.0的App(一般是plutoApp,在app_mem_config.h中配置Memory),配concurrent是在app_mem_config.h中的联合体中进行
kal_uint8APP_AM[APPLIB_MEM_CONC2_AP_POOL_SIZE(APPMEM_AM_POOL_SIZE,APPMEM_MRE_POOL_SIZE)
];;
kal_uint8APP_ALIPAY_OBIGO2[APPLIB_MEM_CONC3_AP_POOL_SIZE(APPMEM_MRE_APP_POOL_SIZE,APPME
M_ALIPAY_MEM_POOL_SIZE,APPMEM_WAP_POOL_SIZE)];
对于使用ASM2.0(cosmosApp,在res资源文件中配置Memory),在vapp_package_concurrent.res中配置concurrent,例如:
<APPCONCURRENT concurrent_w_order="VAPP_BROWSER, VAPP_GALLERY_YOUTUBE_PGDL_PLAYER"/>


另外查看当前AsmPool到底有多大,各个Ap的配置状况如何,可按如下步骤进行:
1.makemmi_obj_check
2.查看build目录下Log文件:objcheck.log/objcheck.html


修改ASM配置后,若出现linkerror,可能的状况如下:
1.RAM空间不够。无法撑大ASMPool.此时只能想办法省RAM或重新考虑UE设计
2.ZIMAGE错误。Zimage配置时拿富余的RAM来放ZIMAGE,修改ASM导致剩余的RAM减少,需要重新配置ZIMAGE参数。

已绑定手机
发表于 2017-11-8 14:47:34 | 显示全部楼层 来自 广东省深圳市
666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表