11 月 4 日,首批 HarmonyOS 系統課程開發者張榮超老師為大家帶來了一場主題為《從零開發鴻蒙小遊戲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)發郵件給 [email protected]
郵件中要包含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 個格子的背景色、數字以及數字的顔色。因為該份代碼中大量使用了動态綁定,是以導緻手表的記憶體占用較大,近乎接近臨界值,是以,最好是能對該份代碼再做一些優化。