[触觉智能RK3568]修改屏幕 DPI(像素密度)

在源码Foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml中有rk3568的默认配置。

在源码Foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml中有rk3568的默认配置。

[触觉智能RK3568]修改屏幕 DPI(像素密度)

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

​清一色开源基础软件社区​

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

  • 触觉智能RK3568购买链接如下:https://item.taobao.com/item.htm?spm=4645b.1.14.1.5c4a4a7dv1soeZ&id=658789039056&ns=1&abbucket=5#detail

一、OpenHarmony源码中DPI配置

  • 在源码foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml中有rk3568的默认配置

rk3568开发板默认的DPI配置为240,范围为80-640。

<!--Window display dpi, valid range is 80~640, use 0 if no configuration is requeired-->
<dpi>240</dpi>

以下为触觉智能开发板在不同DPI时屏幕的显示情况。

DPI为240时:

[触觉智能RK3568]修改屏幕 DPI(像素密度)

DPI为100时:

[触觉智能RK3568]修改屏幕 DPI(像素密度)

DPI为600时:

[触觉智能RK3568]修改屏幕 DPI(像素密度)

二、更改开发板的DPI

方法一:更改源码编译烧录固件

  • 在源码foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml文件中修改dpi,编译后烧录固件。
<!--Window display dpi, valid range is 80~640, use 0 if no configuration is requeired-->
<dpi>240</dpi>

方法二:发送display_manager_config.xml文件至设备etc/window/resources

  • OpenHarmony固件编译烧录进入设备后,display_manager_config.xml文件会被预编译打包至设备端etc/window/resources目录下,什么,为什么只有window/resources字段,因为ohos_prebuilt_etc就是把文件放进设备的etc文件夹。
foundation/window/window_manager/resources/config/BULID.gn文件如下,
下面代码的意思是源码foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml会真正安装在设备中的etc/window/resources文件位置,

ohos_prebuilt_etc("display_manager_config") {
if (device_name == "rk3568") {
source = "//foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml"
install_enable = true
···
···
relative_install_dir = "window/resources"
}
  • 步骤如下
# 进入sdk\版本号\toolchain输入cmd打开命令行,重新加载系统为可读写
D:\DevEco Studio\sdk\9\toolchains>hdc_std shell mount -o remount,rw /

# 替换/etc/window/resources中的display_manager_config.xml文件
D:\DevEco Studio\sdk\9\toolchains>hdc_std file send C:\Users\jjh\display_manager_config.xml /etc/window/resources

然后重启开发板让设置生效

知识点附送

为ohos_prebuilt_XXX类目标添加支持指定output属性的能力

  • 以该pr学习https://gitee.com/openharmony/build/pulls/822/files为ohos_prebuilt_XXX类目标添加支持指定output属性的能力。
  • ohos_prebuilt_XXX类目标是指ohos_prebuilt_executable、ohos_prebuilt_shared_library、ohos_prebuilt_static_library、ohos_prebuilt_etc。这类目标只支持指定source属性,拷贝到out目录时目标文件名与源文件名是一样的,无法另行指定名字。该pr解决了此限制,添加了output这个可选属性用于指定目标文件名,不指定的情况下默认与源文件名是一样的(与原逻辑保持一致)。
  • OpenHarmony编译构建子系统是基于Gn和ninja的,而gn本身是有原生模板(source_set,shared_library, static_library, action, executable,group)。gn也支持用户自定义编译模板,OpenHarmony编译子系统提供了一系列自定义的模板(ohos_shared_library、ohos_prebuilt_executable、ohos_prebuilt_shared_library等)
  • 自定义模板的源码位于https://gitee.com/openharmony/build/tree/master/templates
  • ohos_prebuilt_executable、ohos_prebuilt_shared_library、ohos_prebuilt_static_library、ohos_prebuilt_etc预编译模板在prebuilt.gni中定义,它们通过调用ohos_copy模板实现。
  • ohos_copy模板实现了拷贝文件到设备具体位置的功能,它需要定义invoker.sources和invoker.outputs,即source和output属性。例如
  • ohos_prebuilt_executable、ohos_prebuilt_shared_library、ohos_prebuilt_static_library、ohos_prebuilt_etc(下面用ohos_prebuilt_xxx代指)添加支持指定output属性的能力的相关代码如下:
templates/common/copy.gni文件中:

template("ohos_copy") {
assert(defined(invoker.sources),
"sources must be defined for ${target_name}.")
assert(defined(invoker.outputs),
"outputs must be defined for ${target_name}.")
...
if (_is_prebuilt) {
_outputs = invoker.outputs
module_source = string_replace(_outputs[0], "${target_out_dir}/", "", 1)
}
prebuilt = _is_prebuilt
···
templates/cxx/prebuilt.gni文件中:
template("ohos_prebuilt_xxx") {
···
# 如果.gn文件中为ohos_prebuilt_xxx指定了out属性,文件名称被另外指定。没有则默认为原名称
if (defined(invoker.output)) {
_copy_output = "${target_out_dir}/${invoker.output}"
} else {
_copy_output = "${target_out_dir}/${invoker.source}"
}
···
outputs = [ _copy_output ]
}

使能/禁用selinux

  • 禁用selinux
hdc_std shell mount -o rw,remount /
hdc_std shell "sed -i 's/enforcing/permissive/g' /system/etc/selinux/config"
hdc_std shell "cat /system/etc/selinux/config |grep SELINUX="
# 重启设备
hdc_std shell reboot
  • 使能selinux
hdc_std shell mount -o rw,remount /
hdc_std shell "sed -i 's/permissive/enforcing/g' /system/etc/selinux/config"
hdc_std shell "cat /system/etc/selinux/config |grep SELINUX="
# 重启设备
hdc_std shell reboot

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

​清一色开源基础软件社区​

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

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月7日 07:05
下一篇 2023年5月7日 07:05

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信