色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙應用模型:【Ability Kit】簡介

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-29 14:41 ? 次閱讀

Ability Kit簡介

Ability Kit(程序框架服務)提供了應用程序開發和運行的應用模型,是系統為開發者提供的應用程序所需能力的抽象提煉,它提供了應用程序必備的組件和運行機制。有了應用模型,開發者可以基于一套統一的模型進行應用開發,使應用開發更簡單、高效。

使用場景

  • 應用的多Module開發:應用可通過不同類型的Module(HAP、HAR、HSP)來實現應用的功能開發。其中,HAP用于實現應用的功能和特性,HAR與HSP用于實現代碼和資源的共享。
  • 應用內的交互:應用內的不同組件之間可以相互跳轉。比如,在支付應用中,通過入口UIAbility組件啟動收付款UIAbility組件。
  • 應用間的交互:當前應用可以啟動其他應用,來完成某個任務或操作。比如,啟動瀏覽器應用來打開網站、啟動文件應用來瀏覽或編輯文件等。
  • 應用的跨設備流轉:通過應用的跨端遷移和多端協同,獲得更好的使用體驗。比如,在平板上播放的視頻,遷移到智慧屏繼續播放。
  • 開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

能力范圍

  • 提供應用進程創建和銷毀、應用生命周期調度能力。
  • 提供應用組件運行入口、應用組件生命周期調度、組件間交互等能力。
  • 提供應用上下文環境、系統環境變化監聽等能力。
  • 提供應用流轉能力。
  • 提供多包機制、共享包、應用信息配置等能力,詳見[應用程序包概述]。

應用程序包概述

在基于[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)。

    說明:

    實際上,Shared Library編譯后除了會生成一個.hsp文件,還會生成一個.har文件。這個.har文件中包含了HSP對外導出的接口,應用中的其他模塊需要通過.har文件來引用HSP的功能。為了表述方便,我們通常認為Shared Library編譯后生成HSP。

    HAR與HSP兩種共享包的主要區別體現在:

    共享包類型編譯和運行方式發布和引用方式
    HARHAR中的代碼和資源跟隨使用方編譯,如果有多個使用方,它們的編譯產物中會存在多份相同拷貝。HAR除了支持應用內引用,還可以獨立打包發布,供其他應用引用。
    HSPHSP中的代碼和資源可以獨立編譯,運行時在一個進程中代碼也只會存在一份。HSP一般隨應用進行打包,當前只支持應用內引用,不支持獨立發布和跨應用的引用。

    圖1 HAR和HSP在APP包中的形態示意圖
    in-app-hsp-har

  • 提供程序訪問控制能力,詳見[訪問控制概述]。

訪問控制概述

默認情況下,應用只能訪問有限的系統資源。但某些情況下,應用存在擴展功能的訴求,需要訪問額外的系統數據(包括用戶個人數據)和功能,系統也必須以明確的方式對外提供接口來共享其數據或功能。

系統通過訪問控制的機制,來避免數據或功能被不當或惡意使用。當前訪問控制的機制涉及多方面,包括應用沙箱、應用權限、系統控件等方案。

應用沙箱

系統上運行的應用程序均部署在受保護的沙箱中,通過沙箱的安全隔離機制,可以限制應用程序的不當行為(如應用間非法訪問數據、篡改設備等)。每個程序都擁有唯一的ID([TokenID]),系統基于此ID識別與限制應用的訪問行為。

應用沙箱限定了只有目標受眾才能訪問應用內的數據,并限定了應用可訪問的數據范圍。

應用權限

系統根據應用的[APL]等級設置進程域和數據域標簽,并通過訪問控制機制限制應用可訪問的數據范圍,從而實現在機制上消減應用數據泄露的風險。

不同APL等級的應用能夠申請的權限等級不同,且不同的系統資源(如:通訊錄等)或系統能力(如:訪問攝像頭、麥克風等)受不同的應用權限保護。通過嚴格的分層權限保護,有效抵御惡意攻擊,確保系統安全可靠。

系統控件

系統提供了系統Picker、安全控件等臨時授權的方式替代權限申請,在特定的場景中,應用無需向用戶申請權限也可臨時訪問受限資源,實現精準化權限管控,更好地保護用戶隱私。

  • [系統Picker]
    由系統獨立進程實現,在應用拉起Picker,并由用戶操作Picker后,應用可以獲取Picker返回的資源或結果。舉例說明,當應用需要讀取用戶圖片時,可通過使用照片Picker,在用戶選擇所需要的圖片資源后,直接返回該圖片資源,而不需要授予應用讀取圖片文件的權限。
  • [安全控件]
    由系統提供UI控件,應用在界面內集成對應控件,用戶點擊后,應用將獲得臨時授權,從而執行相關操作。舉例說明,當應用需要分享當前位置時,可使用位置控件,用戶點擊后,將會在本次前臺期間獲得精準定位的授權,可以調用位置服務獲取精準定位。當發生滅屏、應用切后臺、應用退出等任一情況時,臨時授權結束。

亮點/特征

  1. 為復雜應用而設計
    • 多個應用組件共享同一個ArkTS引擎(運行ArkTS語言的虛擬機)實例,應用組件之間可以方便的共享對象和狀態,同時減少復雜應用運行對內存的占用。
    • 采用面向對象的開發方式,使得復雜應用代碼可讀性高、易維護性好、可擴展性強。
    • 提供模塊化能力開發的支持。
  2. 原生支持應用組件級的跨端遷移和多端協同
    Stage模型實現了應用組件與UI解耦:
    • 在跨端遷移場景下,系統在多設備的應用組件之間遷移數據/狀態后,UI便可利用ArkUI的聲明式特點,通過應用組件中保存的數據/狀態恢復用戶界面,便捷實現跨端遷移。
    • 在多端協同場景下,應用組件具備組件間通信的RPC調用能力,天然支持跨設備應用組件的交互。
  3. 支持多設備和多窗口形態
    應用組件管理和窗口管理在架構層面解耦:
    • 便于系統對應用組件進行裁剪(無屏設備可裁剪窗口)。
    • 便于系統擴展窗口形態。
    • 在多設備(如桌面設備和移動設備)上,應用組件可使用同一套生命周期。
  4. 平衡應用能力和系統管控成本
    Stage模型重新定義應用能力的邊界,平衡應用能力和系統管控成本。
    • 提供特定場景(如服務卡片、輸入法)的應用組件,以便滿足更多的使用場景。
    • 規范化后臺進程管理:為保障用戶體驗,Stage模型對后臺應用進程進行了有序治理,應用程序不能隨意駐留在后臺,同時應用后臺行為受到嚴格管理,防止惡意應用行為。
    • HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

鴻蒙文檔.png

與相關Kit的關系

ArkUI: Ability Kit在UIAbility組件可以使用ArkUI提供的組件、事件、動效、狀態管理等能力。

ArkTS:ArkTS提供了語言運行時相關能力。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3248

    瀏覽量

    48859
  • Module
    +關注

    關注

    0

    文章

    68

    瀏覽量

    12858
  • 鴻蒙
    +關注

    關注

    57

    文章

    2358

    瀏覽量

    42869
收藏 人收藏

    評論

    相關推薦

    鴻蒙開發Ability Kit程序框架服務:FA模型切換Stage模型概述

    本文介紹如何將一個FA模型開發的聲明式范式應用切換到Stage模型
    的頭像 發表于 06-26 14:40 ?343次閱讀
    <b class='flag-5'>鴻蒙</b>開發<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>程序框架服務:FA<b class='flag-5'>模型</b>切換Stage<b class='flag-5'>模型</b>概述

    鴻蒙開發Ability Kit程序框架服務:Stage模型啟動FA模型PageAbility

    本小節介紹Stage模型的兩種應用組件如何啟動FA模型的PageAbility組件。
    的頭像 發表于 06-26 09:50 ?374次閱讀
    <b class='flag-5'>鴻蒙</b>開發<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>程序框架服務:Stage<b class='flag-5'>模型</b>啟動FA<b class='flag-5'>模型</b>PageAbility

    鴻蒙開發Ability Kit程序框架服務:Stage模型綁定FA模型ServiceAbility

    本小節介紹Stage模型的兩種應用組件如何綁定FA模型ServiceAbility組件。
    的頭像 發表于 06-25 21:47 ?310次閱讀
    <b class='flag-5'>鴻蒙</b>開發<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>程序框架服務:Stage<b class='flag-5'>模型</b>綁定FA<b class='flag-5'>模型</b>ServiceAbility

    鴻蒙開發Ability Kit程序框架服務:FA模型啟動Stage模型UIAbility

    本文介紹FA模型的三種應用組件如何啟動Stage模型的UIAbility組件。
    的頭像 發表于 06-25 16:00 ?370次閱讀
    <b class='flag-5'>鴻蒙</b>開發<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>程序框架服務:FA<b class='flag-5'>模型</b>啟動Stage<b class='flag-5'>模型</b>UIAbility

    鴻蒙開發Ability Kit程序框架服務:FA模型訪問Stage模型DataShareExtensionAbility

    無論FA模型還是Stage模型,數據讀寫功能都包含客戶端和服務端兩部分。
    的頭像 發表于 06-25 14:30 ?399次閱讀
    <b class='flag-5'>鴻蒙</b>開發<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>程序框架服務:FA<b class='flag-5'>模型</b>訪問Stage<b class='flag-5'>模型</b>DataShareExtensionAbility

    鴻蒙開發Ability Kit程序框架服務:FA模型綁定Stage模型ServiceExtensionAbility

    本文介紹FA模型的三種應用組件如何綁定Stage模型的ServiceExtensionAbility組件。
    的頭像 發表于 06-25 10:43 ?299次閱讀
    <b class='flag-5'>鴻蒙</b>開發<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>程序框架服務:FA<b class='flag-5'>模型</b>綁定Stage<b class='flag-5'>模型</b>ServiceExtensionAbility

    鴻蒙開發Ability Kit程序框架服務:FA模型與Stage模型應用組件互通綜述

    FA模型與Stage模型是兩套不同的應用模型,他們擁有各自的組件。FA模型提供三種應用組件,分別是PageAbility、ServiceAbility和DataAbility。Stag
    的頭像 發表于 06-24 16:43 ?537次閱讀
    <b class='flag-5'>鴻蒙</b>開發<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>程序框架服務:FA<b class='flag-5'>模型</b>與Stage<b class='flag-5'>模型</b>應用組件互通綜述

    鴻蒙Ability Kit(程序框架服務)【Ability與ServiceExtensionAbility通信】

    本示例展示通過[IDL的方式]和?[@ohos.rpc]?等接口實現了Ability與ServiceExtensionAbility之間的通信。
    的頭像 發表于 06-05 09:28 ?495次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(程序框架服務)【<b class='flag-5'>Ability</b>與ServiceExtensionAbility通信】

    鴻蒙Ability Kit(程序框架服務)【Ability內頁面間的跳轉】

    基于Stage模型下的Ability開發,實現Ability內頁面間的跳轉和數據傳遞。
    的頭像 發表于 06-03 20:43 ?303次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(程序框架服務)【<b class='flag-5'>Ability</b>內頁面間的跳轉】

    鴻蒙開發接口Ability框架:【AbilityDelegator】

    AbilityDelegator提供添加用于監視指定能力的生命周期狀態更改的AbilityMonitor對象的能力,包括對AbilityMonitor實例的添加、刪除、等待ability到達
    的頭像 發表于 05-16 16:48 ?938次閱讀
    <b class='flag-5'>鴻蒙</b>開發接口<b class='flag-5'>Ability</b>框架:【AbilityDelegator】

    鴻蒙開發接口Ability框架:【(AbilityDelegator)】

    AbilityDelegator提供添加用于監視指定能力的生命周期狀態更改的AbilityMonitor對象的能力,包括對AbilityMonitor實例的添加、刪除、等待ability到達
    的頭像 發表于 05-13 17:58 ?963次閱讀
    <b class='flag-5'>鴻蒙</b>開發接口<b class='flag-5'>Ability</b>框架:【(AbilityDelegator)】

    鴻蒙開發接口Ability框架:【(AbilityContext)】

    AbilityContext是Ability的上下文環境,繼承自Context。
    的頭像 發表于 05-13 09:26 ?1019次閱讀
    <b class='flag-5'>鴻蒙</b>開發接口<b class='flag-5'>Ability</b>框架:【(AbilityContext)】

    HarmonyOS開發案例:【Stage模型Ability的創建和使用】

    基于Stage模型,對Ability的創建和使用進行講解。首先在課程中我們將帶領大家使用DevEco Studio創建一個Stage模型Ability,并使用UIAbilityCont
    的頭像 發表于 05-08 14:41 ?743次閱讀
    HarmonyOS開發案例:【Stage<b class='flag-5'>模型</b>下<b class='flag-5'>Ability</b>的創建和使用】

    鴻蒙開發接口Ability框架:【@ohos.application.Ability (Ability)】

    Ability模塊提供對Ability生命周期、上下文環境等調用管理的能力,包括Ability創建、銷毀、轉儲客戶端信息等。
    的頭像 發表于 04-30 17:42 ?2272次閱讀
    <b class='flag-5'>鴻蒙</b>開發接口<b class='flag-5'>Ability</b>框架:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】

    鴻蒙Ability開發-Stage模型Ability的創建和使用

    Ability開發技術的簡單運用,更多的鴻蒙開發技術可以前往我主頁查詢,下面分享鴻蒙開發4.0技術分布(略縮圖): 高清完整版技術學習路線圖如下尋找保存(附鴻蒙文檔) 基于St
    發表于 01-08 15:34
    主站蜘蛛池模板: 国产乱人视频在线观看| 嫩草影院地址一地址二| 久久精品观看| 欧美丰满熟妇无码XOXOXO| 色欲久久精品AV无码| 亚洲一区二区免费看| 国产午夜精品久久理论片| 色婷婷激情AV精品影院| 成人中文字幕在线观看| 热综合一本伊人久久精品| FREE另类老女人| 教室里的激情电影| 欧美亚洲日韩在线在线影院 | 亚洲欧美日韩高清中文在线| 国产精品你懂得| 男女肉大捧进出全过程免费| 亚洲成片在线看| 成人免费毛片观看| 日本久久精品视频| 最近的2019中文字幕国语HD| 鲁大师影院在线视频在线观看| 校草让我脱了内裤给全班看| 扒开腿狂躁女人GIF动态图| 欧美自拍亚洲综合图区| 成人国产在线视频| 忘忧草在线社区WWW日本-韩国| 99久久久久亚洲AV无码| 娇小XXXXX第一次出血| 樱桃视频高清免费观看在线播放| 国产精品久人妻精品| 性XXXXX搡XXXXX搡景甜| 精品国产露脸久久AV麻豆| 竹菊精品久久久久久久99蜜桃| 农民工老头在出租屋嫖老熟女| 大迪克黑人异族| 亚洲精品无码不卡在线播放he| 高h np 强j 乱l 双性| 桥本有菜黑丝| 国产欧美一区二区三区久久| 色琪琪无码成人AV视频| 国语对白老女人8av|