11 月 4 日,首批 HarmonyOS 系统课程开发者张荣超老师为大家带来了一场主题为《从零开发鸿蒙小游戏APP》的精彩公开课,课上很多网友提出了自己关心的问题,下面我们就来和大家分享其中的精华部分:

使用 flipper 监控鸿蒙模拟器的网络请求 模拟器体验鸿蒙_App

01

如何将开发的 Lite Wearable 项目部署在鸿蒙手表 Watch GT2 Pro 真机上?

步骤(1)生成秘钥和证书请求文件

链接:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/create_csr-0000001053702411

步骤(2)在手机中安装 App:应用调测助手,通过该 App 获得鸿蒙手表的 udid,点击主界面中的复制按钮,可以复制手表的 udid。

步骤(3)给项目起一个包名(Package name)

起的包名是任意的,例如:com.test.lwdemo。以后每次创建 Lite Wearable 项目时,都要使用该包名。

步骤(4)发邮件给 agconnect@huawei.com

邮件中要包含4样东西:步骤(1)中的两个文件,步骤(2)中的 udid,步骤(3)中的包名。

步骤(5)官方回复邮件

回复的邮件中包含两个文件:.p7b 文件

.cer 文件

步骤(6)在 DevEco Studio 中创建一个 Lite Wearable 的项目

创建项目时的 Package Name,请使用步骤(3)中的包名。

步骤(7)在 DevEco Studio 中进行配置

在菜单栏中选择 File,然后点击 Project Structure,在弹出窗口中做如下配置:

步骤(8)在 DevEco Studio 中构建签名的 hap 包

在菜单栏中选择 Build,在弹出的菜单中点击 Build App(s)/Hap(s),然后点击 Build Debug Hap(s)。

生成的签名 hap 包所在的路径为:\build\outputs\hap\debug\liteWearable。

步骤(9)将签名的 hap 包拷贝到手机的指定位置

在手机的 sd 卡根目录中新建一个名为haps的目录,将步骤(8)中的 hap 包拷贝到 haps 目录中。

步骤(10)将手机中的 hap 包通过 App 应用调测助手安装到手表中

打开步骤(2)中安装的 App 应用调测助手,在主界面中点击按钮“应用管理”,在新打开的页面中就可以看到手机中的 hap 包了。

点击 hap 包后面的按钮“安装”,就可以将 hap 包安装到手表中了。安装完成后,应用调测助手中会跳出提示“安装完成”。

02

在 Lite Wearable 上开发的项目,如何做到“一次开发,多端部署”(直接部署在 Wearable 和 TV 这两个平台上)

要点(1)Lite Wearable 属于轻鸿蒙,Wearable 和 TV 属于富鸿蒙

轻鸿蒙和富鸿蒙在项目配置上目前是不统一的,比如富鸿蒙目前需要有 Java 的 shell,而轻鸿蒙是没有的,所以在 DevEco Studio 中轻鸿蒙和富鸿蒙的项目是不能通用的,还不能做到同一个项目支撑两套开发。

但是,在 Lite Wearable 平台上编写的 JS 代码文件是可以直接复用到 Wearable 或 TV 的项目里面的。

要点(2)通过指定 deviceType,可以让同一个项目在多个轻鸿蒙设备或多个富鸿蒙设备上通用

例如:Wearable 和 TV 都属于富鸿蒙。新建一个 Wearable 的项目,在项目的文件 config.json 中,deviceType 的值默认是 ["wearable"]。

如果将 deviceType 的取值修改为 ["wearable", "tv"],那么这个 Wearable 的项目就可以直接运行在 TV 平台上。

03

就目前而言,相对于 Wearable 和 TV 这两个平台,为什么说在 Lite Wearable 这个平台上相关的开发工具是最全面、最稳定的,并且给开发者的体验是最好的?

要点(1)鸿蒙手表 Watch GT2 Pro 已经上市

既然都已经上市了,所以相关的开发工具是最全面、最稳定的!

要点(2)Lite Wearable 既有本地的预览器,又有本地的模拟器

如果选择 Wearable 和 TV 这两个平台进行 App 的开发,目前华为还没有开放基于 X86 的本地模拟器,因此,需要将编写的代码发送到远程的 ARM 处理器以运行代码,在本机上只能预览运行结果,而无法在本机上运行和调试代码。

因此,就目前而言,Wearable 和 TV 这两个平台,给开发者的体验是相对不太好的。

但是,如果我们选择 Lite Wearable 这个平台,那就不一样了,既可以使用本机的预览器 Previewer 来预览代码的运行效果,也可以使用本机的模拟器 simulator 来运行和调试代码,因此,就目前而言,Lite Wearable 这个平台给开发者的体验是最棒的!

04

开发 Lite Wearable 的 App,可以使用的编程语言有哪些?支持 Python、C# 或 C++ 吗?

要点(1)作为第三方开发者,开发 Lite Wearable 的 App,只能使用编程语言 JavaScript。

开发 Wearable 的 App,可以使用的编程语言有:JavaScript、Java。

开发 TV 的 App,可以使用的编程语言有:JavaScript、Java。

开发手机的 App,可以使用的编程语言有:JavaScript、Java。

短期内,对于第三方开发者,不会支持其它编程语言,包括:Python、C#、C++、等等。

要点(2)对于鸿蒙手表 Watch GT2 Pro 中预装的 App,华为内部的工程师在开发时还可以使用编程语言 C++。

C++ 只供华为内部的工程师使用,目前没有对第三方开发者开发,以后是否会开放,还要看鸿蒙团队的考量。

05

老师在直播中有提到:鸿蒙对 HTML、CSS 和 JavaScript 做了很多裁剪和优化,具体做了哪些裁剪和优化呢?

目前官方还没有发布一个完整详细的 list,来说明具体做了哪些裁剪和优化。

如果有 Web 前端开发的经验,可以阅读开源框架 ace_lite_jsfwk 的源代码,这是一个轻量级的 JS 核心开发框架,地址为:https://gitee.com/openharmony/ace_lite_jsfwk

06

在 JS 代码中调用文件存储或数据存储相关的 API 时,只能"写"数据,而无法"读"数据,请问如何操作才能读到数据呢?

这是预览器 Previewer 和模拟器 simulator 的一个 bug,我已经将这个 bug 反馈给官方,官方会在本月中旬发布一个新版本以修复该 bug。

07

当把编译之后的签名 hap 包安装到鸿蒙手表 Watch GT2 Pro 之后,在预览器或模拟器看到的页面显示效果,与在真机看到的显示效果并不是完全一致的,请问如何解决才能让两者有一致的显示效果?

这是预览器 Previewer 和模拟器 simulator 的一个 bug,我已经将这个 bug 反馈给官方,官方会在本月中旬发布一个新版本以修复该 bug。

08

老师共享的 2048 游戏代码中,对于 index.hml 中的组件 canvas,在 canvas 的下方显示了一个红色的波浪线,把鼠标放上去,提示说:是一个未知的组件,这是什么原因呢?

目前,官方还没有正式 release 组件 canvas,因此在其下方会显示一个红色的波浪线,但是,并不影响代码的运行。

之前共享给大家的 2048 游戏代码,仍然是可以正常运行在预览器或模拟器中的。

因为组件 canvas 还没有正式 release,所以,之前共享给大家的2048游戏代码,无法正常运行在鸿蒙手表 Watch GT2 Pro 中。

为此,这里再为大家提供一份 2048 的游戏代码(可以到附件中下载)。

该代码没有使用组件 canvas,而是采取另外一种实现思路:当滑动时,去更换 16 个格子的背景色、数字以及数字的颜色。因为该份代码中大量使用了动态绑定,所以导致手表的内存占用较大,近乎接近临界值,因此,最好是能对该份代码再做一些优化。