form_fwk解耦power_manger
背景&版本 OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。 系统版本:OpenHarmony-4.1-Release 设备:RK3568 在裁剪powermgr子系统的power_manger部件时,编译form_fwk部件
背景&版本
OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。
系统版本:OpenHarmony-4.1-Release
设备:RK3568
在裁剪powermgr子系统的power_manger部件时,编译form_fwk部件报错。
裁剪操作
修改productdefine/common/inherit/rich.json文件,删除powermgr下的power_manager部件配置。
删除base/powermgr/power_manager目录。
编译分析
系统编译时,在foundation/ability/form_fwk/BUILD.gn文件中存在报错提示,查看BUILD.gn文件,发现在160行通过ability_runtime_power进行判断是否依赖power_manager:
在**//foundation/ability/form_fwk目录中搜索ability_runtime_power**,发现只有使用的地方,并未发现定义的位置:
根据名称判断,推测其可能定义的位置在ability_runtime部件中,在**//foundation/ability/form_fwk/BUILD.gn文件的头部可以看到有import导入ability_runtime部件的gni**文件。
打开**//foundation/ability/ability_runtime/ability_runtime.gni文件,搜索ability_runtime_power,发现只有一个初始定义值为true,并未判断power_manager**部件裁剪的情况。
修改方案
参考**//foundation/ability/ability_runtime/ability_runtime.gni文件中其他部件的修改,添加对global_parts_info.powermgr_power_manager的判断:
修改后系统编译成功,form_fwk部件即可对power_manger**部件解耦,相关代码已合入到官方社区:
issue: https://gitee.com/openharmony/ability_ability_runtime/issues/IACRFI
pr:https://gitee.com/openharmony/ability_ability_runtime/pulls/9390
更多推荐
所有评论(0)