關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容
來(lái)源 | GitHub科技
本文面向的是開(kāi)發(fā)人員,主要想通過(guò)科普讓大家了解一下鴻蒙開(kāi)發(fā)。
到底什么是鴻蒙 OS
在官網(wǎng)上看到鴻蒙 OS 的簡(jiǎn)介是,分布式能力造就新硬件、新交互、新服務(wù),打開(kāi)煥然一新的全場(chǎng)景世界。以及發(fā)布會(huì)提及最多是他的萬(wàn)物互連,全場(chǎng)景,分布式,微內(nèi)核,軟總線。
換句話說(shuō),鴻蒙OS 是為全場(chǎng)景,分布式設(shè)計(jì)的,微內(nèi)核,軟總線是他重要的實(shí)現(xiàn)。
對(duì)于全場(chǎng)景,分布式理解,我們可以想一下華為自家的多屏協(xié)作,以及電腦,平板和手機(jī)可以很方便實(shí)現(xiàn)在電腦上操作平板,手機(jī)。
另外現(xiàn)在雙 11 買到的一些新上市家電,上面可以看到鴻蒙的小 Logo,這些帶上鴻蒙的家電,可以通過(guò)碰一碰無(wú)需安裝 App 實(shí)現(xiàn)配置組網(wǎng),也十分方便。
在華為開(kāi)發(fā)者大會(huì)上,華為也展示了一些精彩的案例。大家有興趣回頭翻一翻。這些都是通過(guò)全場(chǎng)景,分布式特性做到的新交互和體驗(yàn),十分讓人期待。
到此應(yīng)該有一個(gè)疑問(wèn),如果不用鴻蒙 OS,能不能實(shí)現(xiàn)以上交互?多屏協(xié)同,多設(shè)備協(xié)同?
答案是可以的,官方有提到,他們把鴻蒙 OS 一些能力,例如分布式提出來(lái)放到 EMUI 上。
我們?cè)谌A為的開(kāi)發(fā)平臺(tái)上可以看到一些 kit 和鴻蒙有關(guān)的有設(shè)備虛擬化、HiCar、HiLink、碰一碰等。
這些 kit 是可以讓設(shè)備在不上鴻蒙的情況下,實(shí)現(xiàn)全場(chǎng)景,分布式。他們做的類似做一個(gè)中間層,App 和設(shè)備端分別接入這些 kit 的 sdk。
那么和直接用鴻蒙 OS 有什么區(qū)別呢?開(kāi)發(fā)會(huì)上官方給出了答案,不上鴻蒙也是可以實(shí)現(xiàn)的,不過(guò)鴻蒙 OS 的性能會(huì)更好一點(diǎn)。
聊一下 kit
我比較感興趣的是設(shè)備虛擬化能力和碰一碰。
設(shè)備虛擬化能力(DeviceVirtualization Engine),是通過(guò)虛擬化技術(shù)將相關(guān)設(shè)備或器件打造成手機(jī)器件或能力的延伸。
它可以將家中的電視、攝像頭和音箱虛擬為手機(jī)的屏幕、Camera 和 Mic/Speaker,將穿戴設(shè)備作為手機(jī)的虛擬 Sensor,實(shí)現(xiàn)手機(jī)為中心的全場(chǎng)景體驗(yàn)。
此處又應(yīng)該有疑問(wèn),這個(gè)設(shè)備虛擬化和我們平時(shí)用的投屏,藍(lán)牙音箱有什么區(qū)別?
靈活性,投屏,藍(lán)牙音箱,藍(lán)牙話筒是實(shí)現(xiàn)單一功能設(shè)備。用戶可以根據(jù)需要選擇所需的設(shè)備。
應(yīng)用級(jí)的,舉個(gè)例子,可能開(kāi)會(huì)需要,在會(huì)議 App 才需要話筒音箱。來(lái)電了依然是用手機(jī)上的話筒聽(tīng)筒。
可擴(kuò)展性,,除了常見(jiàn)的多媒體。他這個(gè)還支持外接傳感器,馬達(dá),消息通知等。
碰一碰能力(OneHop Engine)是通過(guò) NFC 來(lái)解決 App 跨設(shè)備接續(xù)難、設(shè)備配網(wǎng)難、傳輸難的問(wèn)題的一個(gè)方案。
他們定義了一些常見(jiàn)的場(chǎng)景下的功能方向以及兩種集成方案:
例如,美的電器接入碰一碰可以做到免安裝配網(wǎng)。這點(diǎn)十分方便,特別是家有老人。
之前的配網(wǎng)流程起碼分成 3 步,安裝 App,掃碼,配置。而這套方案就只要 3 秒。
應(yīng)用開(kāi)發(fā)
鴻蒙 OS 目前開(kāi)放了應(yīng)用開(kāi)發(fā)和設(shè)備開(kāi)發(fā)。應(yīng)用開(kāi)發(fā)是我們的重頭戲,可以為搭載鴻蒙的智慧屏、手表、車機(jī)開(kāi)發(fā)應(yīng)用。
開(kāi)發(fā)可以使用 Java 和 JS 語(yǔ)言。Java 開(kāi)發(fā)的話,跟 Android 開(kāi)發(fā)差不多。
這里注意的是通過(guò) JS 開(kāi)發(fā)的話,但是通過(guò) Htm 并非 html 來(lái)寫 UI。在語(yǔ)法上類似 vue。
JS 引擎是 JerryScript,能夠在內(nèi)存少于 64KB 的設(shè)備上執(zhí)行 ECMAScript 5.1 源代碼。
那實(shí)際上下面要提到的設(shè)備開(kāi)發(fā)邏輯是也可以部分用 JS 實(shí)現(xiàn)的。不過(guò)官方文檔比較少,也沒(méi)有 demo 提供。單個(gè) js runtime 是可以作為組件一起編譯燒錄的。
應(yīng)用開(kāi)發(fā)中,我比較感興趣的是跨設(shè)備調(diào)用,下面這個(gè)例子是從智慧屏 App 上調(diào)用其他設(shè)備頁(yè)面的。
這里可以看到優(yōu)點(diǎn)十分明顯,在這里我們開(kāi)發(fā)無(wú)需關(guān)心通信,以及傳輸安全問(wèn)題。
在智慧屏上這么寫,在手表上也是這么寫。也就是他們說(shuō)的一次開(kāi)發(fā)多端部署,提供成熟方案,不用放更多精力在安全機(jī)制,組網(wǎng)連接和基礎(chǔ)通信上。聚焦業(yè)務(wù),快速完成原型開(kāi)發(fā)。
但也有一些約束與限制:
支持主設(shè)備側(cè)遠(yuǎn)程啟動(dòng)從設(shè)備側(cè) FA,不支持從設(shè)備遠(yuǎn)程啟動(dòng)主設(shè)備 FA。
需要同一局域網(wǎng)內(nèi)。
需要認(rèn)證,當(dāng)前只支持擁有共同公鑰信息的主從設(shè)備間 FA(即主從設(shè)備的 FA 使用相同華為證書(shū))的拉起。
工具鏈還需完善,如果選擇智能手表和智慧屏這兩個(gè)平臺(tái)進(jìn)行 App 的開(kāi)發(fā),目前華為還沒(méi)有開(kāi)放基于 X86 的本地模擬器。
因此,需要將編譯后安裝到遠(yuǎn)程的 ARM 處理器以運(yùn)行代碼,在本機(jī)上只能預(yù)覽運(yùn)行結(jié)果,而無(wú)法在本機(jī)上運(yùn)行和調(diào)試代碼。開(kāi)發(fā)效率相對(duì)慢一點(diǎn),相信華為后面應(yīng)該會(huì)補(bǔ)齊。
設(shè)備開(kāi)發(fā)
針對(duì)設(shè)備開(kāi)發(fā)者,OpenHarmony 采用了組件化的設(shè)計(jì)方案,可以根據(jù)設(shè)備的資源能力和業(yè)務(wù)特征進(jìn)行靈活裁剪,滿足不同形態(tài)的終端設(shè)備對(duì)于操作系統(tǒng)的要求。
可運(yùn)行在百 K 級(jí)別的資源受限設(shè)備和穿戴類設(shè)備,也可運(yùn)行在百 M 級(jí)別的智能家用攝像頭/行車記錄儀等相對(duì)資源豐富的設(shè)備。
我先講一下設(shè)備開(kāi)發(fā)的限制,目前開(kāi)源的僅支持 128k~128M 設(shè)備。而電視的運(yùn)行內(nèi)存一般在 2G 以上,普遍 3~4G。那實(shí)際上可以滿足除了電視,手表 wear,手機(jī)的大部分設(shè)備。
開(kāi)發(fā)流程是源碼獲取/組件管理→編碼實(shí)現(xiàn)邏輯→編譯→燒錄,按官網(wǎng)教程走一遍就能在開(kāi)發(fā)板板上跑起來(lái)了。
前面說(shuō)到的一些 kit , 設(shè)備虛擬化和碰一碰也是可以用在設(shè)備開(kāi)發(fā)上的。不過(guò)設(shè)備虛擬化,DVKit SDK 預(yù)計(jì) 2020 年 12 月底才提供。
接下來(lái)聊一下華為的鴻蒙發(fā)布計(jì)劃:明年中發(fā)布 4G 以下,4G 以下應(yīng)該對(duì)應(yīng)車機(jī)和 wear。
年底發(fā)布 4G 以上,這個(gè)應(yīng)該是對(duì)應(yīng)手機(jī)。手機(jī)的話大家都認(rèn)為的意義不是很大,也不太可能成為主流,我也是這么認(rèn)為。
我個(gè)人認(rèn)為鴻蒙的發(fā)力點(diǎn)應(yīng)該是在電視,穿戴,車機(jī)上,以及提供極致的生態(tài)體驗(yàn)!!
C語(yǔ)言預(yù)處理命令分類和工作原理
FreeRTOS中相對(duì)延時(shí)和絕對(duì)延時(shí)的區(qū)別
單精度、雙精度、多精度和混合精度計(jì)算的區(qū)別是什么?
點(diǎn)擊“閱讀原文”查看更多分享,歡迎點(diǎn)分享、收藏、點(diǎn)贊、在看。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!