入門鴻蒙應用、元服務和服務卡片的概念和開發
簡要介紹
鴻蒙應用、元服務和服務卡片的概念,很多人都了如指掌,我這里為了讓自己加深一下印象,理解的更深刻一點。
- 鴻蒙應用,在鴻蒙系統運行的應用程序,類似在安卓系統運行的安卓程序。它可以通過HAP形式運行在設備上,也可以通過APP形式發布到應用市場上,總之,用戶可以通過一定形式安裝它,然后桌面會出現一個圖標,用戶點擊這個圖標就打開這個應用了。
- 元服務,原名為原子化服務,是華為HarmonyOS提供的一種面向未來的服務提供方式,是有獨立入口、免安裝、可為用戶提供一個或多個服務的新型應用程序形態。 元服務基于HarmonyOS API開發,支持運行在1+8+N設備上,供用戶在合適的場景、合適的設備上便捷使用。元服務雖然免安裝,但也可以通過華為應用市場中找到,它在應用標簽的元服務一欄里,里面所有的元服務后面跟著的都不再是安裝按鈕,而是打開,直接點擊就可以用,但前提是你的設備必須聯網,個人認為元服務和應用程序實現機制上差別不太大,應用是用戶按需下載,然后安裝到設備上,所有的這一切都是顯式完成的,用戶看得見。而元服務其實也是需要下載的,只不過程序很小,速度很快,用戶的感覺下載的過程像是程序在加載中,實際是隱式的后臺在下載。元服務展現形式也不一樣,應用安裝完都有一個小的應用圖標,而元服務是以服務卡片的形式。
- 服務卡片,這個名字比較中立,既不是應用卡片,也不是元服務卡片,服務卡片是相對于應用圖標來說的,卡片在桌面上可以占據幾個圖標的位置直接展示信息,并可以和用戶交互。服務卡片也并不是元服務所特有的,應用也可以有服務卡片。
鴻蒙應用的開發入門
打開DevEco Studio,首頁選擇Create Project,在彈出頁面左側選擇Application,右側選擇Empty Ability,模型選擇Stage,點擊完成,這樣一個最簡單的HelloWorld應用程序就自動創建完成了。
應用的模板還有很多其他類型,比如調用底層庫的NativeC++,適用于輕量設備應用開發的[Lite]EmptyAbility,集成華為云服務的EmptyAbilityWithCloudDev等等,根據需要選擇合適的模板會事半功倍。
我用的開發工具是DevEco Studio 3.1 Release版本,支持Stage和FA兩種模型,但越來越多的人只用Stage模型開發,FA模型用的似乎越來越少了。
DevEco Studio 3.1 Release版本也開始支持可視化開發了,在創建項目頁面使能EnableSuperVisual,有些類似VisualStudio的開發工具,控件支持拖拽,然后再簡單的設置一些屬性,這個還有一個官方的稱呼,叫低代碼開發。我們看左邊的項目樹,和ets同級的出現了一個supervisual目錄,這里面放置的是低代碼布局文件Index.visual,對應的ets/pages/下也有一個Index.ets,這里面主要放置邏輯代碼,visual可視文件也可以轉化為ets代碼。
編輯工具里有個預覽器,修改代碼可以預覽頁面的布局效果。
在菜單欄build菜單中有build hap和build app選項,hap是可以直接運行在手機上的應用,app是打包發布到華為應用市場的,不能直接安裝到手機上。
至此,對應用開發最基本的有了一個了解。
元服務的開發入門
打開DevEco Studio,首頁選擇Create Project,在彈出頁面左側選擇AtomicService,右側選擇Empty Ability,模型選擇Stage,點擊完成,這樣一個最簡單的元服務程序就自動創建完成了。
直接運行,在模擬器上就打開了,也是個HelloWorld。但按返回退出后,除了歷史菜單中就找不到入口了。但通過設置->應用和服務->服務管理里能找到剛才創建的元服務。
元服務都應該有卡片入口的,怎么找到卡片入口呢?可以通過Ctrl+鼠標進入桌面菜單,選擇服務卡片,就能找到剛才創建的元服務的服務卡片了。
元服務的工程結構中,比普通應用程序多了entryformability和widget兩個文件夾,entryformability中的EntryFormAbility定義了服務卡片,繼承自FormExtensionAbility,該模塊提供了卡片擴展相關接口。而我們的主界面是UIAbility類型的,UIAbility組件是一種包含UI界面的應用組件,主要用于和用戶交互。widget目錄下就是對服務卡片界面的布局代碼。
服務卡片的開發入門
應用程序添加卡片
對于應用程序,添加服務卡片,直接右擊entry,選擇New->ServiceWidget。
默認是2x2大小的卡片,可以同時添加其他尺寸的。
添加完,我們重新運行項目,發現圖標下面多了短橫線,按住上滑,就會出現服務卡片菜單了。
元服務添加卡片
對于元服務,創建的時候就默認添加服務卡片,如果需要添加新的服務卡片,也可以按照給應用添加的方法進行添加,創建時選擇的尺寸2x2或者2x4的,是針對同一個卡片展示的不同尺寸,如果添加新功能的卡片,需要繼續添加ServiceWidget組件,所有這些組件都在配置文件resources/base/profile/form_config.json中進行配置。
總結
這篇文檔介紹了一些入門級的知識,主要是幫助弄清楚鴻蒙應用、元服務和服務卡片之間的區別和聯系。