OpenHarmony SystemUI开发记录
想了解更多关于开源的内容,请访问:
51CTO开源基础软件社区
https://ost.51cto.com
背景介绍
最近学习OpenHarmony应用开发, SDK版本是3.2.9.2 Beta4,IDE版本是3.1.0.200。参考官方文档,做了个Demo应用,调试、运行非常顺利。启动应用后,状态栏和导航栏占用的高度过高,显得很奇怪,尝试修改一下系统应用。
摸石头过河
因为没做过移动端开发,最初以为状态栏和导航栏是由Launcher控制的,从示例中找了个launcher,按照文档进行编译,放在设备上怎么也起不来,Google查了半天,最后发现该版本中文档描述不全,参考最新版本文档进行编译,运行成功。
有了经验之后,使用系统Launcher进行编译,报了一堆错误,哪里报错改哪里,修改完之后编译成功,因为是系统应用,不能使用自动签名。根据官方提供的签名方式进行签名,放到设备中无法显示应用中心和Dock。
看了系统Launcher代码,感觉状态栏和导航栏并不是由Launcher控制的,又下载了系统SystemUI代码,编译时也有几个报错,不知道怎么解决,后来发现下载的代码不对,应该从分支中选择版本,从标签中选择的版本代码可能不全或者有问题。
编译安装踩坑
替换系统应用方法:
// 获取系统目录读写权限hdc shell "mount -o remount,rw /"// 拷贝应用到SystemUI目录hdc file send phone_statusbar-phone_entry-default-signed.hap /system/app/com.ohos.systemui/SystemUI-StatusBar.hap// 应用放在/data目录下,删除/data目录下的所有文件,系统会重新安装系统应用。hdc shell "rm -rf /data/*"// 重启设备hdc shell reboot1、系统应用签名
环境SDK:Beta4,代码:Beta4现象系统应用无法使用自动签名。解决方案参考链接:系统应用签名,我使用的是标准签名。下载material文件夹、OpenHarmony.p12文件、OpenHarmonyApplication.pem文件,放在signature目录下,修改项目中的build-profile.json5文件,添加以下信息,重新编译即可。"products": [{"name": "default","signingConfig": "default"}],"signingConfigs": [{"name": "default","material": {"storePassword": "00000016D9DCF063F0FC4BBD0E7FE1E3B06A67C07BECE1BDD4E2A3EFDAE20F890810EC02AA2A","certpath": "signature/OpenHarmonyApplication.pem","keyAlias": "OpenHarmony Application Release","keyPassword": "00000016FD3897FD4C46940ED39FFC652872B7B18BEDCCA07400A6EBEE307C9C41B96DB6B64D","profile": "signature/systemui.p7b","signAlg": "SHA256withECDSA","storeFile": "signature/OpenHarmony.p12"}}]2、SystemUI编译报错(SDK问题)
环境SDK:Beta4,代码:Beta4现象编译报错,信息如下:> hvigor ERROR: Failed :phone_statusbar:default@CompileArkTS... > hvigor ERROR: Tools execution failed. ArkTS:ERROR File: /xxx/applications_systemui-OpenHarmony-3.2-Beta4/features/batterycomponent/src/main/ets/default/batteryModel.ts:16:25 Cannot find module '@ohos.batteryinfo' or its corresponding type declarations. Module not found: Error: Can't resolve 'bundle/extensionAbilityInfo' in '/xxx/applications_systemui-OpenHarmony-3.2-Beta4/common/src/main/ets/plugindatasource' Module not found: Error: Can't resolve 'bundle/extensionAbilityInfo' in '/xxx/applications_systemui-OpenHarmony-3.2-Beta4/common/src/main/ets/plugindatasource/common' Module not found: Error: Can't resolve 'bundle/metadata' in '/xxx/applications_systemui-OpenHarmony-3.2-Beta4/common/src/main/ets/plugindatasource/common'排查查看API发现bundle目录下没有extensionAbilityInfo和metadata文件,而bundleManager中有这两个文件。解决方案在报错的地方将bundle/extensionAbilityInfo改为bundleManager/extensionAbilityInfo,bundle/metadata改为bundleManager/metadata,编译通过。环境SDK:Beta2,代码:Beta4现象编译报错,信息如下:> hvigor ERROR: Failed :pc_statusbar:default@CompileArkTS... > hvigor ERROR: Tools execution failed. ETS:ERROR File: /xxx/applications_systemui-OpenHarmony-3.2-Beta4/features/batterycomponent/src/main/ets/default/batteryModel.ts:16:25 Cannot find module '@ohos.batteryInfo' or its corresponding type declarations.排查api中info的i为小写,而文件中导入包的时候是大写I。
解决方案将batteryModel.ts文件中大写I改为小写i,即可编译成功,如下:import BatteryInfo from "@ohos.batteryinfo";3、SystemUI应用安装失败
环境SDK:Beta4,代码:Beta4现象替换状态栏应用后,状态栏消失排查使用bm命令手动安装应用报错:手动安装应用bm install -p /system/app/com.ohos.systemui/SystemUI-Status.hap -u 0// 报错信息error: failed to install bundle.error: install releaseType not same报错信息意思是设备中SystemUI中SDK版本与我自己编译的SystemUI SDK版本不一致,查看一下设备中SystemUI的SDK版本:
hdc shell cat /data/app/el1/bundle/public/com.ohos.systemui/phone_statusbar/module.json解决方案:系统中使用的是SDK Beta2,而我编译使用的是SDK Beta4,所以需要将SDK切换到Beta2版本(Beta2编译Beta4版本代码也会有问题,参考:SystemUI编译报错(SDK问题))。4、安装导航栏后状态栏消失
环境SDK:Beta4,代码:Beta2现象单独安装状态栏正常,安装导航栏后状态栏消失排查查看状态栏日志,发现有很多日志没有打出来,追踪了一下,定位到features/statusbarcomponent/src/main/ets/com/ohos/common/StatusBarConfiguration.ts文件中,发现卡在这里
status_bar_size_landscape搜索一下这个字段,发现base/element/string.json文件中存在该字段,zh_CN/element/string.json文件中不存在该字段。(zh_CN/element/string.json添加字段后状态栏正常显示,是什么原因不清楚)
解决方案product/phone/statusbar/src/main/resources/zh_CN/element/string.json文件中添加以下内容:{"name": "status_bar_size_portrait","value": "16"},{"name": "status_bar_size_landscape","value": "16"},{"name": "phone_status_bar_size_portrait","value": "16"},{"name": "phone_status_bar_size_landscape","value": "16"},定制化开发
经过摸索,状态栏和导航栏布局在窗口管理中控制,可以修改模块下的ServiceExtAbility.ts文件来自定义实现,也可以修改配置文件resources/zh_CN/element/string.json中的以下字段,来控制状态栏和导航栏的高度(这里高度不能加单位,按照官网文档的说法默认使用的VP单位)。
{"name": "nav_bar_size_portrait","value": "26"},{"name": "nav_bar_size_landscape","value": "26"},{"name": "status_bar_size_portrait","value": "16"},{"name": "status_bar_size_landscape","value": "16"},总结
做普通应用Demo上手容易,ArkTS做页面布局方便,使用组件点点点即可得到想要的样式。因为使用的是Beta版本,修改SystemUI过程中遇到很多坑,比如编译报错,应用安装失败,应用消失等问题,在Google上基本搜不出来解决方案,只能在官方文档、51CTO社区、华为开发者联盟上搜索、提问来解决。像是安装导航栏后状态栏消失问题,解决起来很容易,但是寻找解决方法要花很长时间,这也是写这篇文章的原因,希望可以帮助开发者解决问题,同时也希望OpenHarmony社区能够建立起来,为开发者答疑解惑。
想了解更多关于开源的内容,请访问:
51CTO开源基础软件社区
https://ost.51cto.com
推荐系统
电脑公司Ghost Win8.1 x32 精选纯净版2022年7月(免激活) ISO镜像高速下载
语言:中文版系统大小:2.98GB系统类型:Win8电脑公司Ghost Win8.1x32位纯净版V2022年7月版本集成了自2022流行的各种硬件驱动,首次进入系统即全部硬件已安装完毕。电脑公司Ghost Win8.1x32位纯净版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,精心挑选的系统维护工具,加上绿茶独有
微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载
语言:中文版系统大小:5.13GB系统类型:Win11微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化 1、保留 Edge浏览器。 2、隐藏“操作中心”托盘图标。 3、保留常用组件(微软商店,计算器,图片查看器等)。 5、关闭天气资讯。
Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载
语言:中文版系统大小:4.75GB系统类型:Win11Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
相关文章
- 小编为网友们带来win8和win7区别讲解
- U盘弹出复制文件出错的9个应对办法
- 如何处理Win8电脑内存不足的问题?
- 使用白云一键重装系统吧
- Winxp系统任务栏分组快速分组的方法
- Win10使用PowerShelll让Cortana朗读小说的设置技巧
- WinXP播放CD时无法从光驱音频输出声音的处理办法
- windows10企业版G无法安装游戏怎么办
- 固态硬盘能数据恢复吗怎么恢复
- win10硬件加速使用经常见问题总结
- 铭瑄b360主板装win7 我算是服了 为了装win7 从6点下班折腾到现在也没成功
- Win10实时保护老是自动开启怎么办解决?Win10自带杀毒永久关闭方法
- 微信朋友圈小视频下载之后保存在啥地方里?_微信
- 新系统新优化 Windows8磁盘优化体验_厂商资讯--浙江_太平洋电脑网PConline
- 运用qq截图的小办法_腾讯QQ
- 怎么设置win7系统打印机共享 win7如何在win7上共享打印机设置打印机共享操作方法【详解】
- QQ钱包查看转账记录办法_腾讯QQ
- win7清理虚拟内存页面的办法
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 4雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1番茄花园 Windows 10 官方企业版 2021年2月(64位) ISO高速下载
- 2Win10最新版本20H2正式版下载_Win10 20H2正式版下载
- 3雨林木风 GHOST WIN7 SP1 X86 专业优化版 V2016.05(32位) 下载
- 4萝卜家园GHOST WIN10 X64 完美装机版v2023.10下载
- 5Win11 22H2正式版最新版本下载_Win11 22H2流畅专业版下载
- 6笔记本&台式机专用系统GhostWin7 64位六一节 旗舰版2020年6月(64位) 高速下载
- 7深度技术 Windows 10 x64 企业版 电脑城装机版2020年10月(64位) 高速下载
- 8深度技术Ghost Win8.1 x32位 办公纯净版2018年8月(免激活) ISO镜像免费下载
- 9Win10 22H2纯净版ghost下载_Win10 22H2 64位纯净版(稳定流畅) 下载
- 10风林火山 GHOST Win7 SP1 装机旗舰版 V2014.05(64位) 下载