"剩蛋老人"哼着”金顧拜“來了HarmonyOS Device 開發體驗
大家好,我是不務正業的非著名 Copy 攻城獅,此篇應是 Copy 攻城獅 2020 年最後一個”Hello,World“--基于 Harmony OS 的 Hi3861 開發闆進行物聯網應用開發實戰。Copy 攻城獅的“Hello World”之路從來都不是一帆風順的,此次嘗試開(拷)發(貝)物聯網應用也走了不少彎路,最後終于跑通了蜂鳴器版的《Jingle Bells》,預祝大家新年快樂!
環境搭建篇
程式設計界有個傳承了幾十年的”規矩“--入門先從環境搭建開始,有的時候環境搭建比較簡單,比如學習 HTML 程式設計,有浏覽器就行;有時候又比較繁瑣,比如 React Native 開發,需要安裝 NodeJS、Python、Java、Android SDK……而 HarmonyOS Device 開發屬于後者,環境搭建比較繁瑣,比如需要 Linux 系統進行編譯,燒錄到裝置時又需要用到 Windows。如果您還想體驗 Wifi 模組或者“碰一碰”等其他功能,還需要提供熱點及其他裝置。HarmonyOS 官方提供了詳細的環境搭建文檔以及 Hi3861 開發闆介紹理論上跟着文檔走一遍就能正常運作“Hello,HarmonyOS Device”。

盡管如此,不過每個人的開發習慣或者工具口味不一樣,是以在實際搭建環境的時候還是會和官方文檔有些不一樣的地方。由于手頭有點乞丐版的雲主機資源,是以我選擇将他們派上用場,用 Linux 的雲主機作為編譯機,在本地的 Window 10 電腦上安裝 SFTP Drive 将 Linux 雲主機挂載到本機,使得燒錄的時候能直接讀取到 Linux 上的檔案;通過 VSCode 的 Remote SSH 擴充以及 HUAWEI DevEco Device Tool 擴充來開發調試代碼,此外通過某大佬分享的 sscom 序列槽調試工具進行更加便捷的調試。如果您恰好和我一樣的情況,或者您也想嘗試一下我的搭建思路,那我們就開始吧!
1. Windows 環境(開發、調試、燒錄)
在 Windows 上,因為涉及到開發調試,是以我們需要安裝 VS Code 及擴充(也就是插件)、SFTP Drive(燒錄時用來直接通路 Linux 上的檔案)、CH341SER.EXE(USB 轉序列槽驅動)、sscom(可選,方面連接配接序列槽調試)。我這邊本地已經安裝了 VS Code 就不過多贅述,相信大家都安裝了,從我接觸過的幾個軟硬體開發教程都推薦安裝 VS Code,真香!
1.1 Remote - SSH和 SFTP Drive
可能大家會有疑問,這兩個玩意都是通路遠端主機上檔案的,裝一個就行了吧?剛開始我也有同樣的想法,後來在實操中發現:如果隻安裝 Remote - SSSH,燒錄配置時無法讀取遠端檔案;如果隻安裝 SFTP Drive,在編輯代碼時通路遠端檔案非常慢;在座的給位大佬有好的方案的話一定要傳授一下哦。我這裡安裝的是 Remote - SSH,如果您想體驗更多的功能,可以直接安裝 Remote Development,Remote 系列是巨硬公司針對遠端開發而開發的擴充。安裝完 Remote - SSH 之後,為了免密碼登入 Linux(有風險需謹慎),我們需要操作一下 SSH 密鑰配置。
在 VSCode 的 Remote 擴充和 SFTP Drive 中先通過賬号密碼通路遠端主機,確定能正常通路到 Linux 主機中的代碼和檔案。
SSH 密鑰配置的時候,我們可以在遠端主機上生成密鑰,也可以在本機生成密鑰,最終将配置關聯就可以。我們這裡采用的是 Windows 機使用 PowerShell 執行`ssh-keygen`生成密鑰到檔案`C:\Users\您的使用者名\.ssh\id_rsa`(私鑰),同時會生成檔案`C:\Users\您的使用者名\.ssh\id_rsa.pub`(公鑰),通過 SFTP Drive 拷貝公鑰到遠端主機的`~/.ssh`目錄,在 VSCode 中連接配接遠端主機執行指令`cat id_rsa.pub >> authorized_keys`追加到 authorized_keys 中,由于我本機已經有了公鑰私鑰,直接拿來用即可。
此步需注意的是:
完事之後關閉 VSCode 再打開,不出意外再連接配接遠端主機就不需要輸入通路密碼了,徹底告别每次連接配接都要輸密碼的煩惱。
1.2 HUAWEI DevEco Device Tool 及依賴安裝
文章後續内容和附件可以點選下面的原文連結前往學習
原文連結: https://harmonyos.51cto.com/posts/2047#bkwz
想了解更多内容,請通路:
51CTO和華為官方戰略合作共建的鴻蒙技術社群
https://harmonyos.51cto.com/#bkwz