Featured image of post 华为 Watch GT 2 Pro 轻量级智能穿戴(Lite Harmony)痛苦开发踩坑

华为 Watch GT 2 Pro 轻量级智能穿戴(Lite Harmony)痛苦开发踩坑

环境配置

其实一开始就是坑最多的一步,DevEco 版本对应着能够使用的 SDK 版本区间、gradlehap 以及 decctest 插件以及附带的 nodejs 版本,并且不同版本之间 SDK 地址和文件组织形式也不同,而这些和应用是否能被正确打包安装有非常大的关系(安装时可能会出现: 82.内部错误)。笔者在多次尝试后选择了 3.0.0.800 (即 DevEco Studio 3.0 Beta2 for HarmonyOS),注意不同版本的 DevEco 生成的初始化工程也不一致,最好每次重新创建工程并迁移重要文件。此处笔者使用的 hap 以及 decctest 插件版本为:

dependencies {
    classpath 'com.huawei.ohos:hap:3.0.5.2'
    classpath 'com.huawei.ohos:decctest:1.2.7.2'
}

对笔者的手表 GT 2 Pro(版本号 11.011.6)而言,最佳实践中指出的支持 API 版本为 6。而实际上在实践中需要设置 compileSdkVersion 为 6,而 compatibleSdkVersion 为 3,否则便会出现 47. 配置文件app.apiVersion 字段不合法。而 API 版本为 6 的 SDK 工具链为 2.2.0,已经无法从 DevEco 中直接下载,好在网络上保存了相关资源 可以自行解压安装。并于 %APPDATA\Huawei\DevEcoStudio3.0options\other.xml 文件中修改 键huawei.sdk.location 对应的值。而如果出现索引 SDK 数量较少,则可能需要改动 %APPDATA\Huawei\DevEcoStudio3.0\options\country.region.xml 中的 USCN

具体的文件组织形式如下,注意也就是把除了 toolchains 的各个工具内再套一个 2.2.0.3 的版本号:

Huawei/
└──  Sdk/
    ├── java/
    │   └── 2.2.0.3/
    ├── js/
    │   └── 2.2.0.3/
    ├── native/
    │   └── 2.2.0.3/
    ├── previewer/
    │   └── 2.2.0.3/
    └── toolchains/

在配置结束后会有报错在 toolchains 中找不到 hdc_std,可通过高版本 DevEco 下载 3.0.0 版本的 toolchains 文件夹并替换即可,但实际不替换在开发过程中也没有遇到很大的问题。

对于 js 工具链中 build-tools/ace-loader 需要通过 npm install 安装,并且可能需要手动移除 package-lock.json 以绕过已经关闭的华为服务器。

MVVM 框架开发

通过参考相关的最佳实践开发文档可学习到基于 MVVM 的 hml+css+js 一套开发范式。其实只要在实现逻辑过程中更加注意到基于模板的框架如何启用禁用及调整风格来控制控件即可。相关 api 调用则依赖 DevEco 的自动补全及自带文档即可。当然,在本工程中,如调用罗盘等方法并未找到。

在上文中提及兼容 API 版本为 3,这就不仅意味着 canvas 等组件不能使用,同时也需要手动设置各个控件的 heightwidth 甚至是 topleft 进行排版,如 this.$refs 的语法也不支持。而在我的个人实践中,我往往采用 Vibe Coding 工具先生成传统 html5+css3+js 网页后再将其手动调整成此编程范式。本工程中则先生成了 Watch Plus CodeGPS Compass 两个中间 demo。

同时需要注意,一个 js 文件的大小不能超过 30KB,这也包括了其 import 的文件。在使用 minify 工具后,我们也要自行注意各个全局变量的名称不能过长。

工程编写后即可通过 previewer 打开 index.hml 进行调试,同样也可以使用虚拟机,两者显示效果区别不大,但 previewer 确实有更好的性能,能带来更好的开发体验。

打包调试

想要进行真机调试,则必须要进行非常繁琐的手动签名。在这之前也要完成华为非常繁琐的实名认证。大多数操作都是在 AppGallery Connect 上完成的。

首先需要在 HarmonyOS (笔者使用的套壳鸿蒙,尝试了小米及联想的设备均不能成功连接上手表) 手机上安装应用调测助手。并通过其获取 UDID 并将其注册在 AppGallery Connect。

随后通过 DevEco 的 Build 选项卡生成 .p12.csr 文件,用后者在网上获取 .cer 证书。

最后申请 APP ID,注意包名与工程 bundleName 保存一致,在申请设备的调试证书 .p7b 并将所有相关文件、密码及别名正确填写在工程中并保存 debug 版本即可得到 *-signed.hap,将其放在手机根目录中的 haps 文件夹下便可通过应用调测助手上传安装至手表(安装过程大概图标小行星转 12 下左右)。

Code

代码放在了 CodeFever

非常推荐先找一些测试工程来排查出现的问题。

参考链接

[1] snowdream: 当Vibe Coding遇上鸿蒙穿戴应用开发 (注: 文中提到的图标大小在本工程中保持 114x114 即可,可能与具体设备有关)

[2] 华为开发者博客: 为鸿蒙(HarmonyOS)运动表开发App

[3] 华为最佳实践文档: 档轻量级智能穿戴

[4] 华为开发框架文档: 兼容JS的类Web开发范式(ArkUI.Lite)

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计