RM新时代网站-首页

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

【OpenHarmony標準系統(tǒng)】修改屏幕 DPI(像素密度)

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

一、OpenHarmony源碼中DPI配置

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

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

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

  • DPI為240時
    snapshot_20230227_222808.png
  • DPI為100時
    snapshot_20230227_222044.png
  • DPI為600時
    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文件至設備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 = "http://foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml"
    install_enable = true
···
···
  relative_install_dir = "window/resources"
}
  • 步驟如下
# 進入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ā)板讓設置生效

知識點附送

為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_libraryohos_prebuilt_static_library、ohos_prebuilt_etc。這類目標只支持指定source屬性,拷貝到out目錄時目標文件名與源文件名是一樣的,無法另行指定名字。該pr解決了此限制,添加了output這個可選屬性用于指定目標文件名,不指定的情況下默認與源文件名是一樣的(與原邏輯保持一致)。
  • 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預編譯模板在prebuilt.gni中定義,它們通過調(diào)用ohos_copy模板實現(xiàn)。
    • ohos_copy模板實現(xiàn)了拷貝文件到設備具體位置的功能,它需要定義invoker.sources和invoker.outputs,即source和output屬性。例如image.png
  • ohos_prebuilt_executableohos_prebuilt_shared_library、ohos_prebuilt_static_libraryohos_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屬性,文件名稱被另外指定。沒有則默認為原名稱
  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
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 屏幕
    +關(guān)注

    關(guān)注

    6

    文章

    1196

    瀏覽量

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

    關(guān)注

    8

    文章

    639

    瀏覽量

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

    關(guān)注

    0

    文章

    36

    瀏覽量

    11509
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3713

    瀏覽量

    16254
收藏 人收藏

    評論

    相關(guān)推薦

    OpenHarmony2.0 一站式編譯燒錄Hi3516標準系統(tǒng)

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

    OpenHarmony 3.0 LTS 標準系統(tǒng)體驗

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

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

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

    OpenHarmony標準系統(tǒng)編譯如何單獨編譯某個組件?

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

    直播預告丨OpenHarmony標準系統(tǒng)多媒體子系統(tǒng)之音頻解讀

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

    直播預告丨OpenHarmony標準系統(tǒng)多媒體子系統(tǒng)之視頻解讀

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

    DAYU200 OpenHarmony標準系統(tǒng)HDMI全屏顯示

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

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

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

    OpenHarmony內(nèi)核學習[1]--單獨編譯OpenHarmony標準系統(tǒng)內(nèi)核

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

    OpenHarmony標準系統(tǒng)開機時長優(yōu)化

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

    6步玩轉(zhuǎn)OpenHarmony標準芯片適配

    HDI適配。 適配完成之后,修改系統(tǒng)采用CPU點亮屏幕。階段三 基礎硬件適配 ----------------欲知詳情,請移步LAVAL社區(qū)OpenHarmony
    發(fā)表于 08-22 09:10

    OpenHarmony、輕量系統(tǒng)、小型系統(tǒng)、標準系統(tǒng)的差異

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

    移植speexdsp到OpenHarmony標準系統(tǒng)

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

    移植speexdsp到OpenHarmony標準系統(tǒng)的第③

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

    兩百元的OpenHarmony標準系統(tǒng)開發(fā)板(軟硬件全部開源)

    本文轉(zhuǎn)載于PurplePiOH開發(fā)愛好者,作者離北況歸大家好,我是離北況歸。最近入手了一塊OpenHarmony標準系統(tǒng)開發(fā)板———觸覺智能PurplePiOH,2+16G售價僅249元。它
    的頭像 發(fā)表于 08-14 10:19 ?1065次閱讀
    兩百元的<b class='flag-5'>OpenHarmony</b><b class='flag-5'>標準系統(tǒng)</b>開發(fā)板(軟硬件全部開源)
    RM新时代网站-首页