• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AdminProvisioning 使用说明
2## 代码使用
3### 代码下载
4#### 配置码云ssh
51. 打开本地git bash窗口。
62. 进入到.ssh 目录:```cd ~/.ssh```。
73. 找到id_rsa.pub文件:```ls```。
84. 查看公钥:```cat id_rsa.pub```。
95. 在码云个人设置-安全设置-ssh公钥中配置公钥。
10
11#### 下载代码
121. 打开码云AdminProvisioning地址([下载地址](https://gitee.com/openharmony/applications_admin_provisioning))。
132. 选择克隆/下载 - ssh方式 -复制下载地址。
14
15    ![](image/ssh_1.png)
16
173. 本机git bash 中执行。
18     ```
19       git clone '复制的下载地址'
20     ```
21
22### 环境搭建
23打开DevEco Studio链接下载安装,安装步骤及安装说明详见开发者网站。
24
25## 基础开发说明
26### 系统接口调用
27#### NAPI接口集成
281. 导入指定模块。
29    ``` JavaScript
30      import bundle from '@ohos.bundle';
31    ```
322. 调用模块中的相应函数。
33    ``` JavaScript
34      bundle.getApplicationInfos().then(data => {
35
36      });
37    ```
38### 异步回调的使用
391. 在需要回调操作的ets文件中创建回调函数。
40    ```JavaScript
41      subscribeCallback(err, data){
42        // do something
43      },
44    ```
452. 调用应用内部封装的接口,并传入回调函数。
46    ```JavaScript
47      Notification.subscribe(mSubscriber, this.subscribeCallback.bind(this));
48    ```
493. 在AsyncCallback返回数据时可以获取到错误信息或目标数据。
50    ```JavaScript
51      subscribeCallback(err, data) {
52        Log.showInfo(TAG, 'subscribeCallback finished ====================' + JSON.stringify(data));
53      }
54    ```
55### 如何引用资源文件
56在.ets文件中,可直接通过$r()引用资源。
57``` JavaScript
58  this.title = this.$r('app.string.hello_world');
59```
60
61## 典型接口的使用
621. 获取电池状态接口。
63    ``` JavaScript
64      import BatteryInfo from '@ohos.batteryInfo'
65      // 根据TS的文件描述,获取对应的电池属性
66
67      batterySOC = BatteryInfo.batterySOC; // 电池剩余电量 0~100;
68      batteryCharging = BatteryInfo.chargingStatus; // 电池充电状态
69    ```
702. 返回按键。
71    ``` JavaScript
72      import input from '@ohos.injectEventHandler'
73      // 在触摸开始及结束时分别调用
74      onTouchStart(){
75        let res = input.injectEventSync({
76               isPressed: true,  // 是否为按下
77               keyCode: 2, // 对应code
78               keyDownDuration: 1 // keydown 时长
79           });
80      },
81      onTouchStop(){
82        let res = input.injectEventSync({
83                  isPressed: false, // 是否为按下
84                  keyCode: 2, // 对应code
85                  keyDownDuration: 1 // keydown 时长
86        });
87      }
88    ```
89## 签名打包
90### 签名
91#### 签名文件的获取
921. 拷贝OpenHarmony标准版 工程的 prebuilts\signcenter 目录到操作目录。
932. 拷贝AdminProvisioning工程的 signature\adminprovisioning.p7b 到该目录下。
94#### 签名文件的配置
951. 打开项目工程,选择 File → Project Structure。
96
97    ![](image/signature_1.png)
98
992. 选择 Project → Signing Configs,将对应的签名文件配置如下,完成后点击Apply,再点击OK。
100
101    ![](image/signature_2.png)
102
1033. 配置完成后,对应的build.gradle文件中会出现如下内容。
104
105    ![](image/signature_3.png)
106### 打包
107DevEco Studio 支持 debug 与 release 两种打包类型。可以在 OhosBuild Variants 窗口中进行切换。
108
109   ![](image/ds_ohosbuild_variants.png)
110
111#### debug打包
1121. 代码准备完成后,在 OhosBuild Variants 窗口的 Selected Variant 中选择 debug。
113
114   ![](image/ds_ohosbuild_variants_debug.png)
115
1162. 选择Build → Build Haps(s)/APP(s) → Build Hap(s)。
117
118   ![](image/ds_build_haps.png)
119
1203. 编译完成后,hap包会生成在工程目录下的 `\build\outputs\hap\debug\phone\`路径下(如果没有配置签名,则只会生成未签名的hap包)。
121
122   ![](image/ds_ohosbuild_variants_release.png)
123#### release打包
1241. 代码准备完成后,在 OhosBuild Variants 窗口的 Selected Variant 中选择 release。
125
126    ![](image/ds_ohosbuild_variants_release.png)
127
1282. 选择Build → Build Haps(s)/APP(s) → Build Hap(s)。
129
130   ![](image/ds_build_haps.png)
131
1323. 编译完成后,hap包会生成在工程目录下的 `\build\outputs\hap\release\phone\`路径下(配置好签名后,生成的hap包会显示signed)。
133
134   ![](image/ds_ohosbuild_output_dir_release.png)
135## 安装、运行、调试
136### 应用安装
1371. 配置 hdc:进入SDK目录中的toolchains文件夹下,获取文件路径。
138
139    ![](image/sdk_catalogue.png)
140
141> ![icon-note.gif](image/icon-note.gif) **说明:**
142> 若此处的hdc.exe版本较老,可能不能正常使用,需要获取新的hdc.exe文件。hdc命令介绍与下载详见:[hdc仓库地址](https://gitee.com/openharmony/developtools_hdc)
143
144
1452. 并将此路径配置到环境变量中。
146
147    ![](image/sdk_environment_variable.png)
148
1493. 重启电脑使环境变量生效。
150
1514. 连接开发板,打开cmd命令窗口,执行```hdc list targets```,弹出窗口如下。
152
153    ![](image/cmd1.png)
154
1555. 等待一段时间后,窗口出现如下打印,可回到输入 ```hdc list targets``` 的命令窗口继续操作。
156
157    ![](image/cmd2.png)
158
1596. 再次输入```hdc list targets```,出现如下结果,说明hdc连接成功。
160
161    ![](image/cmd3.png)
162
1637. 获取读写权限。
164
165    ```
166      hdc target mount
167    ```
1688. 将签名好的 hap 包放入设备的 `/system/app` 目录下,并修改hap包的权限。
169
170    ```
171      hdc file send 本地路径 /system/app/hap包名称
172      例如:hdc file send adminprovisioning.hap /system/app/adminprovisioning.hap
173    ```
174> ![icon-note.gif](image/icon-note.gif) **说明:**
175> 如果设备不存在 `/system/app` 目录,则需要手动创建该目录并修改权限。
176> ```
177>   hdc shell
178>   cd system
179>   mkdir app
180>   chmod 777 app
181> ```
182> `/system/app` 目录放置系统应用,例如:Launcher,SystemUI,Settings 等。但hap包需要在该目录下手动设置权限。
183> ```
184>   chmod 666 hap包名
185> ```
186> 此目录应用不用手动安装,系统自动拉起。
187### 应用运行
188AdminProvisioning属于系统应用,在将签名的 hap 包放入 `/system/app` 目录后,重启系统,应用会自动拉起。
189    ```
190      hdc shell
191      reboot(不可以直接执行hdc reboot,命令是无效的)
192    ```
193> ![icon-note.gif](image/icon-note.gif) **说明:**
194> 如果设备之前安装过系统应用,则需要执行如下两条命令清除设备中存储的应用信息才能够在设备重启的时候将当前装入设备的新 hap 包正常拉起。
195> ```
196>   hdc shell rm -rf  /data/misc_de/0/mdds/0/default/bundle_manager_service
197>   hdc shell rm -rf  /data/accounts
198> ```
199### 应用调试
200#### log打印
2011. 在程序中添加 log。
202    ```JS
203      console.info("adminprovisioning log info");
204    ```
205#### log获取及过滤
2061. log获取。
207
208    ```
209      将log输出至文件。
210      hdc shell hilog > 输出文件名称
211    ```
212
213    ```
214      例:在真实环境查看log,将全log输出到当前目录的hilog.log文件中。
215      hdc shell hilog > hilog.log
216    ```
217
2182. log过滤。
219
220    ```
221      在命令行窗口中过滤log。
222      hilog │ grep 过滤信息
223    ```
224
225    ```
226      例:过滤包含信息 Label 的 hilog。
227      hilog │ grep Label
228    ```
229## 贡献代码
230### Fork 代码仓库
2311. 在码云上打开 AdminProvisioning 代码仓库([仓库地址](https://gitee.com/openharmony/applications_admin_provisioning))。
232
2332. 点击仓库右上角的 Fork 按钮,在弹出的画面中,点击确认,选择将仓库 Fork 。
234
2353. Fork 成功之后,会在自己的账号下看见 fork 的代码仓库。
236
237### 提交代码
2381. 访问自己在码云账号上 fork 的代码仓库,点击“克隆/下载”按钮,选择 SSH,点击“复制”按钮。
239
240    ![](image/ssh_1.png)
241
2422. 在本地新建 AdminProvisioning 目录,在 AdminProvisioning 目录中执行如下命令。
243   ```
244   git clone 步骤1中复制的地址
245   ```
246
2473. 修改代码。
248   将代码引入工程,以及编译工程等相关内容请参见 **代码使用章节** 部分的相关内容。
249
2504. 提交代码到 fork 仓库。
251   修改后的代码,首先执行 `git add` 命令,然后执行 `git commit` 命令与 `git push` 命令,将代码 push 到自己的 fork 仓中。
252   关于代码提交的这部分内容涉及 git 的使用,可以参照 [git官网](https://git-scm.com/) 的内容,在此不再赘述。
253
254### 发起 Pull Request (PR)
255在将代码提交到 fork 仓之后,可以通过发起 Pull Request(PR)的方式来为 OpenHarmony 的相关项目贡献代码。
256
2571. 打开 fork 仓库。选择 `Pull Requests` → `新建 Pull Request`。
258
2592. 在 `新建 Pull Request` 画面填入标题与说明,点击 `创建` 按钮。
260
2613. 创建 Pull Request 完成。 PR 创建完成后,会有专门的代码审查人员对代码进行评审,评审通过之后会合入相应的代码库。