19 Star 42 Fork 121

OpenHarmony / applications_systemui

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
Instructions.md 6.70 KB
Copy Edit Raw Blame History
lizhi authored 2022-08-11 11:29 . [SystemUI]整改HiLog

SystemUI 使用说明

代码使用

代码下载

配置码云ssh

  1. 安装Git
  2. 生成公钥,参考链接
  3. 在码云个人设置-安全设置-ssh公钥中配置公钥

下载代码

  1. 打开码云SystemUI地址,下载地址
  2. 选择克隆/下载 - https方式 -复制下载地址
  3. 本机git bash 中执行:
git clone '复制的下载地址'

环境搭建

  1. 安装DevEco Studio
  2. 按照操作指引安装OpenHarmony SDK

基础开发说明

系统接口调用

NAPI接口集成

  • 导入指定模块
import bundle from '@ohos.bundle';
  • 调用模块中的相应函数
bundle.getApplicationInfos().then(data => {

});

异步回调的使用

  • 在需要回调操作的ets文件中创建回调函数
subscribeCallback(err, data){
    // do something
},
  • 调用应用内部封装的接口,并传入回调函数
Notification.subscribe(mSubscriber, this.subscribeCallback.bind(this));
  • 在AsyncCallback返回数据时可以获取到错误信息或目标数据
subscribeCallback(err, data) {
    Log.showInfo(TAG, 'subscribeCallback finished ====================' + JSON.stringify(data));
}

如何引用资源文件

  • 在.ets文件中,可直接通过$r()引用资源
this.title = this.$r('app.string.hello_world');

典型接口的使用

  1. 获取电池状态接口
import BatteryInfo from '@ohos.batteryInfo'
// 根据TS的文件描述,获取对应的电池属性

batterySOC = BatteryInfo.batterySOC; // 电池剩余电量 0~100;
batteryCharging = BatteryInfo.chargingStatus; // 电池充电状态
  1. 返回按键
import input from '@ohos.injectEventHandler'
// 在触摸开始及结束时分别调用
onTouchStart(){
    let res = input.injectEventSync({
         isPressed: true,  // 是否为按下
         keyCode: 2, // 对应code
         keyDownDuration: 1 // keydown 时长
     });
},
onTouchStop(){
    let res = input.injectEventSync({
             isPressed: false, // 是否为按下
             keyCode: 2, // 对应code
             keyDownDuration: 1 // keydown 时长
    });
}

签名打包

签名

签名文件的获取

  1. 拷贝OpenHarmony标准版 工程的 OpenHarmony\signcenter_tool 目录到操作目录
  2. 拷贝SystemUI 工程的 signature\systemui.p7b 到该目录下

签名文件的配置

打开项目工程,选择 File → Project Structure

选择 Project → Signing Configs,将对应的签名文件配置如下,完成后点击Apply,再点击OK。

安装、运行、调试

应用安装

配置 hdc: 进入SDK目录中的toolchains文件夹下,获取文件路径:

注意,此处的hdc.exe如果版本较老,可能不能正常使用,需要获取新的hdc.exe文件
hdc命令介绍与下载详见:hdc仓库地址

并将此路径配置到环境变量中:

重启电脑使环境变量生效

连接开发板,打开cmd命令窗口,执行hdc list targets,弹出窗口如下:

等待一段时间后,窗口出现如下打印,可回到输入 hdc list targets 的命令窗口继续操作:

再次输入hdc list targets,出现如下结果,说明hdc连接成功

获取读写权限:

hdc target mount 

将签名好的 hap 包放入设备的 /system/app/com.ohos.systemui 目录下,并修改hap包的权限

hdc file send 本地路径 /system/app/com.ohos.systemui/hap包名称
例如:hdc file send SystemUI-StatusBar.hap /system/app/com.ohos.systemui/SystemUI-StatusBar.hap

应用运行

SystemUI属于系统应用,在将签名的 hap 包放入 /system/app/com.ohos.systemui 目录后,重启系统,应用会自动拉起。

hdc shell
reboot
(不可以直接执行hdc reboot,命令是无效的)

注意,如果设备之前安装过系统应用,则需要执行如下两条命令清除设备中存储的应用信息才能够在设备重启的时候将我们装入设备的新 hap 包正常拉起。

hdc  shell rm -rf  /data/misc_de/0/mdds/0/default/bundle_manager_service
hdc  shell rm -rf  /data/accounts

应用调试

log打印

  • 在程序中添加 log
import hilog from '@ohos.hilog';
hilog.info(0x0001, "SystemUI", "%{public}s World %{private}d", "hello", 3);

log获取及过滤

  • log获取

将log输出至文件

hdc shell hilog > 输出文件名称

例: 在真实环境查看log,将全log输出到当前目录的hilog.log文件中

hdc shell hilog > hilog.log
  • log过滤

在命令行窗口中过滤log

hilog │ grep 过滤信息

例:过滤包含信息 Label 的 hilog

hilog │ grep Label

贡献代码

Fork 代码仓库

  1. 在码云上打开 SystemUI 代码仓库(仓库地址)。

  2. 点击仓库右上角的 Forked 按钮,在弹出的画面中,选择将仓库 fork 到哪里,点击确认。

  3. Fork 成功之后,会在自己的账号下看见 fork 的代码仓库。

提交代码

  1. 访问我们自己在码云账号上 fork 的代码仓库,点击“克隆/下载”按钮,选择 SSH/HTTPS,点击“复制”按钮。

  2. 在本地新建 SystemUI 目录,在 SystemUI 目录中执行如下命令

    git clone 步骤1中复制的地址
  3. 修改代码。

    将代码引入工程,以及编译工程等相关内容请参见 3. 代码使用 部分的相关内容。

  4. 提交代码到 fork 仓库。

    修改后的代码,首先执行 git add 命令,然后执行 git commit 命令与 git push 命令,将代码 push 到我们自己的 fork 仓中。 关于代码提交的这部分内容涉及 git 的使用,可以参照 git官网 的内容,在此不再赘述。

发起 Pull Request (PR)

在将代码提交到 fork 仓之后,我们可以通过发起 Pull Request(PR)的方式来为 OpenHarmony 的相关项目贡献代码。

  1. 打开 fork 仓库。选择 Pull Requests新建 Pull Request

  2. 新建 Pull Request 画面填入标题与说明,点击 创建 按钮。

  3. 创建 Pull Request 完成。 PR 创建完成后,会有专门的代码审查人员对代码进行评审,评审通过之后会合入相应的代码库。

1
https://gitee.com/openharmony/applications_systemui.git
git@gitee.com:openharmony/applications_systemui.git
openharmony
applications_systemui
applications_systemui
master

Search