HarmonyOS NEXT第一課——HarmonyOS介紹

一、什么是HarmonyOS

萬物互聯時代應用開發的機遇、挑戰和趨勢

隨著萬物互聯時代的開啟,應用的設備底座將從幾十億手機擴展到數百億IoT設備。全新的全場景設備體驗,正深入改變消費者的使用習慣。 同時應用開發者也面臨設備底座從手機單設備到全場景多設備的轉變,全場景多設備的全新底座,為消費者帶來萬物互聯時代更為高效、便捷的體驗。

新的場景同時也帶來了新的挑戰。開發者不僅需要支持更加多樣化的設備,還需要支持跨設備的協作。不同設備類型意味著不同的傳感器能力、硬件能力、屏幕尺寸、操作系統和開發語言,還意味著差異化的交互方式。同時跨設備協作也讓開發者面臨分布式開發帶來的各種復雜性,例如跨設備的網絡通信、數據同步等。若采取傳統開發模式,適配和管理工作量將非常巨大。

當前移動應用開發中遇到的主要挑戰包括:

  • 針對不同設備上的不同操作系統,重復開發,維護多套版本。
  • 多種語言棧,對人員技能要求高。
  • 多種開發框架,不同的編程范式。
  • 命令式編程,需關注細節,變更頻繁,維護成本高。

圖1?更多的智能設備

與此同時,AI時代全面來臨。隨著人們對交互和信息獲取的智能化要求越來越高,移動設備的計算能力越來越強,在設備側就能提供AI的相關能力,例如自然語言交互、環境智能感知、圖像識別等。如何快速地使用這些AI能力,使自己的應用更加智能化,進而更好的服務消費者,也是開發者面臨的全新挑戰。

移動終端上的應用生態發展到今天也面臨著變革。傳統厚重的App ,整體體驗好,功能齊全,但開發成本高、周期長,且存在搜索,安裝,升級,卸載等一系列需要用戶主動關注的顯性操作,這些顯性操作給用戶帶來了實質性的使用成本。輕量化、可快速達成消費者意圖、可獨立執行、完成單一功能的程序實體正成為新的趨勢。

為了更好的抓住機遇,應對萬物互聯所帶來的一系列挑戰,新的應用生態應該具備如下特征:

  • 單一設備延伸到多設備:應用一次開發就能在多個設備上運行,軟件實體能夠從單一設備轉移到其他設備上,且多個設備間能夠協同運行,給消費者提供全新的分布式體驗。
  • 厚重應用模式到輕量化服務模式:提供輕量化的服務,最小化資源消耗,一步直達,快速完成消費者特定場景的任務。
  • 集中化分發到AI加持下的智慧分發:為消費者提供智慧場景服務,實現“服務找人”。
  • 純軟件到軟硬芯協同的AI能力:提供軟硬芯協同優化的AI能力,全面滿足應用高性能訴求。

圖2?HarmonyOS

HarmonyOS是新一代的智能終端操作系統,為不同設備的智能化、互聯與協同提供了統一的語言,為用戶帶來簡捷,流暢,連續,安全可靠的全場景交互體驗。

HarmonyOS結合移動生態發展的趨勢,提出了三大技術理念:一次開發,多端部署;可分可合,自由流轉;統一生態,原生智能。核心技術理念詳細內容可參考《鴻蒙生態應用開發白皮書》,此白皮書全面闡釋了HarmonyOS生態下應用開發核心理念、關鍵能力以及創新體驗,旨在幫助開發者快速、準確、全面的了解HarmonyOS開發套件給開發者提供的能力全景和未來的愿景。

另外,《鴻蒙生態應用安全技術白皮書》全面闡述了HarmonyOS生態下應用安全核心理念;通過應用開發、應用發布、應用安裝運行三個階段,構建關鍵安全能力,從始至終貫徹應用安全核心理念,幫助開發者快速理解HarmonyOS生態應用安全設計,提升應用開發安全質量。

二、HarmonyOS核心技術理念

HarmonyOS應用:使用HarmonyOS SDK開發的應用程序,能夠在HarmonyOS終端設備(如:手機、平板等)上運行,其有兩種形態:

  • APP:傳統方式的需要安裝的APP
  • 元服務:輕量級,具備免安裝,隨處可及,服務直達,自由流轉等關鍵特征的元服務

HarmonyoS應用關鍵概念:元服務和App的關系

  • App和元服務是HarmonyOS生態的“一體兩面”,是面向用戶的兩種形態。
  • App和元服務均可選擇服務卡片作為入口,應用圖標作為必選入口。

  • App具有手動下載安裝、包大小無限制、應用內或應用市場更新、全量功能等特征,可使用全量API
  • 元服務具有免安裝、包大小有限制、即用即走、輕量化等特征,只能使用“元服務API集”

三大技術理念:

一次開發 多端部署、可分可合 自由流轉、統一生態 原生智能

1.一次開發 多端部署

一個工程一次開發上架,多端按需部署,目的是為了支撐開發者高效的開發多種終端設備上的應用,為了實現這一目的HarmonyOS提供了幾個核心能力,包括多端開發環境、多端開發能力以及多端分發機制

2.可分可合 自由流轉

可分可合:開發態代碼共享,應用和元服務生命周期完全獨立

元服務是支撐可分可合、自由流轉的輕量級化程序實體,幫助開發者的服務更快觸達用戶,可分可合是指在開發態,開發者通過業務解耦,把不同的業務拆分成多個模塊,在部署態,開發者可以將一個或多個模塊自由組合,打包成多個App Pack,不同的App Pack的包名是不一樣的,每個App Pack都需要單獨上架,在運行態,應用和元服務的生命周期完全獨立

HarmonyoS操作系統提供了自由流轉的能力,使得開發者可以方便地開發出跨越多個設備
的應用,用戶也能夠方便地使用這些功能。

自由流轉可分為跨端遷移和多端協調兩種情況,分別是時間上的串行交互和時間上的并行交互

3.統一生態 原生智能

Harmonyos支持業界主流跨平臺開發框架,通過多層次的開放能力提供統一接入標準,實
現三方框架快速接入。

HarmonyOS內置強大的Al能力,面向Harmonyos生態應用的開發,通過不同層次的Al能力
開放,滿足開發者的不同開發場景下的訴求,降低應用的開發門檻,幫助開發者快速實現應
用智能化。

MachineLearning Kit提供了場景化能力,包括通用卡證識別、實時語音識別等;提供AI控件能力,使系統控件融合文字識別等AI能力,CoreAlAP提供了圖像語義、語言語音解析、OCR文字識別等能力,Core DeepLearning APl提供了高性能低功耗的端側推理和端側學習環境,意圖框架提供了Harmonyos系統級的意圖標準體系,通過多維系統感知、 大模型等能力,構建全局意圖范式實現對用戶顯性與潛在意圖的理解并及時、 準確地將用戶需求傳遞給生態伙伴匹配合適宜的服務,為用戶提供多模態、 場景化進階體驗

三、高效開發與測試

1.開發語言

ArkTS是鴻蒙應用的開發語言。它在保持TypeScript(簡稱TS)基本語法風格的基礎上,通過規范強化靜態檢查和分析,提升代碼健壯性,讓你輕松上手。

2.ArkUI框架

聲明式UI前端,提供了UI開發范式的基礎語言規范,并提供內置的UI組件、布局和動畫,提供了多種狀態管理機制,為應用開發者提供一系列接口支持;

語言運行時,選用方舟語言運行時,提供了針對UI范式語法的解析能力,跨語言調用支持的能力和TS語言高性能運行環境;

聲明式UI后端引擎,提供了兼容不同開發范式的UI渲染管線,提供多種基礎組件、布局計算、動效、交互事件和繪制能力;

渲染引擎提供了高效的繪制能力,將渲染管線收集的渲染指令繪制到屏幕的能力;

平臺適配層,提供了對系統平臺的抽象接口,具備接入不同系統的能力,如系統渲染管線、生命周期調度等

3.集成開發環境

HUAWEI DevEco Studio是面向HarmonyOS生態的集成開發環境,提供了一站式的HarmonyOS生態應用、元服務開發能力,主要包括工程管理、代碼編輯、界面預覽、編譯構建、代碼調試、性能調優、設備模擬、命令行工具和端云一體化開發等功能

4.開發和測試工具

測試套件包括測試標準和測試工具兩部分

測試標準覆蓋HarmonyOS生態應用性能、功耗、穩定性、兼容性、UX、安全、分布式、游戲等測試規范,幫助開發者解決測什么的問題,測試工具平臺提供了HarmonyOS生態應用開發、調試、單元測試、集成測試、上架測試等各開發階段所需的測試工具集,支持多種設備,幫助開發者全面高效測試

四、上架與分發

HUAWEl AppGallery Connect

HUAWEl AppGallery Connect為開發者提供全球化、全場景、一站式應用/元服務分發能力,并為開發者提供質量、安全、工程管理等領域的能力,大幅降低應用開發與運維難度,提升版本質量幫助開發者獲得用戶并實現收入的規模增長,快速上架即HUAWEl AppGallery Connect,作為開發者統一提交HarmonyOS生態應用與元服務的入口,集成證書管理、項目管理、版本管理等功能,支持HarmonyOS生態應用、元服務的快速上架與分發,上架審核是指為了給用戶提供更安全且出色的體驗,HUAWEl AppGallery Connect對開發者提交的HarmonyOS生態應用、元服務進行審核與測試,應用/元服務分發是指HUAWEl AppGallery Connect提供了靈活的分發能力,支持按階段、維度、場景等多種形式,高效、精確的分發到用戶設備上,HarmonyOS作為萬物互聯時代,泛終端的載體,面向跨設備多終端環境,實現服務隨身的跨設備無縫體驗,元服務于AI算法深度配合,實現多入口、場景化分發

五、HarmonyOS賦能套件

一站式獲取文檔和賦能資源

賦能套件旨在為開發者提供全方位的支持,幫助開發者更加輕松地進行HarmonyOS應用開發。

開發者可以通過開發者聯盟官網一站式獲取HarmonyOS應用開發文檔。

賦能套件全景

打造業界一流的開發者賦能產品,助力開發者開發卓越應用,按照學習和開發旅程將賦能套件分為四個部分:感知、學習與評估、開發上架、支持

HarmonyOS開發知識地圖,改圖完整涵蓋了開發者從學習到投入項目實戰開發以及應用最終發布上線的全旅程知識導航,

在感知階段,開發者可以通過白皮書了解認識HarmonyOS應用開發的核心理念、關鍵能力和創新體驗

在學習與評估階段,為了幫助開發者能快速上手HarmonyOS應用開發,我們提供了一個快速入門教程,通過手把手的Codelabs教學案例和視頻課程,帶領開發者完成一個HarmonyOS應用的開發,同時,我們為開發者提供了豐富的視頻課程以及一系列配套的Codelabs動手案例,幫助開發者真正掌握HarmonyOS應用開發,還可以結合對應的HarmonyOS應用開發者認證來評估你當前的開發水平;

在開發和上架階段,提供了配套的開發者指南、API參考、最佳實踐、技術文章以及一系列對應的Sample來幫助開發者開發出屬于自己的HarmonyOS應用,還特別準備了一個符合HarmonyOS應用架構設計和最佳實踐的中大型應用——鴻蒙世界(APP)該份代碼已開源,FAQ常見問題解答和開發者論壇則全程支持,為開發者進行答疑解惑。

賦能套件旨在賦能應用開發者高質、高效助力開發者開發出更優用戶體驗的應用

HarmonyOS開發知識地圖

知識地圖

基于開發者任務旅程的知識地圖,聚合官方套件,幫助開發者一站式便捷獲取信息

賦能套件全景——白皮書

《鴻蒙生態白皮書》——《鴻蒙生態應用開發白皮書》和《鴻蒙生態應用安全技術白皮書》全面闡釋了鴻蒙生態下應用開發核心理念、關鍵能力以及創新體驗,旨在幫助開發者快速、準確、全面的了解HarmonyOS開發套件給開發者提供的能力全景和未來的愿景。

快速入門教程

通過手把手的教學實踐案例,從零基礎開始,帶你快速開發一個簡單的HarmonyOS應用,快速掃清繼續學習的障礙,產生開發HarmonyOS應用的興趣。支撐有經驗的開發者,快速投入項目實戰開發。

賦能套件全景——視頻課程

在視頻課程中,開發者可以通過代碼講解的方式深入了解HarmonyOS的技術特性和能力,即學即練,從而更加深入地理解和掌握技術。

基礎課程:

中級課程:

高級課程:

賦能套件全景——CodeLabs

CodeLabs是一種全新發布的場景化案例,它們的數量豐富,分層分級,并且結合了最佳實踐,為開發者提供了豐富的學習資源和實踐經驗。

賦能套件全景——開發指南

開發指南的內容包括相關概念的定義、原理機制的解釋、詳細的開發步驟以及調試驗證的指導等,幫助開發者全面掌握HarmonyOS UI的能力和開發流程。

賦能套件全景——API參考

API參考為開發者提供了清晰的功能描述、詳細的參數說明、完善的權限信息以及規范的示例代碼,能夠幫助開發者更快地理解和使用HarmonyOS的API。

賦能套件全景——最佳實踐

最佳實踐涵蓋了應用架構、性能優化、多端開發實例、流水線搭建等方面,旨在幫助開發者構建高體驗的應用。

HarmonyOS還提供了一個優秀的實踐案例“HMOS世界”APP,展示了HarmonyOS 2D特性在實際開發中的運用。

賦能套件全景——Sample

Sample對于開發者具有實際使用價值,幫助開發者理解技術原理,開發者可重用代碼片段,快速搭建出原型驗證,有助于節省開發時間。

賦能套件全景——FAQ

在HarmonyOS應用開發的全程中,我們還提供了FAQ作為支持,提高開發效率和開發質量。我們為開發者獲取FAQ提供了以下途徑:

  • 智能客服:全量FAQ內容的載體,負責主要的內容輸出。開發者輸入FAQ問題內容,即可獲得對應問題的參考答案。

  • FAQ:開發者可以瀏覽FAQ的各個分類和問題,找到自己需要的答案。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78234.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78234.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78234.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

25.4.30數據結構|并查集 路徑壓縮

書接上回 上一節:數據結構|并查集 前言 (一)理論理解: 1、在QuickUnion快速合并的過程中,每次都要找根ID,而路徑壓縮讓找根ID變得更加迅速直接。 2、路徑壓縮 針對的是findRootIndex()【查找根ID】進行的壓…

C++-Lambda表達式

目錄 1.什么是 Lambda? 2.例子:打印每個元素(和 for_each 一起用) 3.捕獲外部變量(Capture) 3.1. 捕獲值(拷貝):[] 3.2. 捕獲引用:[&] 3.3. 指定捕…

每日一題洛谷P8635 [藍橋杯 2016 省 AB] 四平方和c++

P8635 [藍橋杯 2016 省 AB] 四平方和 - 洛谷 (luogu.com.cn) 直接暴力枚舉,不做任何優化的話最后會TLE一個,稍微優化一下就過了(數據給的還是太良心了) 優化:每層循環用if判斷一下,如果大于n就直接跳 當然…

羅技K580藍牙鍵盤連接mac pro

羅技K580藍牙鍵盤,滿足了我們的使用需求。最棒的是,它能夠同時連接兩個設備,通過按F11和F12鍵進行切換,簡直不要太方便! 連接電腦 💻 USB連接 1、打開鍵盤:雙手按住凹槽兩邊向前推&#xff0…

C語言與指針3——基本數據類型

誤區補充 char 的 表示范圍0-127 signed char 127 unsigned char 0-255enum不常用,但是常見,這里記錄一下。 enum Day {Monday 1,//范圍是IntTuesday 2,Wednesday 3 }; enum Day d Monday; switch (d) {case Monday:{printf("%d",Monday);…

如何理解 MCP 和 A2A 的區別?|AI系統架構科普

你有沒有發現,現在越來越多AI項目的架構圖里,都開始出現一些看不懂的新縮寫。 MCP(Multi-component Pipeline),還有另一個也經常出現在大模型系統搭建中的詞,叫 A2A(Agent-to-Agent)。 這倆東西看起來都跟智能體(Agent)有關,但到底有啥區別?誰更強?誰更適合你?…

C語言中 typedef 關鍵字

在C語言中,typedef 關鍵字用于為現有數據類型定義新的別名(類型重命名),其核心目的是?提高代碼可讀性?和?簡化復雜類型的聲明?。以下是其用法詳解及典型場景: 1.基本語法? typedef original_type new_type_name…

Learning vtkjs之TubeFilter

過濾器 沿著線生成管道 介紹 vtkTubeFilter - 一個在每條輸入線周圍生成管的過濾器 vtkTubeFilter是一個在每條輸入線周圍生成管的過濾器。管由三角形條帶組成,并隨著線法線的旋轉而旋轉。如果沒有法線存在,它們會自動計算。管的半徑可以根據標量或向…

python常用科學計算庫及使用示例

?一、NumPy - 數值計算基礎庫?? ??安裝?? pip install numpy ??核心功能示例?? 1. 數組創建與運算 import numpy as np# 創建數組 arr np.array([1, 2, 3, 4]) matrix np.array([[1, 2], [3, 4]])# 數學運算 print(arr 1) # [2 3 4 5] print(matrix …

中科院黃飛敏等人證明希爾伯特第六問題使用的或然判斷(估計)-沒有使用演繹推理的必然判斷

國家自然科學基金委在2013年介紹黃飛敏的工作,居然是錯誤的:黃飛敏等人73頁的論文,全篇都是用或然判斷的“估計”代替必然判斷的演繹證明,將沒有實驗的推演當成事實。 首頁 >>年度報告 >>2013年度報告 >>第二部…

【安裝指南】Chat2DB-集成了AI功能的數據庫管理工具

一、Chat2DB 的介紹 Chat2DB 是一款開源的、AI 驅動的數據庫工具和 SQL 客戶端,提供現代化的圖形界面,支持 MySQL、Oracle、PostgreSQL、DB2、SQL Server、SQLite、H2、ClickHouse、BigQuery 等多種數據庫。它旨在簡化數據庫管理、SQL 查詢編寫、報表生…

vite項目tailwindcss4的使用

1、安裝taillandcss 前幾天接手了一個項目,看到別人用tailwindcss節省了很多css代碼的編寫,所以自己也想在公司項目中接入tailwindcss。 官網教程如下: Installing Tailwind CSS with Vite - Tailwind CSS 然而,我在vite中按…

第 13 屆藍橋杯 C++ 青少組省賽中 / 高級組 2022 年真題

一、選擇題 第 1 題 題目:已知char a; float b; double c;,執行語句c a b c;后變量c的類型是( )。 A. char B. float C. double D. int 正確答案:C 答案解析: 在 C 中,表達式運算會進行類型…

解決GoLand無法Debug的問題

文章目錄 解決GoLand無法Debug的問題問題描述解決方案方法一:安裝并替換Delve調試工具方法二:通過GoLand自動安裝方法三:配置自定義Delve路徑 驗證解決方案常見問題排查總結 解決GoLand無法Debug的問題 問題描述 在使用GoLand進行Go語言開發…

5.2刷題

P1064 [NOIP 2006 提高組] 金明的預算方案 背包&#xff0b;附屬品DP #include<bits/stdc.h> using namespace std; #define int long long int n, m, v, p, q; struct node{int id, v, s, f; }a[100]; int b[32010], dp[32010]; bool cmp(node a, node b){if(a.id b.…

輕舟系列FPGA加速卡:大模型分布式訓練中的高效協同者

在超大規模模型&#xff08;如千億級參數&#xff09;的分布式訓練中&#xff0c;計算、存儲與通信的協同優化是突破性能瓶頸的關鍵。綠算技術公司的輕舟系列FPGA加速卡憑借其低延遲、高能效和可編程特性&#xff0c;能夠成為分布式訓練架構中的異構加速節點。其在訓練集群中的…

序列數據(Sequential Data)??:按順序排列的動態信息載體

核心定義?? 序列數據是??按特定順序排列??的數據集合&#xff0c;其中元素的??位置或時間順序??蘊含關鍵信息。例如&#xff1a; ??時間序列??&#xff1a;股票價格、氣溫變化&#xff08;按時間戳排列&#xff09;。??文本??&#xff1a;句子中的詞語序列…

【單片機數碼管實現第一位開始走0~9,1s后第二位再開始亮】2022-5-2

緣由怎么讓單片機數碼管實現第一位開始走0~9,1s后第二位再開始亮? - 24小時必答區 #include "REG52.h" void sm7447(unsigned char mz, unsigned char w) {unsigned char Xd0;P2255;P2mz;P3w;while(Xd); } void main() {unsigned char jz0,zhi128;unsigned int Ys4…

InnoDB索引的原理

在鵝廠后端開發一面&#xff0c;我遇到了如題這樣一個比較寬泛的問題&#xff0c;當時可能只是背了相關概念&#xff0c;對于索引的了解不是很深刻。 最近&#xff0c;我花了很大的功夫去深入了解MySQL的索引。 下面是我的一些思考&#xff1a; 索引&#xff0c;對于InnoDB來說…

FormCalc 支持的編程語言和軟件

FormCalc 是一種專為 PDF 表單計算設計的腳本語言&#xff0c;主要應用于 Adobe 生態及 SAP 相關工具。以下是支持 FormCalc 的主要軟件和平臺&#xff1a; 1. Adobe LiveCycle Designer&#xff08;最佳支持&#xff09; 原生支持&#xff1a;FormCalc 是 LiveCycle Designe…