HarmonyOS-對Android開發(fā)者也太友好了吧
點擊上方?Android掃地僧?,選擇?星標?公眾號
重磅資源、干貨,快上車!
2020年9月10日,華為消費者業(yè)務軟件部總裁王成錄又一次站在了松山湖華為開發(fā)者大會的主舞臺上。今年,他帶來了萬眾矚目的華為鴻蒙HarmonyOS2.0。到目前為止,除了華為自家的智慧屏系列產品,國內也已經(jīng)有多家等設備廠商與華為達成了合作,搭載HarmonyOS2.0,雖然目前華為最新手機ROM-EMUI11仍是基于Android R的操作系統(tǒng),而在發(fā)布會上,華為消費者業(yè)務軟件部總裁王成錄宣布搭載EMUI 11的機型將率先升級HarmonyOS2.0鴻蒙操作系統(tǒng)。
既然官方發(fā)話了,也許明年,HarmonyOS就會出現(xiàn)在你的手機上,這說不定也會給移動開發(fā)從業(yè)人員帶來更多的機會,早學早CD。
話不多說,先跑個HelloWorld。
DevEco Studio下載
https://developer.harmonyos.com/cn/develop/deveco-studio
系統(tǒng)要求:
| 操作系統(tǒng) | Windows 10 64位 |
| 內存 | 8GB+ |
| 硬盤 | 100GB+ |
| 分辨率 | 1280*800+ |
下面分別是DevEco Studio / AndroidStudio / IDEA(我都設置成了深色主題)



IntelliJ Idea
配置開發(fā)環(huán)境
安裝Node.js(不適應JS開發(fā)應用直接略過)
下載Gradle
這個建議你把AS里面已經(jīng)下好的Gradle路徑找出來,DS默認使用5.4.1版本,我不確定是不是國內網(wǎng)絡都有問題,反正我的網(wǎng)絡下不下來,或者使用民間大神已經(jīng)下載好的
下面是官方給的解決方案
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按鈕。
??




簡單體驗之后,可以發(fā)現(xiàn),鴻蒙應用開發(fā)的整個流程基本是跟Android應用一致的,對安卓開發(fā)人員來說,也太友好了吧。這個也不奇怪,畢竟Android這一套機制經(jīng)過了十幾年的不斷完善,有很多方面值得借鑒和參考,下面簡單總結一下,從Android直接遷移到HarmonyOS很容易上手的幾個點
項目結構
HarmonyOS和Android都是采用Gradle進行構建,HarmonyOS的應用軟件包以APP?Pack(Application Package)形式發(fā)布,它是由一個或多個HAP(HarmonyOS Ability Package)以及描述每個HAP屬性的pack.info組成。HAP是Ability的部署包,HarmonyOS應用代碼圍繞Ability組件展開。
一個HAP是由代碼、資源、第三方庫及應用配置文件組成的模塊包,可分為entry和feature兩種模塊類型,如下圖所示。
entry:應用的主模塊。一個APP中,對于同一設備類型必須有且只有一個entry類型的HAP,可獨立安裝運行。
- feature:應用的動態(tài)特性模塊。一個APP可以包含一個或多個feature類型的HAP,也可以不含。只有包含Ability的HAP才能夠獨立運行。

App邏輯視圖
Ability
Ability是應用所具備能力的抽象,也是應用程序的重要組成部分。一個應用可以具備多種能力(即可以包含多個Ability),HarmonyOS支持應用以Ability為單位進行部署。Ability可以分為FA(Feature Ability)和PA(Particle Ability)兩種類型,每種類型為開發(fā)者提供了不同的模板,以便實現(xiàn)不同的業(yè)務功能。
也就是說,Ability就相當于Android里面四大組件的一個抽象,F(xiàn)A就是我們熟悉的Activity,而PA下面的Service模板和Data模板就是對應的Service和ContentProvider
Page的生命周期

資源文件
config.json vs AndroidManifest
應用的配置文件“config.json”由“app”、“deviceConfig”和“module”三個部分組成,缺一不可。
app:應用的全局配置信息,包名,版本號等
deviceConfig:應用在不同設備上的具體信息
module:就是AndroidManifest下面的
節(jié)點了,包括Ability的聲明,權限等
可以發(fā)現(xiàn),很多配置都改為json格式了,其實像string,color等也都改為json格式,目前了解的只有布局文件仍然使用xml
如:color.json
{"color":[{"name":"red","value":"#ff0000"},{"name":"red_ref","value":"$color:red"}]}
UI組件
應用的Ability在屏幕上將顯示一個用戶界面,該界面用來顯示所有可被用戶查看和交互的內容。應用中所有的用戶界面元素都是由Component和ComponentContainer對象構成。可想而知,這倆就是我們熟悉的View和ViewGroup。

......
看完這個,是不是覺得,上手鴻蒙開發(fā)絲毫沒有難度,其他具體細節(jié),大家有興趣可以去官網(wǎng)查看,基本上都有詳細的介紹。

另外,關于對鴻蒙應用開發(fā)過程中遇到的問題,也可以前往HarmonyOS官方論壇進行反饋和交流
https://developer.huawei.com/consumer/cn/forum/blockdisplay?fid=0101303901040230869

最后
關于HarmonyOS2.0發(fā)布后,網(wǎng)上也有很多負面言論,類似“鴻蒙系統(tǒng)開放的源代碼含美量90%”,“鴻蒙應用就是安卓套個殼”......如果真的是從開發(fā)者的角度出發(fā),確實很多地方能看到Android的影子(包括HAP包解壓后會有一個apk文件,其實這個文件是無法獨立安裝運行的),但是也不可否認,這個過程中華為的創(chuàng)新,“像安卓”也許是一個沒有辦法的選擇,因為對于一個操作系統(tǒng)來講,開發(fā)社區(qū)是系統(tǒng)上線后的最大考驗,如果沒有開發(fā)者為這個系統(tǒng)開發(fā)應用,這個系統(tǒng)基本是無法存活的,這點可以參考曾經(jīng)的WinPhone。而兼容安卓,則可以很好地避免這個問題。最后附上鴻蒙官網(wǎng)的系統(tǒng)架構圖。


點個在看,你最好看
