• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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![](../figures/signature_1.png)
94
95选择 Project → Signing Configs,将对应的签名文件配置如下,完成后点击Apply,再点击OK。
96
97![](../figures/signature_2.png)
98
99## 安装、运行、调试
100## 应用安装
101配置 hdc:
102进入SDK目录中的toolchains文件夹下,获取文件路径:
103
104![](../figures/screenshot-20210521-105407.png)
105
106> 注意,此处的hdc.exe如果版本较老,可能不能正常使用,需要获取新的hdc.exe文件
107> hdc命令介绍与下载详见:[hdc仓库地址](https://gitee.com/openharmony/developtools_hdc_standard)
108
109
110并将此路径配置到环境变量中:
111
112![](../figures/screenshot-20210521-111223.png)
113
114重启电脑使环境变量生效
115
116连接开发板,打开cmd命令窗口,执行hdc list targets,弹出窗口如下:
117
118![](../figures/cmd1.png)
119
120等待一段时间后,窗口出现如下打印,可回到输入 hdc list targets 的命令窗口继续操作:
121
122![](../figures/cmd2.png)
123
124再次输入hdc list targets,出现如下结果,说明hdc连接成功
125
126![](../figures/cmd3.png)
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 创建完成后,会有专门的代码审查人员对代码进行评审,评审通过之后会合入相应的代码库。