[文章]

编写HAP应用及开发板上调试端到端指南

2020-9-21 14:51:24  107 鸿蒙OS 鸿蒙系统
分享
1
简介:
本指南讲指导您端到端完成一个示例鸿蒙应用HAP的开发,并利用官方开发板HI3516DV300套件进行真机调试。过程中,我们将用到鸿蒙北向IDE DevEco和南向IDE VSC插件(可选),下载链接请前往鸿蒙官网www.harmonyos.com下载,链接如下:
北向DevEco:
南向IDE:

一、 开发开发板配套的HAP
1.     创建工程
打开DevEco,确保软件运转正常,选择菜单中的File->New->New Project
在以上窗口中选择Lite Wearable和Empty Feature Ability,点击Finish
因为目前DevEco还不支持专门的开发板模板(因为开发板种类众多,后续也不一定会提供支持),所以此处只能选择较为简单的,与开发板类似的Lite Wearable,然后进行修改。
1.     修改config.json
DevEco按照LiteWearable模板生成的工程文件,必须进行修改才能适配开发板,否则无法在开发板中运行,修改包括如下三处:
{
  "app": {
    "bundleName": "com.SZHDG.demo",
    "vendor": "SZHDG",
    "version": {
      "code": 1,
      "name": "1.0"
   
},
    "apiVersion": {
      "compatible": 3,
      "target": 3
    }
  },
  "deviceConfig": {},
  "module": {
    "deviceType": [
      "smartVision"
    ],
    "distro": {
      "deliveryWithInstall": true,
      "moduleName": "entry",
      "moduleType": "entry"
   
},
    "abilities": [
      {
        "name": "default",
        "icon": "$media:SZHDG",
        "label": "SZHDGDemo",
        "type": "page",
        "visible": true
      }
    ],
    "js": [
      {
        "pages": [
          "pages/index/index"
        
],
        "name": "default"
      
}
    ]
  }
}
修改deviceType为smartVision,smartVision是开发板特有的设备类型。在abilities的属性中增加"visible": true,是的ability变为可见,否则执行HAP时无界面显示。修改程序的图标文件"icon": "$media:SZHDG",模板中所用的图标文件为114*114,超出了开发板图标的尺寸,需要制作一个尺寸为88*88的png文件来替代。此文件的保存位置应该为Windows用户目录下的DevEcoStudioProjects\MyApplication1\entry\src\main\resources\base\media,其中MyApplication1是你的工程名。
2.     修改css
.container {
    display: flex;
    justify-content: center;
    align-items: center;
    left: 0px;
    top: 0px;
    width: 960px;
   
height: 480px
;
   
background-color: red;
}
.title {
    font-size: 30px;
    text-align: center;
    width: 800px;
    height: 100px;
}
我们修改了container的宽度和高度,这是因为缺省的Lite Wearable的宽度和高度都是454,而我们的开发板分辨率是960*480,为了确保app铺满整个屏幕,需要修改为屏幕的分辨率。同时,因为我们后面会修改字的内容,增加很多字,所以我们也适当增宽title的宽度。
3.     修改hml
hml文件是鸿蒙app的界面定义文件,我们可以修改此文件以达到增加、修改、删除界面元素的目的。示例中我们进行如下的修改:
<div class="container">
    <text class="title">
        深鸿会 QQ群:665719006
        {{title}}
    </text>

    <input type="button" value="关闭" onclick="Close()">
    </input>

</div>
我们修改了text组件的内容,同时我们增加了一个button类型的input组件,这个按钮将实现关闭应用的功能,我们为其设置了文字以及关联的onclick函数。
4.     修改js
修改js的主要目的是为了增加Close函数,如下:
import app from '@system.app';
export default {
    data: {
        title: 'Shenzhen HarmonyOS Developer Group'
    },
    Close()
   
{
        
app.terminate();
   
}

}
在Close函数中,我们调用了system.app包中的app.terminate方法来关闭app。
5.     编译构建
点击菜单Build->Build APP(s)/Hap(s)->Builddebug Hap(s)来进行debug版本的HAP构建。之所以选择debug版本是因为我们的调试过程并未经过完整的上线发布,无法进行release版本的分发,对于开发阶段而言,也不需要进行release版本的构建。
编译生成的HAP存放在如下的目录:
DevEcoStudioProjects\MyApplication1\build\outputs\hap\debug\smartVision
其中MyApplication1是你的工程名。
一、 安装HAP到开发板上
1.     转移HAP到开发板
编译完成的HAP我们需要转移到开发板上,有两种方式,这里我们介绍采用SD卡的方式。HI3516DV300是支持外插SD卡的,鸿蒙也对外置SD卡进行了支持,所以可以通过用PC拷贝到SD卡上,然后再把SD卡插入到开发板的方式来转移HAP包。需要注意的是,开发板支持的热插拔可能不完善,插入SD卡以后最好重启开发板。
2.     利用bm工具安装
开发板目前并没有集成app包管理软件,所以需要通过命令行工具来进行包的安装。鸿蒙提供了bm工具来进行app管理,bm工具在鸿蒙的构建包中就包含,存在于如下目录:
out/ipcamera_hi3516dv300/dev_tools/bin。bm工具可以和HAP一起放在SD卡中。
执行鸿蒙命令行,需要使用南向IDE,本指南假设您已经完成过鸿蒙的编译和烧写,已经能够熟练使用南向IDE,通过串口线连接南向IDE和开发板,进入鸿蒙shell。在南向IDE提供的串口中执行如下命令:
cd sdcard
./bm set -s disable
./bm set -d enable
./bm install -p test.hap
其中./bm set -s disable关闭了签名校验,./bm set -d enable开启了debug模式,./bm install -p test.hap为安装HAP到鸿蒙系统中,test.hap是你的HAP包的名字。
另外最近钊哥已经完成了对鸿蒙的一个PR,已经被合入主库,修改了bm工具,如果你已经下载了最新的鸿蒙代码,并重新构建过系统,那么上述三条命令可以精简为一条
./bm finstall -p test.hap
执行完安装以后,HAP的图标会出现在开发板屏幕上,如下图:
3.     卸载HAP
开发板自带的launcher具备了HAP卸载能力,可以在界面上长按HAP的图标,在弹出菜单中选择卸载来卸载安装的HAP。
二、 调试测试
1.     启动HAP
在开发板的界面中点击HAP的图标,即可启动HAP,如下图:
2.     观察HAP执行过程
在执行HAP的过程中,请不要断开串口连接,这样相关的HAP执行日志会打在南向IDE的界面上,可以通过观察日志来了解HAP的执行过程,如果出现问题,还可以通过日志信息来进行定位。如下图: