官網文檔傳送口
目錄
一、鴻蒙OS系統定義:
二、原子化服務開發曆程:
1.什麼是原子化服務:
2.原子化服務特征:
随處可及:
服務直達:
跨裝置:
3.服務中心與原子化服務:
4.原子化服務的流轉:
5.流轉觸發的方式:
6.流轉的技術方案:
7.原子化服務分享:
8.原子化服務使用場景:
三、服務卡片:
概述:
運作機制:
卡片開發說明:
1.開發接口說明:
2.Java卡片與JS卡片差別:
四、Harmony上手開發流程:
開發準備:
第一步:注冊華為開發者賬号:
第二步:安裝開發工具:
第三步:DevEco Studio常見設定:
第四步:項目結構介紹:
一、鴻蒙OS系統定義:
HarmonyOS 是一款“面向未來”、面向全場景(移動辦公、運動健康、社交通信、媒體娛樂等)的分布式作業系統。在傳統的單裝置系統能力的基礎上,HarmonyOS 提出了基于同一套系統能力、适配多種終端形态的分布式理念,能夠支援多種終端裝置。
二、原子化服務開發曆程:
HarmonyOS除支援傳統方式的需要安裝的應用外,還支援提供特定功能的免安裝的應用(即原子化服務),供使用者在合适的場景、合适的裝置上便捷使用。
1.什麼是原子化服務:
原子化服務就是提供特定功能的免安裝的應用!!!
原子化服務是HarmonyOS提供的一種面向未來的服務提供方式,是有獨立入口的(使用者可通過點選方式直接觸發)、免安裝的(無需顯式安裝,由系統程式架構背景安裝後即可使用)、可為使用者提供一個或多個便捷服務的使用者應用程式形态。
原子化服務基于HarmonyOS API開發,支援運作在1+8+N裝置上,供使用者在合适的場景、合适的裝置上便捷使用。原子化服務相對于傳統方式的需要安裝的應用形态更加輕量,同時提供更豐富的入口、更精準的分發。
原子化服務由1個或多個HAP包組成,1個HAP包對應1個FA或1個PA。每個FA或PA均可獨立運作,完成1個特定功能;1個或多個功能(對應FA或PA)完成1個特定的便捷服務。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP35EeRR0TxEkaNFDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwETN3ITN1MjM1IzNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.原子化服務特征:
随處可及:
- 服務發現:原子化服務可在服務中心發現并使用。
- 智能推薦:原子化服務可以基于合适場景被主動推薦給使用者使用;使用者可在服務中心和小藝建議中發現系統推薦的服務。
服務直達:
- 原子化服務支援免安裝使用。
- 服務卡片:支援使用者無需打開原子化服務便可擷取服務内重要資訊的展示和動态變化,如天氣、關鍵事務備忘、熱點新聞清單。
跨裝置:
- 原子化服務支援運作在1+8+N裝置上,如手機、平闆等裝置。
- 支援跨裝置分享:例如接入華為分享後,使用者可分享原子化服務給好友,好友确認後打開分享的服務。
- 支援跨端遷移:例如手機上未完成的郵件,遷移到平闆繼續編輯。
- 支援多端協同:例如手機用作文檔翻頁和批注,配合智慧屏顯示完成分布式辦公;手機作為搖桿,與智慧屏配合玩遊戲。
3.服務中心與原子化服務:
HarmonyOS服務中心:為使用者提供統一的原子化服務檢視、搜尋、收藏和管理功能。
原子化服務在服務中心以服務卡片的形式展示,使用者可将服務中心的服務卡片添加到桌面中快捷通路。
服務中心入口:以手機為例,通過螢幕左下角或右下角向側上方滑動進入服務中心。
常用服務:"常用服務"涵蓋使用者常用的本地服務和雲端推送的服務,為您提供貼心便捷的服務體驗。
我的收藏:“我的收藏”中收錄您所訂閱的服務卡片;通過長按卡片可将服務添加到桌面、取消收藏。
服務發現:您還可以在“發現”版塊中查找和浏覽所有的服務卡片。服務以卡片(卡片由圖示、名稱、描述、快照組成)的形式向使用者展示。輕點卡片,可以選擇将卡片添加到收藏或添加到桌面,随時随地檢視資訊擷取服務。
4.原子化服務的流轉:
流轉在HarmonyOS中泛指涉及多端的分布式操作。
流轉能力打破裝置界限,多裝置關聯,使使用者應用程式可分可合、可流轉,實作如郵件跨裝置編輯、多裝置協同健身、多屏遊戲等分布式業務。
5.流轉觸發的方式:
使用者觸發流轉有2種方式:系統推薦流轉和使用者手動流轉。
- 系統推薦流轉:使用者使用應用程式時,所處環境中存在使用體驗更優的可選裝置,則系統自動為使用者推薦該裝置,使用者可确認是否啟動流轉。
- 使用者手動流轉:使用者可以手動選擇合适的裝置進行流轉。使用者點選圖示後,會調起系統提供的流轉面闆。面闆中會展示出使用者應用程式的資訊及可流轉的裝置,引導使用者進行後續的流轉操作。
6.流轉的技術方案:
流轉有2種技術方案來滿足不同的業務場景:
-
跨端遷移:
指在A端運作的使用者應用程式,遷移到B端上并從遷移時刻A端狀态繼續運作,然後A端使用者應用程式退出。
-
多端協同:
指多端上的不同FA/PA同時運作、或者接替運作實作完整的業務;或者,多端上的相同FA/PA同時運作實作完整的業務。
7.原子化服務分享:
通過分享的方式,将原子化服務分享到其它裝置上,使用者确認後可直接免安裝啟動服務。
華為分享:使用者可在原子化服務内選擇分享,打開“華為分享”開關後,将原子化服務分享給附近同樣打開了“華為分享”開關的好友,好友點選确認後直接啟動服務。
8.原子化服務使用場景:
- 釋放手機,讓使用者在更合适的裝置上享受服務
- 大小屏互動協作
三、服務卡片:
概述:
服務卡片(以下簡稱“卡片”)是FA的一種界面展示形式,将FA的重要資訊或操作前置到卡片,以達到服務直達,減少體驗層級的目的。
卡片常用于嵌入到其他應用(目前隻支援系統應用)中作為其界面的一部分顯示,并支援拉起頁面,發送消息等基礎的互動功能。卡片使用方負責顯示卡片。
運作機制:
卡片開發說明:
1.開發接口說明:
HarmonyOS中的服務卡片為卡片提供方開發者提供以下接口能力:
類名 | 接口名 | 描述 |
---|---|---|
Ability | ProviderFormInfo onCreateForm(Intent intent) | 卡片提供方接收建立卡片通知接口。 |
void onUpdateForm(long formId) | 卡片提供方接收更新卡片通知接口。 | |
void onDeleteForm(long formId) | 卡片提供方接收删除卡片通知接口。 | |
void onTriggerFormEvent(long formId, String message) | 卡片提供方處理卡片事件接口(JS卡片使用)。 | |
boolean updateForm(long formId, ComponentProvider component) | 卡片提供方主動更新卡片(Java卡片使用)。 | |
boolean updateForm(long formId, FormBindingData formBindingData) | 卡片提供方主動更新卡片(JS卡片使用),僅更新formBindingData中攜帶的資訊,卡片中其餘資訊保持不變。 | |
void onCastTempForm(long formId) | 卡片提供方接收臨時卡片轉常态卡片通知。 | |
void onEventNotify(Map<Long, Integer> formEvents) | 卡片提供方接收到事件通知,其中Ability.FORM_VISIBLE表示卡片可見通知, Ability.FORM_INVISIBLE表示卡片不可見通知。 | |
FormState onAcquireFormState(Intent intent) | 卡片提供方接收查詢卡片狀态通知接口。預設傳回卡片初始狀态。 | |
ProviderFormInfo | ProviderFormInfo(int resId, Context context) | Java卡片傳回對象構造函數。 |
ProviderFormInfo() | JS卡片傳回對象構造函數。 | |
void mergeActions(ComponentProvider componentProviderActions) | 在提供方側調用該接口,将開發者在ComponentProvider中設定的actions配置資料合并到目前對象中。 | |
void setJsBindingData(FormBindingData data) | 設定JS卡片的内容資訊(JS卡片使用)。 |
其中,onEventNotify僅系統應用才會回調,其他接口回調時機如下:
2.Java卡片與JS卡片差別:
場景 | Java卡片 | JS卡片 | 支援的版本 |
---|---|---|---|
實時重新整理(類似時鐘) | Java使用ComponentProvider做實時重新整理代價比較大 | JS可以做到端側重新整理,但是需要定制化元件 | HarmonyOS 2.0及以上 |
開發方式 | Java UI在卡片提供方需要同時對資料群組件進行處理,生成ComponentProvider遠端渲染 | JS卡片在使用方加載渲染,提供方隻要處理資料、元件和邏輯分離 | HarmonyOS 2.0及以上 |
元件支援 | Text、Image、DirectionalLayout、PositionLayout、DependentLayout | div、list、list-item、swiper、 stack、image、text、span、progress、button(定制:chart 、clock、calendar) | HarmonyOS 2.0及以上 |
卡片内動效 | 不支援 | 暫不開放 | HarmonyOS 2.0及以上 |
陰影模糊 | 不支援 | 支援 | HarmonyOS 2.0及以上 |
動态适應布局 | 不支援 | 支援 | HarmonyOS 2.0及以上 |
自定義卡片跳轉頁面 | 不支援 | 支援 | HarmonyOS 2.0及以上 |
總結:
- Java卡片:适合作為一個直達入口,沒有複雜的頁面和事件。
- JS卡片:适合有複雜界面的卡片。
四、Harmony上手開發流程:
開發準備:
第一步:注冊華為開發者賬号:
官網:https://www.harmonyos.com/cn/home/
進行賬号注冊:
實名認證:
第二步:安裝開發工具:
下載下傳工具:
傳送口:https://www.harmonyos.com/cn/develop
安裝:
下載下傳完成後進行解壓,安裝(下一步下一步就可以,注意安裝路徑不要有中文!!!):
等待安裝完成!!!
檢查SDK是否安裝成功:
第三步:DevEco Studio常見設定:
修改主題:
設定字型大小:
取消注釋斜體,修改注釋顔色:
HarmonyOS實戰—初識原子卡片服務開發一、鴻蒙OS系統定義:二、原子化服務開發曆程:三、服務卡片:四、Harmony上手開發流程:
自動導包:
提示忽略大小寫:
修改自動提示快捷鍵:
第四步:項目結構介紹:
DevEco Stusio項目結構:
項目管理工具gradle
【本文正在參與"有獎征文|HarmoneyOS征文大賽"活動】
傳送口:https://marketing.csdn.net/p/ad3879b53f4b8b31db27382b5fc65bbc