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



IntelliJ Idea
配置開發(fā)環(huán)境
安裝Node.js(不適應(yīng)JS開發(fā)應(yīng)用直接略過)
下載Gradle
這個建議你把AS里面已經(jīng)下好的Gradle路徑找出來,DS默認(rèn)使用5.4.1版本,我不確定是不是國內(nèi)網(wǎng)絡(luò)都有問題,反正我的網(wǎng)絡(luò)下不下來,或者使用民間大神已經(jīng)下載好的
下面是官方給的解決方案
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/faq-installation-0000001050697674
運(yùn)行HelloWorld
新建工程-選擇設(shè)備類型-電視/手表
這里建議選擇第3個LiteWearable,因為其他兩個設(shè)備項目運(yùn)行后,都不支持預(yù)覽,也就是HelloWorld長啥樣,你得跑起來才能看到。但是LiteWearable又僅支持JS,所以你還是別預(yù)覽了,老老實實用虛擬機(jī)看吧

然后一路Next到底就完事了,等待項目構(gòu)建完成,就可以運(yùn)行,但是你得先申請個模擬器
申請模擬器
前提:1.注冊華為賬號 2.實名認(rèn)證
菜單欄,點(diǎn)擊Tools > HVD Manager。首次使用模擬器,需下載模擬器相關(guān)資源,請點(diǎn)擊OK,等待資源下載完成后,點(diǎn)擊模擬器界面左下角的Refresh按鈕。
??




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

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

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

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

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

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


點(diǎn)個在看,你最好看
