互聯(lián)網(wǎng)/程序員/技術/資料共享?
本文面向的是開發(fā)人員,主要想通過科普讓大家了解一下鴻蒙開發(fā)。接下來,我想給大家科普一下這個這么火的鴻蒙系統(tǒng)。
到底什么是鴻蒙 OS?
在官網(wǎng)上看到鴻蒙 OS 的簡介是,分布式能力造就新硬件、新交互、新服務,打開煥然一新的全場景世界。以及發(fā)布會提及最多是他的萬物互連,全場景,分布式,微內核,軟總線。
換句話說,鴻蒙OS 是為全場景,分布式設計的,微內核,軟總線是他重要的實現(xiàn)。
對于全場景,分布式理解,我們可以想一下華為自家的多屏協(xié)作,以及電腦,平板和手機可以很方便實現(xiàn)在電腦上操作平板,手機。
另外現(xiàn)在雙 11 買到的一些新上市家電,上面可以看到鴻蒙的小 Logo,這些帶上鴻蒙的家電,可以通過碰一碰無需安裝 App 實現(xiàn)配置組網(wǎng),也十分方便。
在華為開發(fā)者大會上,華為也展示了一些精彩的案例。大家有興趣回頭翻一翻。這些都是通過全場景,分布式特性做到的新交互和體驗,十分讓人期待。
到此應該有一個疑問,如果不用鴻蒙 OS,能不能實現(xiàn)以上交互?多屏協(xié)同,多設備協(xié)同?
答案是可以的,官方有提到,他們把鴻蒙 OS 一些能力,例如分布式提出來放到 EMUI 上。
我們在華為的開發(fā)平臺上可以看到一些 kit 和鴻蒙有關的有設備虛擬化、HiCar、HiLink、碰一碰等。
這些 kit 是可以讓設備在不上鴻蒙的情況下,實現(xiàn)全場景,分布式。他們做的類似做一個中間層,App 和設備端分別接入這些 kit 的 sdk。
那么和直接用鴻蒙 OS 有什么區(qū)別呢?開發(fā)會上官方給出了答案,不上鴻蒙也是可以實現(xiàn)的,不過鴻蒙 OS 的性能會更好一點。聊一下 kit
在聊開發(fā)之前,我想聊一下華為提供一些有意思的 kit。設備虛擬化能力(DeviceVirtualization Engine),是通過虛擬化技術將相關設備或器件打造成手機器件或能力的延伸。
它可以將家中的電視、攝像頭和音箱虛擬為手機的屏幕、Camera 和 Mic/Speaker,將穿戴設備作為手機的虛擬 Sensor,實現(xiàn)手機為中心的全場景體驗。
此處又應該有疑問,這個設備虛擬化和我們平時用的投屏,藍牙音箱有什么區(qū)別?靈活性,投屏,藍牙音箱,藍牙話筒是實現(xiàn)單一功能設備。用戶可以根據(jù)需要選擇所需的設備。
應用級的,舉個例子,可能開會需要,在會議 App 才需要話筒音箱。來電了依然是用手機上的話筒聽筒。
可擴展性,,除了常見的多媒體。他這個還支持外接傳感器,馬達,消息通知等。
碰一碰能力(OneHop Engine)是通過 NFC 來解決 App 跨設備接續(xù)難、設備配網(wǎng)難、傳輸難的問題的一個方案。
他們定義了一些常見的場景下的功能方向以及兩種集成方案:例如,美的電器接入碰一碰可以做到免安裝配網(wǎng)。這點十分方便,特別是家有老人。
之前的配網(wǎng)流程起碼分成 3 步,安裝 App,掃碼,配置。而這套方案就只要 3 秒。應用開發(fā)
鴻蒙 OS 目前開放了應用開發(fā)和設備開發(fā)。應用開發(fā)是我們的重頭戲,可以為搭載鴻蒙的智慧屏,手表,車機開發(fā)應用。
通過華為提供的 DevEco IDE 建立應用開發(fā)項目,具體開發(fā)步驟有比較多的教程就不細說了。開發(fā)可以使用 Java 和 JS 語言。Java 開發(fā)的話,跟 Android 開發(fā)差不多。這里注意的是通過 JS 開發(fā)的話,但是通過 Htm 并非 html 來寫 UI。在語法上類似 vue。JS 引擎是 JerryScript,能夠在內存少于 64KB 的設備上執(zhí)行 ECMAScript 5.1 源代碼。那實際上下面要提到的設備開發(fā)邏輯是也可以部分用 JS 實現(xiàn)的。不過官方文檔比較少,也沒有 demo 提供。但個 js runtime 是可以作為組件一起編譯燒錄的。
應用開發(fā)中,我比較感興趣的是跨設備調用,下面這個例子是從智慧屏 App 上調用其他設備頁面的。
這里可以看到優(yōu)點十分明顯,在這里我們開發(fā)無需關心通信,以及傳輸安全問題。在智慧屏上這么寫,在手表上也是這么寫。也就是他們說的一次開發(fā)多端部署,提供成熟方案,不用放更多精力在安全機制,組網(wǎng)連接和基礎通信上。聚焦業(yè)務,快速完成原型開發(fā)。
支持主設備側遠程啟動從設備側 FA,不支持從設備遠程啟動主設備 FA。
需要同一局域網(wǎng)內。
需要認證,當前只支持擁有共同公鑰信息的主從設備間 FA(即主從設備的 FA 使用相同華為證書)的拉起。
工具鏈還需完善,如果選擇智能手表和智慧屏這兩個平臺進行 App 的開發(fā),目前華為還沒有開放基于 X86 的本地模擬器。
因此,需要將編譯后安裝到遠程的 ARM 處理器以運行代碼,在本機上只能預覽運行結果,而無法在本機上運行和調試代碼。開發(fā)效率相對慢一點,相信華為后面應該會補齊。
設備開發(fā)
針對設備開發(fā)者,OpenHarmony 采用了組件化的設計方案,可以根據(jù)設備的資源能力和業(yè)務特征進行靈活裁剪,滿足不同形態(tài)的終端設備對于操作系統(tǒng)的要求。
可運行在百 K 級別的資源受限設備和穿戴類設備,也可運行在百 M 級別的智能家用攝像頭/行車記錄儀等相對資源豐富的設備。
我先講一下設備開發(fā)的限制,目前開源的僅支持 128k~128M 設備。而電視的運行內存一般在 2G 以上,普遍 3~4G。那實際上可以滿足除了電視,手表 wear,手機的大部分設備。開發(fā)流程是源碼獲取/組件管理→編碼實現(xiàn)邏輯→編譯→燒錄,按官網(wǎng)教程走一遍就能在開發(fā)板板上跑起來了。
前面說到的一些 kit , 設備虛擬化和碰一碰也是可以用在設備開發(fā)上的。不過設備虛擬化,DVKit SDK 預計 2020 年 12 月底才提供。還有碰一碰,以下是官方提供的一個打印機通過碰一碰實現(xiàn)文件傳輸?shù)睦樱?br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">接下來聊一下華為的鴻蒙發(fā)布計劃:明年中發(fā)布 4G 以下,4G 以下應該對應車機和 wear。年底發(fā)布 4G 以上,這個應該是對應手機。手機的話大家都認為的意義不是很大,也不太可能成為主流,我也是這么認為。我個人認為鴻蒙的發(fā)力點應該是在電視,穿戴,車機上,以及提供極致的生態(tài)體驗!!總結
短時間來構建生態(tài),工具鏈,方案已經(jīng)很不容易!現(xiàn)在這些已經(jīng)比較完善了!小米,oppo,vivo,魅族手機廠商會不會加入 1+8+N 生態(tài)?海爾會不會加入 1+8+N 生態(tài)?車機會不會加入 1+8+N 生態(tài)?新來的小哥這樣寫代碼!同事直呼“中毒了”~
我終于決定要放棄 okhttp、httpClient,選擇了這個牛逼的神仙工具!賊爽
5T技術資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機,樹莓派,等等。在公眾號內回復「2048」,即可免費獲?。?!微信掃描二維碼,關注我的公眾號
朕已閱?