入門鴻蒙應用、元服務(wù)和服務(wù)卡片的概念和開發(fā)

簡要介紹
鴻蒙應用、元服務(wù)和服務(wù)卡片的概念,很多人都了如指掌,我這里為了讓自己加深一下印象,理解的更深刻一點。
- 鴻蒙應用,在鴻蒙系統(tǒng)運行的應用程序,類似在安卓系統(tǒng)運行的安卓程序。它可以通過HAP形式運行在設(shè)備上,也可以通過APP形式發(fā)布到應用市場上,總之,用戶可以通過一定形式安裝它,然后桌面會出現(xiàn)一個圖標,用戶點擊這個圖標就打開這個應用了。
- 元服務(wù),原名為原子化服務(wù),是華為HarmonyOS提供的一種面向未來的服務(wù)提供方式,是有獨立入口、免安裝、可為用戶提供一個或多個服務(wù)的新型應用程序形態(tài)。 元服務(wù)基于HarmonyOS API開發(fā),支持運行在1+8+N設(shè)備上,供用戶在合適的場景、合適的設(shè)備上便捷使用。元服務(wù)雖然免安裝,但也可以通過華為應用市場中找到,它在應用標簽的元服務(wù)一欄里,里面所有的元服務(wù)后面跟著的都不再是安裝按鈕,而是打開,直接點擊就可以用,但前提是你的設(shè)備必須聯(lián)網(wǎng),個人認為元服務(wù)和應用程序?qū)崿F(xiàn)機制上差別不太大,應用是用戶按需下載,然后安裝到設(shè)備上,所有的這一切都是顯式完成的,用戶看得見。而元服務(wù)其實也是需要下載的,只不過程序很小,速度很快,用戶的感覺下載的過程像是程序在加載中,實際是隱式的后臺在下載。元服務(wù)展現(xiàn)形式也不一樣,應用安裝完都有一個小的應用圖標,而元服務(wù)是以服務(wù)卡片的形式。
- 服務(wù)卡片,這個名字比較中立,既不是應用卡片,也不是元服務(wù)卡片,服務(wù)卡片是相對于應用圖標來說的,卡片在桌面上可以占據(jù)幾個圖標的位置直接展示信息,并可以和用戶交互。服務(wù)卡片也并不是元服務(wù)所特有的,應用也可以有服務(wù)卡片。
鴻蒙應用的開發(fā)入門
打開DevEco Studio,首頁選擇Create Project,在彈出頁面左側(cè)選擇Application,右側(cè)選擇Empty Ability,模型選擇Stage,點擊完成,這樣一個最簡單的HelloWorld應用程序就自動創(chuàng)建完成了。


應用的模板還有很多其他類型,比如調(diào)用底層庫的NativeC++,適用于輕量設(shè)備應用開發(fā)的[Lite]EmptyAbility,集成華為云服務(wù)的EmptyAbilityWithCloudDev等等,根據(jù)需要選擇合適的模板會事半功倍。
我用的開發(fā)工具是DevEco Studio 3.1 Release版本,支持Stage和FA兩種模型,但越來越多的人只用Stage模型開發(fā),F(xiàn)A模型用的似乎越來越少了。
DevEco Studio 3.1 Release版本也開始支持可視化開發(fā)了,在創(chuàng)建項目頁面使能EnableSuperVisual,有些類似VisualStudio的開發(fā)工具,控件支持拖拽,然后再簡單的設(shè)置一些屬性,這個還有一個官方的稱呼,叫低代碼開發(fā)。我們看左邊的項目樹,和ets同級的出現(xiàn)了一個supervisual目錄,這里面放置的是低代碼布局文件Index.visual,對應的ets/pages/下也有一個Index.ets,這里面主要放置邏輯代碼,visual可視文件也可以轉(zhuǎn)化為ets代碼。

編輯工具里有個預覽器,修改代碼可以預覽頁面的布局效果。

在菜單欄build菜單中有build hap和build app選項,hap是可以直接運行在手機上的應用,app是打包發(fā)布到華為應用市場的,不能直接安裝到手機上。
至此,對應用開發(fā)最基本的有了一個了解。
元服務(wù)的開發(fā)入門
打開DevEco Studio,首頁選擇Create Project,在彈出頁面左側(cè)選擇AtomicService,右側(cè)選擇Empty Ability,模型選擇Stage,點擊完成,這樣一個最簡單的元服務(wù)程序就自動創(chuàng)建完成了。


直接運行,在模擬器上就打開了,也是個HelloWorld。但按返回退出后,除了歷史菜單中就找不到入口了。但通過設(shè)置->應用和服務(wù)->服務(wù)管理里能找到剛才創(chuàng)建的元服務(wù)。

元服務(wù)都應該有卡片入口的,怎么找到卡片入口呢?可以通過Ctrl+鼠標進入桌面菜單,選擇服務(wù)卡片,就能找到剛才創(chuàng)建的元服務(wù)的服務(wù)卡片了。

元服務(wù)的工程結(jié)構(gòu)中,比普通應用程序多了entryformability和widget兩個文件夾,entryformability中的EntryFormAbility定義了服務(wù)卡片,繼承自FormExtensionAbility,該模塊提供了卡片擴展相關(guān)接口。而我們的主界面是UIAbility類型的,UIAbility組件是一種包含UI界面的應用組件,主要用于和用戶交互。widget目錄下就是對服務(wù)卡片界面的布局代碼。
服務(wù)卡片的開發(fā)入門
應用程序添加卡片
對于應用程序,添加服務(wù)卡片,直接右擊entry,選擇New->ServiceWidget。

默認是2x2大小的卡片,可以同時添加其他尺寸的。

添加完,我們重新運行項目,發(fā)現(xiàn)圖標下面多了短橫線,按住上滑,就會出現(xiàn)服務(wù)卡片菜單了。

元服務(wù)添加卡片
對于元服務(wù),創(chuàng)建的時候就默認添加服務(wù)卡片,如果需要添加新的服務(wù)卡片,也可以按照給應用添加的方法進行添加,創(chuàng)建時選擇的尺寸2x2或者2x4的,是針對同一個卡片展示的不同尺寸,如果添加新功能的卡片,需要繼續(xù)添加ServiceWidget組件,所有這些組件都在配置文件resources/base/profile/form_config.json中進行配置。
總結(jié)
這篇文檔介紹了一些入門級的知識,主要是幫助弄清楚鴻蒙應用、元服務(wù)和服務(wù)卡片之間的區(qū)別和聯(lián)系。























