1# SystemUI 使用说明 2## 代码使用 3### 代码下载 4#### 配置码云ssh 51. 安装Git 62. 生成公钥,[参考链接](https://gitee.com/help/articles/4181#article-header0) 73. 在码云个人设置-安全设置-ssh公钥中配置公钥 8 9#### 下载代码 10 1. 打开码云SystemUI地址,[下载地址](https://gitee.com/openharmony/applications_systemui) 11 2. 选择克隆/下载 - https方式 -复制下载地址 12 3. 本机git bash 中执行: 13 ``` 14 git clone '复制的下载地址' 15 ``` 16 17### 环境搭建 181. 安装DevEco Studio 192. 按照操作指引安装OpenHarmony SDK 20 21## 基础开发说明 22### 系统接口调用 23#### NAPI接口集成 24- 导入指定模块 25``` JavaScript 26import bundle from '@ohos.bundle'; 27``` 28- 调用模块中的相应函数 29``` JavaScript 30bundle.getApplicationInfos().then(data => { 31 32}); 33``` 34### 异步回调的使用 35- 在需要回调操作的ets文件中创建回调函数 36```JavaScript 37subscribeCallback(err, data){ 38 // do something 39}, 40``` 41- 调用应用内部封装的接口,并传入回调函数 42```JavaScript 43Notification.subscribe(mSubscriber, this.subscribeCallback.bind(this)); 44``` 45- 在AsyncCallback返回数据时可以获取到错误信息或目标数据 46```JavaScript 47subscribeCallback(err, data) { 48 Log.showInfo(TAG, 'subscribeCallback finished ====================' + JSON.stringify(data)); 49} 50``` 51### 如何引用资源文件 52- 在.ets文件中,可直接通过$r()引用资源 53```` JavaScript 54this.title = this.$r('app.string.hello_world'); 55```` 56 57## 典型接口的使用 58 1. 获取电池状态接口 59 ``` JavaScript 60 import BatteryInfo from '@ohos.batteryInfo' 61 // 根据TS的文件描述,获取对应的电池属性 62 63 batterySOC = BatteryInfo.batterySOC; // 电池剩余电量 0~100; 64 batteryCharging = BatteryInfo.chargingStatus; // 电池充电状态 65 ``` 66 2. 返回按键 67 ``` JavaScript 68 import input from '@ohos.injectEventHandler' 69 // 在触摸开始及结束时分别调用 70 onTouchStart(){ 71 let res = input.injectEventSync({ 72 isPressed: true, // 是否为按下 73 keyCode: 2, // 对应code 74 keyDownDuration: 1 // keydown 时长 75 }); 76 }, 77 onTouchStop(){ 78 let res = input.injectEventSync({ 79 isPressed: false, // 是否为按下 80 keyCode: 2, // 对应code 81 keyDownDuration: 1 // keydown 时长 82 }); 83 } 84 ``` 85## 签名打包 86### 签名 87#### 签名文件的获取 881. 拷贝OpenHarmony标准版 工程的 OpenHarmony\signcenter_tool 目录到操作目录 892. 拷贝SystemUI 工程的 signature\systemui.p7b 到该目录下 90#### 签名文件的配置 91打开项目工程,选择 File → Project Structure 92 93 94 95选择 Project → Signing Configs,将对应的签名文件配置如下,完成后点击Apply,再点击OK。 96 97 98 99## 安装、运行、调试 100## 应用安装 101配置 hdc: 102进入SDK目录中的toolchains文件夹下,获取文件路径: 103 104 105 106> 注意,此处的hdc.exe如果版本较老,可能不能正常使用,需要获取新的hdc.exe文件 107> hdc命令介绍与下载详见:[hdc仓库地址](https://gitee.com/openharmony/developtools_hdc_standard) 108 109 110并将此路径配置到环境变量中: 111 112 113 114重启电脑使环境变量生效 115 116连接开发板,打开cmd命令窗口,执行hdc list targets,弹出窗口如下: 117 118 119 120等待一段时间后,窗口出现如下打印,可回到输入 hdc list targets 的命令窗口继续操作: 121 122 123 124再次输入hdc list targets,出现如下结果,说明hdc连接成功 125 126 127 128获取读写权限: 129 130``` 131hdc target mount 132``` 133将签名好的 hap 包放入设备的 `/system/app/com.ohos.systemui` 目录下,并修改hap包的权限 134 135``` 136hdc file send 本地路径 /system/app/com.ohos.systemui/hap包名称 137例如:hdc file send SystemUI-StatusBar.hap /system/app/com.ohos.systemui/SystemUI-StatusBar.hap 138``` 139## 应用运行 140SystemUI属于系统应用,在将签名的 hap 包放入 `/system/app/com.ohos.systemui` 目录后,重启系统,应用会自动拉起。 141``` 142hdc shell 143reboot 144(不可以直接执行hdc reboot,命令是无效的) 145``` 146> 注意,如果设备之前安装过系统应用,则需要执行如下两条命令清除设备中存储的应用信息才能够在设备重启的时候将我们装入设备的新 hap 包正常拉起。 147> ``` 148> hdc shell rm -rf /data/misc_de/0/mdds/0/default/bundle_manager_service 149> hdc shell rm -rf /data/accounts 150> ``` 151## 应用调试 152### log打印 153- 在程序中添加 log 154```JS 155import hilog from '@ohos.hilog'; 156hilog.info(0x0001, "SystemUI", "%{public}s World %{private}d", "hello", 3); 157``` 158### log获取及过滤 159- log获取 160 161 162将log输出至文件 163``` 164hdc shell hilog > 输出文件名称 165``` 166 167例: 168在真实环境查看log,将全log输出到当前目录的hilog.log文件中 169``` 170hdc shell hilog > hilog.log 171``` 172 173- log过滤 174 175在命令行窗口中过滤log 176``` 177hilog │ grep 过滤信息 178``` 179 180例:过滤包含信息 Label 的 hilog 181``` 182hilog │ grep Label 183``` 184## 贡献代码 185### Fork 代码仓库 1861. 在码云上打开 SystemUI 代码仓库([仓库地址](https://gitee.com/openharmony/applications_systemui))。 187 1882. 点击仓库右上角的 Forked 按钮,在弹出的画面中,选择将仓库 fork 到哪里,点击确认。 189 1903. Fork 成功之后,会在自己的账号下看见 fork 的代码仓库。 191 192### 提交代码 1931. 访问我们自己在码云账号上 fork 的代码仓库,点击“克隆/下载”按钮,选择 SSH/HTTPS,点击“复制”按钮。 194 1952. 在本地新建 SystemUI 目录,在 SystemUI 目录中执行如下命令 196 ``` 197 git clone 步骤1中复制的地址 198 ``` 199 2003. 修改代码。 201 202 > 将代码引入工程,以及编译工程等相关内容请参见 **3. 代码使用** 部分的相关内容。 2034. 提交代码到 fork 仓库。 204 > 修改后的代码,首先执行 `git add` 命令,然后执行 `git commit` 命令与 `git push` 命令,将代码 push 到我们自己的 fork 仓中。 205 > 关于代码提交的这部分内容涉及 git 的使用,可以参照 [git官网](https://git-scm.com/) 的内容,在此不再赘述。 206 207### 发起 Pull Request (PR) 208在将代码提交到 fork 仓之后,我们可以通过发起 Pull Request(PR)的方式来为 OpenHarmony 的相关项目贡献代码。 209 2101. 打开 fork 仓库。选择 `Pull Requests` → `新建 Pull Request` 211 2122. 在 `新建 Pull Request` 画面填入标题与说明,点击 `创建` 按钮。 213 2143. 创建 Pull Request 完成。 PR 创建完成后,会有专门的代码审查人员对代码进行评审,评审通过之后会合入相应的代码库。