OpenHarmony默认的亮度范围为0 ~ 255(0代表最小亮度,255代表最大亮度),是系统和所有应用窗口的亮度调节范围。部分显示设备受到其硬件约束,亮度调节范围无法达到0 ~ 255,即无法达到默认的亮度调节范围。为此OpenHarmony提供了系统亮度范围定制方式,在与不同显示设备适配时,产品定制开发者可根据显示设备自身硬件条件灵活调整系统亮度范围。
基本概念
系统亮度: OpenHarmony系统全局的亮度,调节后会使所有应用窗口亮度范围更改为定制的系统亮度范围。
窗口亮度: 某个应用窗口的亮度,调节后只影响此窗口,窗口退出后,恢复为系统亮度。当设置窗口亮度后,此窗口的亮度不受系统亮度的影响。
约束与限制
OpenHarmony系统参数为各系统服务提供简单易用的键值对访问接口,使得各个系统服务可以通过各自的系统参数来进行业务功能的配置。系统亮度范围的定制基于此特性实现。
开发指导
搭建环境
设备要求:
标准系统开发板,如DAYU200/Hi3516DV300开源套件。
环境要求:
Linux调测环境,相关要求和配置可参考《快速入门》。
开发步骤
-
参考默认亮度范围配置文件夹创建目标文件夹,并安装到相应目录,文件格式如下:
etc ├── BUILD.gn ├── display.para ├── display.para.dac
-
参考默认亮度范围配置文件夹中的display.para编写定制的display.para。包含定制后的亮度阈值,以max=150,default=75,min=50为例:
# Brightness limits is 0-255. const.display.brightness.min=50 const.display.brightness.default=75 const.display.brightness.max=150
-
参考默认亮度范围配置文件夹中的display.para.dac编写display.para.dac数据访问控制文件,保证有权限解析定制后的配置:
const.display.brightness.="foundation:foundation:444"
-
参考默认亮度范围配置文件夹中的BUILD.gn编写BUILD.gn文件,将display.para和display.para.dac打包到/vendor/etc/param目录下,例如:
import("//base/powermgr/display_manager/displaymgr.gni") import("//build/ohos.gni") ## Install display.para to /vendor/etc/param/display.para ohos_prebuilt_etc("display.para") { source = "display.para" relative_install_dir = "param" install_images = [ chipset_base_dir ] part_name = "${displaymgr_part_name}" subsystem_name = "powermgr" } ohos_prebuilt_etc("display.para.dac") { source = "display.para.dac" relative_install_dir = "param" install_images = [ chipset_base_dir ] part_name = "${displaymgr_part_name}" subsystem_name = "powermgr" } group("param_files") { deps = [ ":display.para", ":display.para.dac", ] }
-
参考默认亮度范围配置bundle.json编写bundle.json文件,使BUILD.gn文件进行编译,例如:
"service_group": [ "//base/powermgr/display_manager/service/etc:param_files" ]
“//base/powermgr/display_manager/service”为文件夹路径,“etc”为创建的文件夹名字。
-
参考《快速入门》编译定制版本,以编译DAYU200为例,编译命令如下:
./build.sh --product-name rk3568 --ccache
-
将定制版本烧录到DAYU200开发板中。
调测验证
-
开机后,先进入shell命令行:
hdc shell
-
执行下列命令,观察console输出。
hidumper -s 3308 -a -a
-
console输出的是定制后的系统亮度阈值,如:
定制系统亮度阈值之前,默认为:
----------------------------------DisplayPowerManagerService--------------------------------- DISPLAY POWER MANAGER DUMP: Display Id=0 State=2 Discount=1.000000 Brightness=102 DeviceBrightness=102 Support Ambient Light: FALSE Auto Adjust Brightness: OFF Brightness Limits: Max=255 Min=5 Default=102
本节以Max=150 Min=50 Default=75为例,更改之后:
# cd vendor/etc/param # ls display.para thermal.para usb.para.dac display.para.dac thermal.para.dac # cat display.para # Copyright (C) 2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Brightness limits is 0-255. const.display.brightness.min=50 const.display.brightness.default=75 const.display.brightness.max=150# # # cd # hidumper -s 3308 -a -a -------------------------------[ability]-------------------------------
----------------------------------DisplayPowerManagerService---------------------------------
DISPLAY POWER MANAGER DUMP:
Display Id=0 State=0 Discount=1.000000 Brightness=75
DeviceBrightness=75
Support Ambient Light: FALSE
Auto Adjust Brightness: OFF
Brightness Limits: Max=150 Min=50 Default=75
```
- 系统全局的亮度阈值统一为定制后的,如设置中的亮度调节。
最后
有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。
这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!
如果你是一名有经验的资深Android移动开发、Java开发、前端开发、对鸿蒙感兴趣以及转行人员,可以直接领取这份资料
获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙(HarmonyOS NEXT)最新学习路线
-
HarmonOS基础技能
- HarmonOS就业必备技能
- HarmonOS多媒体技术
- 鸿蒙NaPi组件进阶
- HarmonOS高级技能
- 初识HarmonOS内核
- 实战就业级设备开发
有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开发入门教学视频》
《鸿蒙生态应用开发V2.0白皮书》
《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建
《鸿蒙开发基础》
- ArkTS语言
- 安装DevEco Studio
- 运用你的第一个ArkTS应用
- ArkUI声明式UI开发
- .……
《鸿蒙开发进阶》
- Stage模型入门
- 网络管理
- 数据管理
- 电话服务
- 分布式应用开发
- 通知与窗口管理
- 多媒体技术
- 安全技能
- 任务管理
- WebGL
- 国际化开发
- 应用测试
- DFX面向未来设计
- 鸿蒙系统移植和裁剪定制
- ……
《鸿蒙进阶实战》
- ArkTS实践
- UIAbility应用
- 网络案例
- ……
获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。