内存查杀白名单功能设置流程总结
4.1 社区代码分支流程 内存查杀白名单功能设置流程总结 内存查杀流程 /dev/memcg/memory.zswapd_pressure_show buffer_size 获取当前系统压力内存值 压力内存值 与 水线 作比较 获取 查杀等级 和 需要查杀的内存大小 计算需要查杀的内存的大小 max_level_mem - current buffer(压力内存值) 根据查杀的内存的大小 结合 进
4.1 社区代码分支流程 内存查杀白名单功能设置流程总结
-
内存查杀流程
-
/dev/memcg/memory.zswapd_pressure_show buffer_size 获取当前系统压力内存值
-
压力内存值 与 水线 作比较 获取 查杀等级 和 需要查杀的内存大小
-
计算需要查杀的内存的大小 max_level_mem - current buffer(压力内存值)
-
根据查杀的内存的大小 结合 进程优先级 查杀相关进程
-
杀掉释放的内存大于需要查杀的内存 结束查杀流程
-
-
进程权限优先级列表
-1000 系统进程,属于该优先级的进程不会被查杀策略查杀,支持白名单配置
-800 常驻进程,属于该优先级的进程可以被查杀,但优先级较低,且被杀后可以再被拉起,支持白名单配 置
0 前台应用
1 前台
100 正在进行后台短时任务的应用; 或者有被进程关联的extension进程
200 后台可感知应用,如正在执行导航、播放音乐等长时任务的应用
260 连接着分布式设备的后台应用
400 普通后台应用及无被任何进程关联的extension进程
-
内存查杀白名单功能配置要点
memmgr_config.xml
<reclaimPriorityConfig>
<killalbeSystemApps> /配置为常驻进程/
<killableSysApp>com.ohos.launcher</killableSysApp>
</killalbeSystemApps>
<importantBgApps>
<importantBgApp> /配置重要进程优先级/
<procName>com.ohos.launcher</procName> <minPriority>0</minPriority>
</importantBgApp>
</importantBgApps>
</reclaimPriorityConfig> -
解决问题心路历程
-
memmgr_config.xml 没有配置之前 没有添加白名单功能的时候 按照内存查杀的触发逻辑 触发了内存查杀的功能 结合进程的优先级 对进程进行查杀
-
memmgr_config.xml killalbeSystemApps节点 进行配置 killalbeSystemApps 这个节点配置之后 变成常驻进程 权限为-800 如果进程不涉及进程状态变化导致权限变更(1400)能解决内存查杀的问题
-
memmgr_config.xml minPriority节点 进行配置有些特殊重要进程权限的优先级 minPriority节点设置进程的权限设置成0 将不触发内存查杀的功能
-
-
总结
-
需要理清 内存查杀的触发逻辑
-
需要理清 进程的权限优先级的具体设置和描述
-
需要理清 memmgr_config.xml killalbeSystemApps importantBgApp 节点配置逻辑
-
更多推荐
所有评论(0)