实时:【OpenHarmony标准系统】修改屏幕 DPI(像素密度)
【OpenHarmony标准系统】修改屏幕DPI(像素密度)
2023-05-16 10:05:41
【资料图】
rk3568开发板默认的DPI配置为240,范围为80-640。
240
以下为触觉智能开发板在不同DPI时屏幕的显示情况
DPI为240时DPI为100时DPI为600时240
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 Studiosdk9oolchains>hdc_std shell mount -o remount,rw /# 替换/etc/window/resources中的display_manager_config.xml文件D:DevEco Studiosdk9oolchains>hdc_std file send C:Usersjjhdisplay_manager_config.xml /etc/window/resources然后重启开发板让设置生效
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/templatesohos_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 ]}
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
使能selinuxhdc_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
标签: