OpenHarmony富设备移植指南(5.1)显示调试经验分享

系统 OpenHarmony
第三方设备进行OpenHarmony适配时会有一些共性问题,这里进行一些总结和经验分享,希望能帮到大家。

想了解更多关于开源的内容,请访问:

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

1、CPU渲染适配,开机后渲染服务能接管屏幕但是黑屏

因为当前OH代码内部为默认启用GPU渲染,当我们关闭使用GPU,并使用CPU渲染时,OH代码没有做好分支判断,导致黑屏。

解决办法:修改rs_base_render_engine.cpp文件中的NeedForceCPU函数,强制使用cpu。

#创作者激励#OpenHarmony富设备移植指南(5.1)显示调试经验分享-开源基础软件社区


2、系统整体颜色偏色问题

偏色原因猜测是OH申请创建图层时申请的格式不一致,合成时导致的问题,GPU渲染无此问题。

解决办法:修改display适配中的drm_allocator.cpp文件,修改内存申请时的buffer格式,把非【PIXEL_FMT_BGRA_8888】格式转为【PIXEL_FMT_BGRA_8888】格式。

#创作者激励#OpenHarmony富设备移植指南(5.1)显示调试经验分享-开源基础软件社区

修改后:

#创作者激励#OpenHarmony富设备移植指南(5.1)显示调试经验分享-开源基础软件社区

3、进入桌面后显示比例不协调

OH官方提供了dpi的配置,具体位置如下图,rk3568之外的设备使用的是other文件夹下的配置。

#创作者激励#OpenHarmony富设备移植指南(5.1)显示调试经验分享-开源基础软件社区

查看display_manager_config.xml,发现有提供dpi的配置,但是因为install_enale=false的原因导致配置文件没有加入编译,配置不生效。

#创作者激励#OpenHarmony富设备移植指南(5.1)显示调试经验分享-开源基础软件社区

一个办法是修改install_enable=true,然后修改other下的display_manager_config.xml。

按照解耦的思想,这个自定义的配置应该剥离出官方代码,放到我们适配的文件夹中自己管理,所以我想到了一个解决办法,同样通过ohos_prebuilt_etc模板把编译配置跟配置文件都放到board文件夹中,自己管理,不修改官方代码,代码如下。

board下添加window_cfg,复制rk3568的配置到目录下,添加BUILD.gn。

#创作者激励#OpenHarmony富设备移植指南(5.1)显示调试经验分享-开源基础软件社区

上层BUILD.gn的sigit_group中添加window_cfg:

#创作者激励#OpenHarmony富设备移植指南(5.1)显示调试经验分享-开源基础软件社区

window_cfg文件夹下的BUILD.gn添加如下配置:

import("//build/ohos.gni")
ohos_prebuilt_etc("window_manager_config") {
source = "window_manager_config.xml"
install_enable = true
part_name = "qualcomm_products"
relative_install_dir = "window/resources"
}
ohos_prebuilt_etc("display_manager_config") {
source = "display_manager_config.xml"
install_enable = true
part_name = "qualcomm_products"
relative_install_dir = "window/resources"
}
group("window_config") {
deps = [
":display_manager_config",
":window_manager_config",
]
}

这里的dpi并不能直接套用网上的计算dpi的公式得出的结果,需要自己尝试几个值查看显示效果,这个是我适配小米6的dpi值,供大家参考。

#创作者激励#OpenHarmony富设备移植指南(5.1)显示调试经验分享-开源基础软件社区

想了解更多关于开源的内容,请访问:

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

责任编辑:jianghua 来源: 51CTO 开源基础软件社区
相关推荐

2023-03-23 16:02:07

树莓派4GPU调试

2023-02-14 17:06:31

设备移植打包刷机

2023-02-06 16:21:48

2023-03-06 16:11:00

设备移植开源GPU驱动

2023-03-10 09:47:45

OpenGL渲染设备移植

2023-04-06 09:10:13

设备移植鸿蒙

2023-02-07 15:52:50

2023-02-08 15:46:50

设备移植第三方内核适配

2013-05-03 13:45:42

KVM故障调试

2009-12-16 16:37:59

Ruby on Rai

2022-06-21 11:30:22

littleVGL鸿蒙

2012-01-30 13:58:36

Linux Deepi Gnome Shel

2023-05-05 16:05:26

设备内核移植鸿蒙

2009-12-07 11:11:46

PHP显示图片

2023-05-16 14:49:25

鸿蒙内核移植

2022-10-10 15:01:35

手写板鸿蒙

2022-10-14 15:27:02

应用开发鸿蒙

2022-03-17 15:55:19

播放数字音频解码鸿蒙

2022-06-09 14:40:14

系统移植鸿蒙

2023-04-10 09:44:22

内核鼠标调试鸿蒙
点赞
收藏

51CTO技术栈公众号