• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# CallUI 使用说明
2
3## 1. 代码使用
4### 1.1 代码下载
5#### 1.1.1 配置码云ssh
6(1)打开本地 git bash 窗口
7
8(2)进入到 .ssh 目录:cd ~/.ssh
9
10(3)找到 id_rsa.pub 文件:ls
11
12(4)查看公钥:cat id_rsa.pub
13
14(5)在码云(个人设置-安全设置-ssh公钥)中配置公钥
15
16
17
18#### 1.1.2下载代码
19
20(1)搜索并打开gitee,点击导航栏里面的开源软件,搜索openharmony,点击进入openharmony,搜索applications_call,下载地址[applications_call](https://gitee.com/openharmony/applications_call)
21
22(2)选择克隆/下载 - ssh方式 -复制下载地址
23
24(3)本机git bash 中执行:
25
26 ```
27 git clone '复制的下载地址'
28 ```
29
30
31
32### 1.2 环境搭建
33
34* 打开DevEco Studio链接下载安装,安装步骤及安装说明详见下载见官网
35
36
37## 2. 基础开发说明
38### 2.1 系统接口调用
39### 2.2 异步回调的使用
40- 在需要回调操作的ets文件中创建回调函数
41```JavaScript
42subscribeCallback(err, data)
43{
44    // do something
45}
46```
47- 调用应用内部封装的接口,并传入回调函数
48```JavaScript
49Notification.subscribe(mSubscriber, this.subscribeCallback.bind(this));
50```
51- 在AsyncCallback返回数据时可以获取到错误信息或目标数据
52```JavaScript
53subscribeCallback(err, data)
54{
55    Log.showInfo(TAG, 'subscribeCallback finished ====================' + JSON.stringify(data));
56}
57```
58
59
60
61### 2.3 如何引用资源文件
62
63#### 2.3.1 访问系统资源
64
65```
66this.title = this.$s('sys.type.name');
67```
68
69
70
71#### 2.3.2 访问应用资源
72
73* 将应用资源放在工程的resources/base/element文件夹下的对应 .json 文件中,可通过$r()的方式引用资源
74* 例如:引用字符串资源
75
76```` JavaScript
77this.title = this.$r('app.string.hello_world');
78````
79
80
81
82## 3. 典型接口的使用
83
84```
85import dataStorage from '@ohos.data.storage';
86   onCreate() {
87        LOG.info(TAG + 'AceApplication onCreate');
88        this.initDataStorage();
89    },
90    async initDataStorage() {
91        let context = featureAbility.getContext();
92        let path = await context.getFilesDir();
93        this.globalData.storage = dataStorage.getStorageSync(path + this.globalData.path);
94    },
95```
96
97
98
99## 4. 签名打包
100
101### 4.1 签名
102(1)打开项目工程,选择 File → Project Structure
103
104![](../doc/image/signature_1.png)
105
106
107
108(2)选择 Project → Signing Configs,添加StorePassword:123456abc,KeyPassword:123456abc,
109    依次填入下图中,完成后点击Apply,再点击OK
110
111![](../doc/image/signature_2.png)
112
113
114
115(3)配置完成后,对应的build.gradle文件中会出现如下内容
116
117![](../doc/image/signature_3.png)
118
119
120
121### 4.2 打包
122
123* DevEco Studio 支持 debug 与 release 两种打包类型。可以在 OhosBuild Variants 窗口中进行切换
124
125 ![](../doc/image/ds_ohosbuild_variants.png)
126
127
128
129#### 4.2.1 debug打包
130
131(1)代码准备完成后,在 OhosBuild Variants 窗口的 Selected Variant 中选择 debug
132
133![](../doc/image/ds_ohosbuild_variants_debug.png)
134
135
136
137(2)选择Build → Build Haps(s)/APP(s) → Build Hap(s)
138
139![](../doc/image/ds_build_haps.png)
140
141
142
143(3)编译完成后,hap包会生成在工程目录下的 `\build\outputs\hap\debug\phone\`路径下(如果没有配置签名,则只会生成未签名的hap包)
144
145![](../doc/image/ds_ohosbuild_variants_release.png)
146
147
148
149#### 4.2.2 release打包
150
151(1)代码准备完成后,在 OhosBuild Variants 窗口的 Selected Variant 中选择 release
152
153![](../doc/image/ds_ohosbuild_variants_release.png)
154
155
156
157(2)选择Build → Build Haps(s)/APP(s) → Build Hap(s)
158
159![](../doc/image/ds_build_haps.png)
160
161
162
163(3)编译完成后,hap包会生成在工程目录下的 `\build\outputs\hap\release\phone\`路径下(配置好签名后,生成的hap包会显示signed)
164
165![](../doc/image/ds_ohosbuild_output_dir_release.png)
166
167
168
169## 5. 安装、运行、调试
170
171### 5.1 应用安装
172(1)配置 hdc:进入SDK目录中的toolchains文件夹下,获取文件路径:
173
174![](../doc/image/sdk_catalogue.png)
175
176> 注意,此处的hdc.exe如果版本较老,可能不能正常使用,需要获取新的hdc.exe文件
177> hdc命令介绍与下载详见:[hdc仓库地址](https://gitee.com/openharmony/developtools_hdc_standard)
178
179
180
181(2)并将此路径配置到环境变量中,重启电脑使环境变量生效
182
183![](../doc/image/sdk_environment_variable.png)
184
185
186
187(3)连接开发板,打开cmd命令窗口,执行hdc list targets,弹出窗口如下:
188
189![](../doc/image/cmd1.png)
190
191
192
193(4)等待一段时间后,窗口出现如下打印,可回到输入 hdc list targets 的命令窗口继续操作
194
195![](../doc/image/cmd2.png)
196
197
198
199(5)再次输入hdc list targets,出现如下结果,说明hdc连接成功
200
201![](../doc/image/cmd3.png)
202
203
204
205(6)获取读写权限:
206
207```
208hdc target mount
209```
210
211
212(7)将签名好的 hap 包放入设备的 `/system/app` 目录下,并修改hap包的权限
213
214```
215hdc file send 本地路径 /system/app/hap包名称
216例如:hdc file send CallUI.hap /system/app/CallUI.hap
217```
218> 注意,如果设备不存在 `/system/app` 目录,则需要手动创建该目录并修改权限。
219> ```
220> hdc shell
221> cd system
222> mkdir app
223> chmod 777 app
224> ```
225> `/system/app` 目录放置系统应用,例如:CallUI等。
226>
227> 但hap包需要在该目录下手动设置权限
228> ```
229> chmod 666 hap包名
230> ```
231> 此目录应用不用手动安装,系统自动拉起。
232
233
234
235### 5.2 应用运行
236
237* applications_call属于系统应用,在将签名的 hap 包放入 `/system/app` 目录后,重启系统,应用会自动拉起
238
239```
240hdc shell reboot
241```
242> 注意,如果设备之前安装过系统应用,则需要执行如下两条命令清除设备中存储的应用信息才能够在设备重启的时候将我们装入设备的新 hap 包正常拉起。
243>
244> ```
245> hdc shell "mount -o remount,rw /"
246> hdc shell rm -rf  /system/app/hap247> hdc file send  hap当前路径   /system/app/hap248> hdc shell "rm /data/* -rf"
249> hdc shell "sync"
250> hdc shell "/system/bin/udevadm trigger"
251> hdc shell "reboot"
252> ```
253>
254
255
256
257### 5.3 应用调试
258
259#### 5.3.1 log打印
260- 在程序中添加 log
261```JS
262console.info("callui log info");
263```
264
265
266
267#### 5.3.2 log获取及过滤
268
269- log获取
270
271将log输出至文件
272```
273hdc shell hilog > 输出文件名称
274```
275
276例:在真实环境查看log,将全log输出到当前目录的hilog.log文件中
277```
278hdc shell hilog > hilog.log
279```
280
281
282
283- log过滤
284
285在命令行窗口中过滤log
286```
287hilog │ grep 过滤信息
288```
289
290例:过滤包含信息 Label 的 hilog
291```
292hilog │ grep Label
293```
294
295
296
297## 6. 贡献代码
298
299### 6.1 Fork 代码仓库
300(1)在码云上打开 applications_call代码仓库([仓库地址](https://gitee.com/openharmony/applications_call)301
302(2)点击仓库右上角的 Forked 按钮,在弹出的画面中,选择将仓库 fork 到个人仓,点击确认
303
304(3)Fork 成功之后,会在自己的账号下看见 fork 的代码仓库
305
306
307
308### 6.2 提交代码
309
310(1)访问我们自己在码云账号上 fork 的代码仓库,点击“克隆/下载”按钮,选择 SSH,点击“复制”按钮
311
312(2)在本地新建 CallUI文件夹,在 CallUI文件夹中执行如下命令
313```
314git clone 步骤1中复制的地址
315```
316
317(3)修改代码
318
319(4)提交代码到 fork 仓库。
320> 修改后的代码,使用git status 查看修改代码,执行 `git add` 命令,然后执行 `git commit` 命令与 `git push` 命令,将代码 push 到我们自己的 fork 仓中。关于代码提交的这部分内容涉及 git 的使用,可以参照 [git官网](https://git-scm.com/) 的内容,在此不再赘述。
321
322
323
324### 6.3 发起 Pull Request (PR)
325
326* 在将代码提交到 fork 仓之后,我们可以通过发起 Pull Request(PR)的方式来为 OpenHarmony 的相关项目贡献代码。
327
328(1)打开 fork 仓库。选择 `Pull Requests` → `新建 Pull Request`
329
330(2)在 `新建 Pull Request` 页面填入标题与说明,点击 `创建` 按钮
331
332(3)创建 Pull Request 完成。 PR 创建完成后,会有专门的代码审查人员对代码进行评审,评审通过之后会合入相应的代码库