sroxck

sroxck

鸿蒙應用程序包與ArkUI

在基於 Stage 模型開發應用之前,開發者需要了解應用的設計機制、應用程序包結構等基礎知識。

應用與應用程序包#

用戶應用程序泛指運行在設備的操作系統之上,為用戶提供特定服務的程序,簡稱 “應用”。一個應用所對應的軟件包文件,稱為 “應用程序包”。

當前系統提供了應用程序包開發、安裝、查詢、更新、卸載的管理機制,便於開發者開發和管理應用。同時,系統還屏蔽了不同的芯片平台的差異(包括 x86/ARM,32 位 / 64 位等),應用程序包在不同的芯片平台都能夠安裝運行,這使得開發者可以聚焦於應用的功能實現。

應用的多 Module 設計機制#

  • 支持模塊化開發: 一個應用通常會包含多種功能,將不同的功能特性按模塊來劃分和管理是一種良好的設計方式。在開發過程中,我們可以將每個功能模塊作為一個獨立的 Module 進行開發,Module 中可以包含源代碼、資源文件、第三方庫、配置文件等,每一個 Module 可以獨立編譯,實現特定的功能。這種模塊化、鬆耦合的應用管理方式有助於應用的開發、維護與擴展。

  • 支持多設備適配: 一個應用往往需要適配多種設備類型,在採用多 Module 設計的應用中,每個 Module 都會標註所支持的設備類型。有些 Module 支持全部類型的設備,有些 Module 只支持某一種或幾種型的設備(比如平板),那麼在應用市場分發應用包時,也能夠根據設備類型做精準的篩選和匹配,從而將不同的包合理的組合和部署到對應的設備上。

Module 類型#

Module 按照使用場景可以分為兩種類型:

  • Ability 類型的 Module: 用於實現應用的功能和特性。每一個 Ability 類型的 Module 編譯後,會生成一個以.hap 為後綴的文件,我們稱其為 HAP(Harmony Ability Package)包。HAP 包可以獨立安裝和運行,是應用安裝的基本單位,一個應用中可以包含一個或多個 HAP 包,具體包含如下兩種類型。

    • entry 類型的 Module:應用的主模塊,包含應用的入口界面、入口圖標和主功能特性,編譯後生成 entry 類型的 HAP。每一個應用分發到同一類型的設備上的應用程序包,只能包含唯一一個 entry 類型的 HAP。
    • feature 類型的 Module:應用的動態特性模塊,編譯後生成 feature 類型的 HAP。一個應用中可以包含一個或多個 feature 類型的 HAP,也可以不包含。
  • Library 類型的 Module: 用於實現代碼和資源的共享。同一個 Library 類型的 Module 可以被其他的 Module 多次引用,合理地使用該類型的 Module,能夠降低開發和維護成本。Library 類型的 Module 分為 Static 和 Shared 兩種類型,編譯後會生成共享包。

    • Static Library:靜態共享庫。編譯後會生成一個以.har 為後綴的文件,即靜態共享包 HAR(Harmony Archive)。
    • Shared Library:動態共享庫。編譯後會生成一個以.hsp 為後綴的文件,即動態共享包 HSP(Harmony Shared Package)。

ArkUI 方舟 ui#

ArkUI(方舟 UI 框架)為應用的 UI 開發提供了完整的基礎設施,包括簡潔的 UI 語法、豐富的 UI 功能(組件、佈局、動畫以及交互事件),以及實時界面預覽工具等,可以支持開發者進行可視化界面開發。

基本概念#

  • UI: 即用戶界面。開發者可以將應用的用戶界面設計為多個功能頁面,每個頁面進行單獨的文件管理,並通過頁面路由 API 完成頁面間的調度管理如跳轉、回退等操作,以實現應用內的功能解耦。

  • 組件: UI 構建與顯示的最小單位,如列表、網格、按鈕、單選框、進度條、文本等。開發者通過多種組件的組合,構建出滿足自身應用訴求的完整界面。

兩種開發範式#

  • 聲明式開發範式:採用基於 TypeScript 聲明式 UI 語法擴展而來的 ArkTS 語言,從組件、動畫和狀態管理三個維度提供 UI 繪製能力。

  • 類 Web 開發範式:採用經典的 HML、CSS、JavaScript 三段式開發方式,即使用 HML 標籤文件搭建佈局、使用 CSS 文件描述樣式、使用 JavaScript 文件處理邏輯。該範式更符合於 Web 前端開發者的使用習慣,便於快速將已有的 Web 應用改造成方舟 UI 框架應用。

基於 ArkTS 的聲明式開發範式的方舟開發框架是一套開發極簡、高性能、支持跨設備的 UI 開發框架,提供了構建應用 UI 所必需的能力,主要包括:

ArkUI 開發框架

此文由 Mix Space 同步更新至 xLog 原始鏈接為 http://www.sroxck.top/posts/harmony/arkui

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。