首頁>科技>

引言

縱觀網際網路發展歷史,每隔一段時間就會有一個新興的業務獨領風騷,接著大量資本會湧入這個領域。一夜之間,那些小規模的創業公司會迎來指數級的增長。

風口論、賽道論往往會被用來解釋這些現象。而對於身處熱門公司的程式設計師們來說,則是一個夢寐以求的發展機會。這種感覺,估計和中彩票差不多。

不過,這種被資本追捧的“熱”,著實有些虛火。“千團大戰”、“共享單車大戰”、“共享打車大戰”等,只不過是藉著資本的炒作,無謂地消耗資源而已。程式設計師們短期能獲得一些回報,但熱度一降,立馬茶涼走人。

所以,與其盯著熱門的商業概念,不如轉變眼光,看向那些有真正價值的長遠事業。那可能有人會提出疑問,現在能稱得上好的機會,除了進大廠,還有什麼呢?

還真有,如果能抓住這個機會,對程式設計師們來說,就是一次完美的彎道超車。讓我們先從技術的趨勢與現狀說起。

趨勢與現狀

我們知道,除了專業能力之外,看準市場和技術的發展趨勢非常重要。只要走在一個上升的趨勢中,自然就會水漲船高,這需要我們能夠預判事物發展的方向。

那麼,趨勢會在哪裡呢?一個判斷原則就是,那些存在問題的地方,往往就蘊含著好機會。

在PC時代,Intel的X86架構與微軟的Windows作業系統,統治了整個江湖。在蘋果推出石破天驚的iPhone之後,智慧移動裝置取代PC揭開了新世紀的大幕。蘋果的iOS與谷歌的Android則佔據了移動作業系統的最大份額。

現在硬體裝置在摩爾定律的加持下,可以說是超速發展。我們身邊的可計算式智慧裝置,每年是指數級的增長。而系統軟體卻存在標準不統一、廠商各自為戰的狀態。

時至今日,萬物互聯已經是各個大廠佈局的重點,而底層系統軟體卻越來越成為一個技術上的鴻溝。觀察一下我們手裡的各種智慧裝置,只要是不同廠家的,它們之間必然是資訊隔離的,這會帶來諸多問題。

第一個問題是在系統層面資訊無法流動。你可能買了一個A廠商的手機,然後喜歡B廠商的智慧手錶,但兩個裝置之間即使透過APP也只能進行有限的資料交換。這往往限制了產品的推廣與發展。

第二個問題是每種裝置的作業系統不同,其上執行的應用就要有不同技術棧的團隊實現一次。這無形增加了應用開發的成本,這等於是多花了一倍的錢,卻只是為了把相同的功能再實現一遍。即使有一些跨平臺的開發技術,但也是還要在應用和系統之間再增加一層服務,付出的是效能損耗的代價。

第三個問題是對於廠家來說,即使是他們自己生產的不同裝置,也無法做到應用完美的相容,仍然有大量的除錯和適配工作要做。

以上這些問題,從現在來看,並不利於行業的發展。如果有一種技術,可以解決上述三個痛點,那麼它是不是會讓你眼前一亮?

全平臺分散式作業系統:鴻蒙OS

2020年9月10日,華為公司釋出了HarmonyOS 2.0,它的另一個名字更為我們所熟知,就是鴻蒙作業系統。它的出現,宣告了在作業系統這一層面,迎來了全平臺大一統的時刻。

華為公司將硬體種類定義為“1+8+N”。“1”就是居於中心位置的手機,它是使用者使用最頻繁,和其它裝置產生連線也最多的。“8”則是指PC、平板電腦、耳機、眼鏡、手錶、車載裝置、音響、HD裝置等八種硬體。“N”則是除此之外的所有IoT裝置。

說了這麼多裝置,其實它們全都只需要安裝鴻蒙這一種作業系統。這意味著在系統底層,資訊不再隔離,資料的孤島將被打通。

鴻蒙在底層設計上使用的是微核心架構,這種架構的特點是核心程式碼可以相當精簡,核心的主要功能就是處理程序間的通訊工作。系統級的服務都執行在使用者態。

這樣設計的優點是作業系統可以非常方便地適配各類裝置,只需要載入不同的模組,系統很容易做到可伸縮。與宏核心架構的Linux相比,要將Linux適配到全平臺的裝置上,核心的裁減與調整就是一件十分麻煩的事情。

對於應用開發來說,只需要編寫一次程式碼,然後全平臺可用,並且預期效果也是一致的。舉例來說,就是同樣一個呼叫方法,它只要是執行在HarmonyOS上,那麼無論是在手機,還是手錶裡,其執行結果都是一致的,不需要做相容性的工作。

應用開發者就只需要專注於一類技術棧即可。而硬體裝置生產廠家,也不用再進行麻煩的底層系統適配工作,只要與鴻蒙相容即可。

對於互聯的理解,鴻蒙將其看作了作業系統的原生屬性,即不互聯則無OS。所以分散式架構就與微核心架構一樣,是鴻蒙的最基本特徵。

接下來就對鴻蒙的分散式架構核心技術進行詳細說明。

分散式軟匯流排

在PC架構體系中,資料的傳輸是在總線上進行的。CPU透過匯流排從記憶體中讀取資料,外部裝置透過擴充套件插槽或者USB介面連線到總線上。可以看出來,匯流排是資料傳輸與交換的橋樑。

在安裝了鴻蒙作業系統的各個裝置之間,它們可以平滑地自動組網,從而構建為一個分散式系統。這樣的系統所具有的資料傳輸通道,就是分散式軟匯流排。

之所以被稱為“軟匯流排”,它是借用了PC體系中硬體匯流排的概念,表明這是在軟體之間建立的系統匯流排。而這一架構顯然不只是用來為應用層傳輸資料,它還包括三項基礎功能。

一是任務匯流排,即將應用在多個終端上快速分發。二是資料匯流排,這也是分散式軟匯流排的核心功能,即在各個裝置間傳輸資料。三是匯流排中樞,它負責將不同裝置進行自動組網。

同時,得益於華為公司在5G技術上的領先優勢,在自家研發的鴻蒙作業系統上,結合5G技術之後,分散式軟匯流排更是獲得了逼近於硬體匯流排的傳輸能力。

我們擁有了這樣跨越式的技術之後,可以做什麼?

想象的空間是巨大的,對於高頻寬低延遲要求的VR/AR應用場景就會有許多需求。例如線上體感遊戲,除了更好的沉浸式體驗,還可實現接近真實場景的多人對戰。

遠端教育,透過可穿戴式裝置與豐富的多媒體演示工具,接近於真實課堂的互動成為可能。這就解決了當下遠端教學中,扁平化模式帶來的手段單一、交流不暢等問題。

說了這麼多,是不是已經等不及想知道怎麼在鴻蒙上開發應用呢?我們現在就說怎麼動手幹。

搭建開發環境

華為公司提供了一個很好用的IDE:DevEco Studio,專門用於為鴻蒙系統開發應用。這是基於vscode二次開發而成的。

下載安裝包:http://developer.harmonyos.com/cn/home下載node.js安裝包:安裝node.js與DevEco Studio。如果是在windows系統上,建議安裝完成後重啟一次系統。啟動DevEco Studio後會要求設定node.js的安裝目錄,其它選項都預設就可以。

開發工具目前只需要這兩套,接下來我們以一個簡單例項來講解。

上手例項啟動DevEco Studio,建立新工程。我們選擇智慧手錶裝置,模板使用空白js。第一次啟動會耗時較長,因為工程會自動下載gradle工具並進行一次自動編譯。當編譯完成後,透過預覽工具Previewer檢視,預設會顯示“hello, world”。增加一個按鈕,並新增關聯事件,實現一個點選功能。

如上圖所示,我們看到在pages/index路徑下,有三個檔案,分別是index.css, index.html, index.js。這三個檔案就構成了智慧手錶應用的啟動頁面。做過微信小程式開發的同學,對這種架構想必是輕車熟路的。

  <div class="container">      <text class="title">          Hello {{title}}      </text>      <input type="button" value="click me" class="btn" onclick="clickAction"/>  </div>

index.js:執行javascript語句,構建資料模型,以及完成功能邏輯。我們在此處新增clickAction方法。

  export default {      data: {          title: 'World'      },      clickAction() {          console.log("yes, it's me");      }  }

index.css:定義頁面元素的外觀與樣式。我們為按鈕設定寬高。

  .container {      flex-direction: column;      justify-content: center;      width: 454px;      height: 454px;      justify-content: center;      align-items: center;  }  .title {      width: 200px;      font-size: 30px;      text-align: center;  }  .btn {      width: 200px;      height: 50px;  }
執行除錯

點選工具欄中小甲蟲形狀的按鈕,出現模擬器選擇介面,選擇智慧手錶模擬器,然後確定。

  01/28 22:52:02: Launching com.example.hellotwo  [Info] Application onCreate  [Debug] yes, it's me  [Debug] yes, it's me  [Debug] yes, it's me  [Debug] yes, it's me
結語

至此,我們看到鴻蒙的設計目標,就是面向萬物互聯時代而思考的。它沒有既往的技術包袱,從系統底層進行了革新,解決了最關鍵的問題,必然是大勢所趨。

學習這項未來的熱門技術,如果全靠自己去查詢線上文件,必然費時費力。幸好,現在已經有一本專門講解鴻蒙應用開的好書上市了。

這就是《鴻蒙應用開發實戰》,作者張榮超是華為官方首批認證的鴻蒙作業系統課程開發人員。這本書最大的特點,就是保姆式貼心示範,把一個功能並不算複雜的應用,分解成詳細的36個過程。

換句話說,只要有點耐心,每天晚上抽出一個小時,一個月以內就能掌握鴻蒙應用開發的核心技術。說起來好像挺簡單,其實也真的挺簡單。

所謂彎道超車,並不需要我們在同一條道路上跑得比別人更快,而是能夠發現一條不一樣的道路。當這條新路上並沒有什麼人時,我們只要走上去就能領先於他人。

為什麼不去做這件簡單的、又能改變職業命運的事呢?

12
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 華為新款手機供應不足,給了三星手機可承之機。