HarmonyOS-對Android開發者也太友好了吧

點擊上方 Android掃地僧 ,選擇 星標 公衆號
web

重磅資源、乾貨,快上車!json

2020年9月10日,華爲消費者業務軟件部總裁王成錄又一次站在了松山湖華爲開發者大會的主舞臺上。今年,他帶來了萬衆矚目的華爲鴻蒙HarmonyOS2.0。到目前爲止,除了華爲自家的智慧屏系列產品,國內也已經有多家等設備廠商與華爲達成了合做,搭載HarmonyOS2.0,雖然目前華爲最新手機ROM-EMUI11還是基於Android R的操做系統,而在發佈會上,華爲消費者業務軟件部總裁王成錄宣佈搭載EMUI 11的機型將率先升級HarmonyOS2.0鴻蒙操做系統。
瀏覽器


既然官方發話了,也許明年,HarmonyOS就會出如今你的手機上,這說不定也會給移動開發從業人員帶來更多的機會,早學早CD。
微信


話很少說,先跑個HelloWorld。網絡


DevEco Studio下載架構

https://developer.harmonyos.com/cn/develop/deveco-studioapp

  • 系統要求:ide

操做系統
Windows 10 64位
內存
8GB+
硬盤
100GB+
分辨率
1280*800+
Mac用戶敬請期待~
DevEco Studio(如下簡稱DS)畢竟是基於IntelliJ IDEA Community開源版本打造的,因此只要你以前用過AS或IDEA,基本上沒有任何學習成本。

下面分別是DevEco Studio / AndroidStudio / IDEA(我都設置成了深色主題)佈局

DevEcoStudio

AndroidStudio

IntelliJ Idea學習

配置開發環境

  • 安裝Node.js(不適應JS開發應用直接略過)

  • 下載Gradle

    這個建議你把AS裏面已經下好的Gradle路徑找出來,DS默認使用5.4.1版本,我不肯定是否是國內網絡都有問題,反正個人網絡下不下來,或者使用民間大神已經下載好的

    下面是官方給的解決方案

    https://developer.harmonyos.com/cn/docs/documentation/doc-guides/faq-installation-0000001050697674


運行HelloWorld

  • 新建工程-選擇設備類型-電視/手錶

    這裏建議選擇第3個LiteWearable,由於其餘兩個設備項目運行後,都不支持預覽,也就是HelloWorld長啥樣,你得跑起來才能看到。可是LiteWearable又僅支持JS,因此你仍是別預覽了,老老實實用虛擬機看吧



而後一路Next到底就完事了,等待項目構建完成,就能夠運行,可是你得先申請個模擬器

  • 申請模擬器

    前提:1.註冊華爲帳號 2.實名認證

    菜單欄,點擊Tools > HVD Manager。首次使用模擬器,需下載模擬器相關資源,請點擊OK,等待資源下載完成後,點擊模擬器界面左下角的Refresh按鈕。

  

會自動打開瀏覽器,登陸華爲帳號,容許受權,就能夠在DS裏新建模擬器了。每次申請有效期1小時,過時後要從新申請。

完成受權,就能夠啓動虛擬機了

而後就直接跟AS操做同樣,選擇設備運行



簡單體驗以後,能夠發現,鴻蒙應用開發的整個流程基本是跟Android應用一致的,對安卓開發人員來講,也太友好了吧。這個也不奇怪,畢竟Android這一套機制通過了十幾年的不斷完善,有不少方面值得借鑑和參考,下面簡單總結一下,從Android直接遷移到HarmonyOS很容易上手的幾個點




項目結構

HarmonyOS和Android都是採用Gradle進行構建,HarmonyOS的應用軟件包以APP Pack(Application Package)形式發佈,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每一個HAP屬性的pack.info組成。HAP是Ability的部署包,HarmonyOS應用代碼圍繞Ability組件展開。

一個HAP是由代碼、資源、第三方庫及應用配置文件組成的模塊包,可分爲entry和feature兩種模塊類型,以下圖所示。

  • entry:應用的主模塊。一個APP中,對於同一設備類型必須有且只有一個entry類型的HAP,可獨立安裝運行。

  • feature:應用的動態特性模塊。一個APP能夠包含一個或多個feature類型的HAP,也能夠不含。只有包含Ability的HAP纔可以獨立運行。

App邏輯視圖

Ability

Ability是應用所具有能力的抽象,也是應用程序的重要組成部分。一個應用能夠具有多種能力(便可以包含多個Ability),HarmonyOS支持應用以Ability爲單位進行部署。Ability能夠分爲FA(Feature Ability)和PA(Particle Ability)兩種類型,每種類型爲開發者提供了不一樣的模板,以便實現不一樣的業務功能。

也就是說,Ability就至關於Android裏面四大組件的一個抽象,FA就是咱們熟悉的Activity,而PA下面的Service模板和Data模板就是對應的Service和ContentProvider


Page的生命週期

資源文件

config.json vs AndroidManifest

應用的配置文件「config.json」「app」「deviceConfig」「module」三個部分組成,缺一不可。

  • app:應用的全局配置信息,包名,版本號等

  • deviceConfig:應用在不一樣設備上的具體信息

  • module:就是AndroidManifest下面的<application/>節點了,包括Ability的聲明,權限等


能夠發現,不少配置都改成json格式了,其實像string,color等也都改成json格式,目前瞭解的只有佈局文件仍然使用xml

如:color.json

{"color":[ {"name":"red","value":"#ff0000" }, {"name":"red_ref","value":"$color:red" } ]}

UI組件

應用的Ability在屏幕上將顯示一個用戶界面,該界面用來顯示全部可被用戶查看和交互的內容。應用中全部的用戶界面元素都是由Component和ComponentContainer對象構成。可想而知,這倆就是咱們熟悉的View和ViewGroup。

......

看完這個,是否是以爲,上手鴻蒙開發絲毫沒有難度,其餘具體細節,你們有興趣能夠去官網查看,基本上都有詳細的介紹。


https://developer.harmonyos.com/cn/docs/documentation

另外,關於對鴻蒙應用開發過程當中遇到的問題,也能夠前往HarmonyOS官方論壇進行反饋和交流

https://developer.huawei.com/consumer/cn/forum/blockdisplay?fid=0101303901040230869



最後

關於HarmonyOS2.0發佈後,網上也有不少負面言論,相似「鴻蒙系統開放的源代碼含美量90%」,「鴻蒙應用就是安卓套個殼」......若是真的是從開發者的角度出發,確實不少地方能看到Android的影子(包括HAP包解壓後會有一個apk文件,其實這個文件是沒法獨立安裝運行的),可是也不能否認,這個過程當中華爲的創新,「像安卓」也許是一個沒有辦法的選擇,由於對於一個操做系統來說,開發社區是系統上線後的最大考驗,若是沒有開發者爲這個系統開發應用,這個系統基本是沒法存活的,這點能夠參考曾經的WinPhone。而兼容安卓,則能夠很好地避免這個問題。


最後附上鴻蒙官網的系統架構圖。



點個在看,你最好看

本文分享自微信公衆號 - Android掃地僧(Android-Mas)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索