0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【OpenHarmony標(biāo)準(zhǔn)系統(tǒng)】修改屏幕 DPI(像素密度)

OpenHarmony開發(fā)經(jīng)驗(yàn) ? 來源:OpenHarmony開發(fā)經(jīng)驗(yàn) ? 作者:OpenHarmony開發(fā)經(jīng)驗(yàn) ? 2023-05-16 10:21 ? 次閱讀

一、OpenHarmony源碼中DPI配置

rk3568開發(fā)板默認(rèn)的DPI配置為240,范圍為80-640。

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

以下為觸覺智能開發(fā)板在不同DPI時(shí)屏幕的顯示情況

  • DPI為240時(shí)
    snapshot_20230227_222808.png
  • DPI為100時(shí)
    snapshot_20230227_222044.png
  • DPI為600時(shí)
    snapshot_20230227_222534.png

二、更改開發(fā)板的DPI

方法一:更改源碼編譯燒錄固件

  • 在源碼foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml文件中修改dpi,編譯后燒錄固件。
<dpi>240<span class="hljs-name"dpi>

方法二:發(fā)送display_manager_config.xml文件至設(shè)備etc/window/resources

  • OpenHarmony固件編譯燒錄進(jìn)入設(shè)備后,display_manager_config.xml文件會(huì)被預(yù)編譯打包至設(shè)備端etc/window/resources目錄下,什么,為什么只有window/resources字段,因?yàn)閛hos_prebuilt_etc就是把文件放進(jìn)設(shè)備的etc文件夾
foundation/window/window_manager/resources/config/BULID.gn文件如下,
下面代碼的意思是源碼foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml會(huì)真正安裝在設(shè)備中的etc/window/resources文件位置,

ohos_prebuilt_etc("display_manager_config") {
  if (device_name == "rk3568") {
    source = "http://foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml"
    install_enable = true
···
···
  relative_install_dir = "window/resources"
}
  • 步驟如下
# 進(jìn)入sdk版本號	oolchain輸入cmd打開命令行,重新加載系統(tǒng)為可讀寫
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

然后重啟開發(fā)板讓設(shè)置生效

知識點(diǎn)附送

為ohos_prebuilt_XXX類目標(biāo)添加支持指定output屬性的能力

  • 以該pr學(xué)習(xí) https://gitee.com/openharmony/build/pulls/822/files 為ohos_prebuilt_XXX類目標(biāo)添加支持指定output屬性的能力。
  • ohos_prebuilt_XXX類目標(biāo)是指ohos_prebuilt_executableohos_prebuilt_shared_library、ohos_prebuilt_static_library、ohos_prebuilt_etc。這類目標(biāo)只支持指定source屬性,拷貝到out目錄時(shí)目標(biāo)文件名與源文件名是一樣的,無法另行指定名字。該pr解決了此限制,添加了output這個(gè)可選屬性用于指定目標(biāo)文件名,不指定的情況下默認(rèn)與源文件名是一樣的(與原邏輯保持一致)。
  • OpenHarmony編譯構(gòu)建子系統(tǒng)是基于Gn和ninja的,而gn本身是有原生模板(source_set,shared_library, static_library, action, executable,group)。gn也支持用戶自定義編譯模板,OpenHarmony編譯子系統(tǒng)提供了一系列自定義的模板(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預(yù)編譯模板在prebuilt.gni中定義,它們通過調(diào)用ohos_copy模板實(shí)現(xiàn)。
    • ohos_copy模板實(shí)現(xiàn)了拷貝文件到設(shè)備具體位置的功能,它需要定義invoker.sources和invoker.outputs,即source和output屬性。例如image.png
  • ohos_prebuilt_executable、ohos_prebuilt_shared_library、ohos_prebuilt_static_library、ohos_prebuilt_etc(下面用ohos_prebuilt_xxx代指)添加支持指定output屬性的能力的相關(guān)代碼如下
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屬性,文件名稱被另外指定。沒有則默認(rèn)為原名稱
  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="
# 重啟設(shè)備
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="
# 重啟設(shè)備
hdc_std shell reboot
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 屏幕
    +關(guān)注

    關(guān)注

    6

    文章

    1199

    瀏覽量

    55800
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    641

    瀏覽量

    29208
  • DPI
    DPI
    +關(guān)注

    關(guān)注

    0

    文章

    37

    瀏覽量

    11512
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3722

    瀏覽量

    16313
收藏 人收藏

    評論

    相關(guān)推薦

    迅為RK3588開發(fā)板Android 系統(tǒng)修改屏幕分辨率和 density

    )如下圖所示: wm size 1080x1920 wm size 輸入以下命令查詢像素密度,如下圖所示: wm density 輸入以下命令修改像素
    發(fā)表于 12-27 11:07

    OpenHarmony2.0 一站式編譯燒錄Hi3516標(biāo)準(zhǔn)系統(tǒng)

    ,進(jìn)入OpenHarmony2.0標(biāo)準(zhǔn)系統(tǒng)的開機(jī)桌面總結(jié)標(biāo)準(zhǔn)系統(tǒng)初次編譯較慢,后續(xù)增量編譯一般可以在幾分鐘之內(nèi)完成,加上燒錄10分鐘左右,標(biāo)準(zhǔn)系統(tǒng)的編譯燒錄一般為十多分鐘或者更少,基本
    發(fā)表于 07-30 07:12

    OpenHarmony 3.0 LTS 標(biāo)準(zhǔn)系統(tǒng)體驗(yàn)

    本帖最后由 miccn 于 2021-10-2 08:03 編輯 9月30日,OpenHarmony 3.0 LTS版本發(fā)布,相比上一版,標(biāo)準(zhǔn)系統(tǒng)新增特性有:1.用戶程序框架支持服務(wù)能力
    發(fā)表于 10-02 07:56

    【直播回顧】OpenHarmony知識賦能第四期直播——標(biāo)準(zhǔn)系統(tǒng)HDF開發(fā)

    3月10日晚上19點(diǎn),OpenHarmony開發(fā)者成長計(jì)劃社群內(nèi),我們舉辦了知識賦能第四期直播課《OpenHarmony標(biāo)準(zhǔn)系統(tǒng)HDF框架介紹》,吸引了數(shù)千名開發(fā)者線上觀看學(xué)習(xí),并受到了大家的一致
    發(fā)表于 03-11 17:29

    OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編譯如何單獨(dú)編譯某個(gè)組件?

    在使用Hi3516DV300開發(fā)板時(shí),編譯OpenHarmony標(biāo)準(zhǔn)系統(tǒng)命令如下:源碼根目錄執(zhí)行: ./build.sh --product-name Hi3516DV300 --ccache請問下如果想單獨(dú)編譯某個(gè)組件,怎么操作?
    發(fā)表于 04-15 10:22

    直播預(yù)告丨OpenHarmony標(biāo)準(zhǔn)系統(tǒng)多媒體子系統(tǒng)之音頻解讀

    社群直播間帶來干貨分享《OpenHarmony標(biāo)準(zhǔn)系統(tǒng)多媒體子系統(tǒng)之音頻解讀》,他將詳細(xì)介紹OpenHarmony音頻框架,和大家一起熟悉音頻開發(fā)接口。長按下方海報(bào)掃碼,即可預(yù)約直播哦
    發(fā)表于 05-12 11:31

    直播預(yù)告丨OpenHarmony標(biāo)準(zhǔn)系統(tǒng)多媒體子系統(tǒng)之視頻解讀

    OpenHarmony官方社群直播間帶來干貨分享《OpenHarmony標(biāo)準(zhǔn)系統(tǒng)多媒體子系統(tǒng)之視頻解讀》,他將為大家介紹OpenHarmony
    發(fā)表于 05-18 10:16

    DAYU200 OpenHarmony標(biāo)準(zhǔn)系統(tǒng)HDMI全屏顯示

    1. 前言OpenHarmony標(biāo)準(zhǔn)系統(tǒng),master分支已經(jīng)支持HDMI,但是默認(rèn)的分辨率是采用MIPI的分辨率,所以會(huì)導(dǎo)致接上顯示器后畫面不完整。這里我們可以自己修改代碼,關(guān)閉MIPI,就可以
    發(fā)表于 07-29 12:00

    【潤和軟件DAYU200開發(fā)板體驗(yàn)】移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)功能演示

    該視頻已經(jīng)同步上傳至硬聲app,賬號名稱離北況歸移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)系列文章:【潤和軟件DAYU200開發(fā)板體驗(yàn)】移植speexdsp到OpenHarmony標(biāo)
    發(fā)表于 11-06 22:35

    OpenHarmony內(nèi)核學(xué)習(xí)[1]--單獨(dú)編譯OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核

    內(nèi)核是操作系統(tǒng)的核心,學(xué)習(xí)掌握OpenHarmony內(nèi)核對于開發(fā)人員至關(guān)重要。筆者整理學(xué)習(xí)OpenHarmony標(biāo)準(zhǔn)系統(tǒng)內(nèi)核筆記如下:閱讀本文大約需要15分鐘。
    發(fā)表于 02-03 10:46

    OpenHarmony標(biāo)準(zhǔn)系統(tǒng)開機(jī)時(shí)長優(yōu)化

    等待幾十秒后才能輸入導(dǎo)航目的地),在金融交易設(shè)備、電子商務(wù)服務(wù)器、實(shí)時(shí)通信設(shè)備同樣也有較高的應(yīng)用場景,那我們該如何在OpenAtom OpenHarmony(簡稱OpenHarmony標(biāo)準(zhǔn)系統(tǒng)現(xiàn)有
    發(fā)表于 04-10 10:22

    OpenHarmony、輕量系統(tǒng)、小型系統(tǒng)、標(biāo)準(zhǔn)系統(tǒng)的差異

    本文簡單介紹OpenHarmony、輕量系統(tǒng)、小型系統(tǒng)標(biāo)準(zhǔn)系統(tǒng)的差異,以及相關(guān)的官方資料和文檔。
    的頭像 發(fā)表于 01-24 14:47 ?6436次閱讀
    <b class='flag-5'>OpenHarmony</b>、輕量<b class='flag-5'>系統(tǒng)</b>、小型<b class='flag-5'>系統(tǒng)</b>、<b class='flag-5'>標(biāo)準(zhǔn)系統(tǒng)</b>的差異

    移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)

    由于想要分享的內(nèi)容較多,為避免讀者姥爺們失去看下去的耐心,分享將以連載的方式進(jìn)行。 第一期請點(diǎn)擊查看《移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)① 》,本期為移植speexdsp到
    的頭像 發(fā)表于 11-30 09:10 ?924次閱讀

    移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的第③

    由于想要分享的內(nèi)容較多,為避免讀者姥爺們失去看下去的耐心,分享將以連載的方式進(jìn)行。 前期回顧:《移植speexdsp到OpenHarmony標(biāo)準(zhǔn)系統(tǒng)② 》《移植speexdsp到
    的頭像 發(fā)表于 12-01 12:35 ?1180次閱讀

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發(fā)板演示

    開源鴻蒙OpenHarmony系統(tǒng)下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,搭載了瑞芯微RK3566四核處
    的頭像 發(fā)表于 12-24 11:46 ?152次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么<b class='flag-5'>修改</b><b class='flag-5'>DPI</b><b class='flag-5'>密度</b>值?觸覺智能RK3566鴻蒙開發(fā)板演示