0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【OpenHarmony标准系统】修改屏幕 DPI(像素密度)

OpenHarmony开发经验 来源:OpenHarmony开发经验 作者:OpenHarmony开发经验 2023-05-16 10:21 次阅读

一、OpenHarmony源码中DPI配置

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

<dpi>240<span class="hljs-name"dpi>

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

  • DPI为240时
    snapshot_20230227_222808.png
  • DPI为100时
    snapshot_20230227_222044.png
  • DPI为600时
    snapshot_20230227_222534.png

二、更改开发板的DPI

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

  • 在源码foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml文件中修改dpi,编译后烧录固件。
<dpi>240<span class="hljs-name"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版本号	oolchain输入cmd打开命令行,重新加载系统为可读写
D:DevEco Studiosdk9	oolchains>hdc_std shell mount -o remount,rw /

# 替换/etc/window/resources中的display_manager_config.xml文件
D:DevEco Studiosdk9	oolchains>hdc_std file send C:Usersjjhdisplay_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_executableohos_prebuilt_shared_libraryohos_prebuilt_static_libraryohos_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_executableohos_prebuilt_shared_libraryohos_prebuilt_static_libraryohos_prebuilt_etc预编译模板在prebuilt.gni中定义,它们通过调用ohos_copy模板实现。
    • ohos_copy模板实现了拷贝文件到设备具体位置的功能,它需要定义invoker.sources和invoker.outputs,即source和output属性。例如image.png
  • ohos_prebuilt_executableohos_prebuilt_shared_libraryohos_prebuilt_static_libraryohos_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
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 屏幕
    +关注

    关注

    6

    文章

    1196

    浏览量

    55780
  • 源码
    +关注

    关注

    8

    文章

    638

    浏览量

    29184
  • DPI
    DPI
    +关注

    关注

    0

    文章

    36

    浏览量

    11509
  • OpenHarmony
    +关注

    关注

    25

    文章

    3712

    浏览量

    16248
收藏 人收藏

    评论

    相关推荐

    OpenHarmony2.0 一站式编译烧录Hi3516标准系统

    ,进入OpenHarmony2.0标准系统的开机桌面总结标准系统初次编译较慢,后续增量编译一般可以在几分钟之内完成,加上烧录10分钟左右,标准系统的编译烧录一般为十多分钟或者更少,基本
    发表于 07-30 07:12

    OpenHarmony 3.0 LTS 标准系统体验

    本帖最后由 miccn 于 2021-10-2 08:03 编辑 9月30日,OpenHarmony 3.0 LTS版本发布,相比上一版,标准系统新增特性有:1.用户程序框架支持服务能力
    发表于 10-02 07:56

    【直播回顾】OpenHarmony知识赋能第四期直播——标准系统HDF开发

    3月10日晚上19点,OpenHarmony开发者成长计划社群内,我们举办了知识赋能第四期直播课《OpenHarmony标准系统HDF框架介绍》,吸引了数千名开发者线上观看学习,并受到了大家的一致
    发表于 03-11 17:29

    OpenHarmony标准系统编译如何单独编译某个组件?

    在使用Hi3516DV300开发板时,编译OpenHarmony标准系统命令如下:源码根目录执行: ./build.sh --product-name Hi3516DV300 --ccache请问下如果想单独编译某个组件,怎么操作?
    发表于 04-15 10:22

    直播预告丨OpenHarmony标准系统多媒体子系统之音频解读

    社群直播间带来干货分享《OpenHarmony标准系统多媒体子系统之音频解读》,他将详细介绍OpenHarmony音频框架,和大家一起熟悉音频开发接口。长按下方海报扫码,即可预约直播哦
    发表于 05-12 11:31

    直播预告丨OpenHarmony标准系统多媒体子系统之视频解读

    OpenHarmony官方社群直播间带来干货分享《OpenHarmony标准系统多媒体子系统之视频解读》,他将为大家介绍OpenHarmony
    发表于 05-18 10:16

    DAYU200 OpenHarmony标准系统HDMI全屏显示

    1. 前言OpenHarmony标准系统,master分支已经支持HDMI,但是默认的分辨率是采用MIPI的分辨率,所以会导致接上显示器后画面不完整。这里我们可以自己修改代码,关闭MIPI,就可以
    发表于 07-29 12:00

    【润和软件DAYU200开发板体验】移植speexdsp到OpenHarmony标准系统功能演示

    该视频已经同步上传至硬声app,账号名称离北况归移植speexdsp到OpenHarmony标准系统系列文章:【润和软件DAYU200开发板体验】移植speexdsp到OpenHarmony
    发表于 11-06 22:35

    OpenHarmony内核学习[1]--单独编译OpenHarmony标准系统内核

    内核是操作系统的核心,学习掌握OpenHarmony内核对于开发人员至关重要。笔者整理学习OpenHarmony标准系统内核笔记如下:阅读本文大约需要15分钟。
    发表于 02-03 10:46

    OpenHarmony标准系统开机时长优化

    等待几十秒后才能输入导航目的地),在金融交易设备、电子商务服务器、实时通信设备同样也有较高的应用场景,那我们该如何在OpenAtom OpenHarmony(简称OpenHarmony标准系统现有
    发表于 04-10 10:22

    6步玩转OpenHarmony标准芯片适配

    HDI适配。 适配完成之后,修改系统采用CPU点亮屏幕。阶段三 基础硬件适配 ----------------欲知详情,请移步LAVAL社区OpenHarmony
    发表于 08-22 09:10

    OpenHarmony、轻量系统、小型系统标准系统的差异

    本文简单介绍OpenHarmony、轻量系统、小型系统标准系统的差异,以及相关的官方资料和文档。
    的头像 发表于 01-24 14:47 6296次阅读
    <b class='flag-5'>OpenHarmony</b>、轻量<b class='flag-5'>系统</b>、小型<b class='flag-5'>系统</b>、<b class='flag-5'>标准系统</b>的差异

    移植speexdsp到OpenHarmony标准系统

    由于想要分享的内容较多,为避免读者姥爷们失去看下去的耐心,分享将以连载的方式进行。 第一期请点击查看《移植speexdsp到OpenHarmony标准系统① 》,本期为移植speexdsp到
    的头像 发表于 11-30 09:10 910次阅读

    移植speexdsp到OpenHarmony标准系统的第③

    由于想要分享的内容较多,为避免读者姥爷们失去看下去的耐心,分享将以连载的方式进行。 前期回顾:《移植speexdsp到OpenHarmony标准系统② 》《移植speexdsp到
    的头像 发表于 12-01 12:35 1168次阅读

    两百元的OpenHarmony标准系统开发板(软硬件全部开源)

    本文转载于PurplePiOH开发爱好者,作者离北况归大家好,我是离北况归。最近入手了一块OpenHarmony标准系统开发板———触觉智能PurplePiOH,2+16G售价仅249元。它
    的头像 发表于 08-14 10:19 1063次阅读
    两百元的<b class='flag-5'>OpenHarmony</b><b class='flag-5'>标准系统</b>开发板(软硬件全部开源)