在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

鴻蒙OS開發:典型頁面場景【一次開發,多端部署】(功能開發)

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-05-28 17:32 ? 次閱讀

功能開發的一多能力介紹

應用開發至少包含兩部分工作: UI頁面開發和底層功能開發(部分需要聯網的應用還會涉及服務端開發)。前面章節介紹了如何解決頁面適配的問題,本章節主要介紹應用如何解決設備系統能力差異的兼容問題。

系統能力

[系統能力](即SystemCapability,縮寫為SysCap)指操作系統中每一個相對獨立的特性,如藍牙,WIFI,NFC,攝像頭等,都是系統能力之一。每個系統能力對應多個API,隨著目標設備是否支持該系統能力共同存在或消失。

與系統能力相關的,有支持能力集、聯想能力集和要求能力集三個核心概念。

  • 支持能力集 :設備具備的系統能力集合,在設備配置文件中配置。
  • 要求能力集 :應用需要的系統能力集合,在應用配置文件中配置。
  • 聯想能力集 :開發應用時IDE可聯想的API所在的系統能力集合,在應用配置文件中配置。

說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

  • 只有當應用要求能力集是設備支持能力集的子集的時候,應用才可以在該設備上分發、安裝和運行。
  • 可以訪問[系統能力列表]了解全量的系統能力。
  • 支持的設備類型分為兩大類: 典型設備和廠商自定義設備。默認設備、平板等常用的設備類型屬于典型設備,其它的屬于廠商自定義設備。對于典型設備,系統已經預定義了相應的系統能力集合;對于廠商自定義設備,需要廠商給出其系統能力集合的定義。

設備要求能力集的獲取及導入

對于廠商自定義設備,需要開發者自行從廠商處獲取該設備的要求能力集并導入到IDE中。

在IDE中點擊File->New->Import...后選擇“Import Product Compatibility ID”即可選擇及導入設備要求能力集,導入后的設備要求能力集會被寫入工程的syscap.json文件中。

20230920-103626

多設備應用開發

開發多設備應用時,工程中默認的要求能力集是多個設備支持能力集的交集,默認的聯想能力集是多個設備支持能力集的并集。

  • 開發者可以在運行時動態判斷某設備是否支持特定的系統能力。
  • 開發者可以自行修改聯想能力集和要求能力集。

動態邏輯判斷

如果某個系統能力沒有寫入應用的要求能力集中,那么在使用前需要判斷設備是否支持該系統能力。

  • 方法1:canIUse接口幫助開發者來判斷該設備是否支持某個特定的syscap。
    if (canIUse("SystemCapability.Communication.NFC.Core")) {
       console.log("該設備支持SystemCapability.Communication.NFC.Core");
    } else {
       console.log("該設備不支持SystemCapability.Communication.NFC.Core");
    }
    
  • 方法2:開發者可通過import的方式將模塊導入,若當前設備不支持該模塊,import的結果為undefined,開發者在使用其API時,需要判斷其是否存在。
    import controller from '@ohos.nfc.controller';
    try {
        controller.enableNfc();
        console.log("controller enableNfc success");
    } catch (busiError) {
        console.log("controller enableNfc busiError: " + busiError);
    }
    

說明:

  • 如果某系統能力是應用運行必須的,則要將其寫入到應用的要求能力集中,以確保應用不會分發和安裝到不符合要求的設備上。
  • 如果某系統能力不是應用運行必須的,則可以在運行時做動態判斷,這樣可以最大程度擴大應用的適用范圍。

配置聯想能力集和要求能力集

IDE會根據創建的工程所支持的設備自動配置聯想能力集和要求能力集,同時也支持開發者修改。

// syscap.json
{
	"devices": {
		"general": [            // 每一個典型設備對應一個syscap支持能力集,可配置多個典型設備
			"default",
			"tablet"
		],
		"custom": [             // 廠家自定義設備
			{
				"某自定義設備": [
					"SystemCapability.Communication.SoftBus.Core"
				]
			}
		]
	},
	"development": {             // addedSysCaps內的sycap集合與devices中配置的各設備支持的syscap集合的并集共同構成聯想能力集
		"addedSysCaps": [
			"SystemCapability.Communication.NFC.Core"
		]
	},
	"production": {              // 用于生成rpcid,慎重添加,可能導致應用無法分發到目標設備上
		"addedSysCaps": [],      // devices中配置的各設備支持的syscap集合的交集,添加addedSysCaps集合再除去removedSysCaps集合,共同構成要求能力集
		"removedSysCaps": []     // 當該要求能力集為某設備的子集時,應用才可被分發到該設備上
	}
}

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

搜狗高速瀏覽器截圖20240326151547.png

說明:

  • 對于要求能力集,開發者修改時要十分慎重,修改不當會導致應用無法分發和安裝到目標設備上。
  • 對于聯想能力集,通過增加系統能力可以擴大IDE可聯想的API范圍。但要注意這些API可能在某些設備上不支持,使用前需要判斷。

總結

從應用開發到用戶使用,通常要經歷應用分發和下載、應用安裝、應用運行等環節。借助SysCap機制,可以在各個環節中加以攔截或管控,保證應用可以在設備上正常安裝和使用。

  • 應用分發和下載:只有當應用要求能力集是設備支持能力集的子集時(即設備滿足應用運行要求),應用才可以分發到該設備。
  • 應用安裝:只有當應用要求能力集是設備支持能力集的子集時,應用才可以安裝到該設備。
  • 應用運行:應用在使用要求能力集之外的能力前,需要動態判斷相應系統能力的有效性,防止崩潰或功能異常等問題。

SysCap機制可以幫助開發者僅關注設備的系統能力,而不用考慮成百上千種具體的設備類型,降低多設備應用開發難度。

審核編輯 黃宇

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

    關注

    0

    文章

    338

    瀏覽量

    46754
  • 鴻蒙
    +關注

    關注

    57

    文章

    2351

    瀏覽量

    42850
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    188

    瀏覽量

    4391
收藏 人收藏

    評論

    相關推薦

    HarmonyOS開發案例:【一次開發多端部署(視頻應用)】

    者提供了“一次開發多端部署”的系統能力,讓開發者可以基于一次
    的頭像 發表于 05-11 15:41 ?1466次閱讀
    HarmonyOS<b class='flag-5'>開發</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>(視頻應用)】

    HarmonyOS開發案例:【一次開發多端部署-音樂專輯】

    基于自適應和響應式布局,實現一次開發多端部署音樂專輯頁面
    的頭像 發表于 05-13 16:48 ?690次閱讀
    HarmonyOS<b class='flag-5'>開發</b>案例:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>-音樂專輯】

    鴻蒙OS開發:【一次開發多端部署】(天氣應用)案例

    本章通過個天氣應用,介紹多應用的整體開發過程,包括UX設計、工程管理及調試、頁面開發等。
    的頭像 發表于 05-15 15:42 ?1052次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(天氣應用)案例

    鴻蒙OS開發:【一次開發多端部署】(多天氣)項目

    本示例展示個天氣應用界面,包括首頁、城市管理、添加城市、更新時間彈窗,體現一次開發多端部署的能力。
    的頭像 發表于 05-20 14:59 ?845次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>一</b>多天氣)項目

    鴻蒙OS開發:【一次開發多端部署】(音樂專輯主頁)

    本示例使用一次開發多端部署中介紹的自適應布局能力和響應式布局能力進行多設備(或多窗口尺寸)適配,保證應用在不同設備或不同窗口尺寸下可以正常顯示。
    的頭像 發表于 05-21 14:48 ?747次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂專輯主頁)

    鴻蒙OS開發:【一次開發多端部署】(音樂專輯頁面

    基于自適應和響應式布局,實現一次開發多端部署音樂專輯頁面
    的頭像 發表于 05-25 16:21 ?804次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(音樂專輯<b class='flag-5'>頁面</b>)

    鴻蒙OS開發:【一次開發多端部署】(視頻應用)

    者提供了“一次開發多端部署”的系統能力,讓開發者可以基于一次
    的頭像 發表于 05-25 16:29 ?4545次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(視頻應用)

    鴻蒙OS開發:【一次開發多端部署】(典型布局場景

    雖然不同應用的頁面千變萬化,但對其進行拆分和分析,頁面中的很多布局場景是相似的。本小節將介紹如何借助自適應布局、響應式布局以及常見的容器類組件,實現應用中的典型布局
    的頭像 發表于 05-25 16:39 ?2162次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(<b class='flag-5'>典型</b>布局<b class='flag-5'>場景</b>)

    鴻蒙OS開發典型頁面場景一次開發多端部署】實戰(音樂專輯頁2)

    本示例使用[一次開發多端部署]中介紹的自適應布局能力和響應式布局能力進行多設備(或多窗口尺寸)適配,保證應用在不同設備或不同窗口尺寸下可以正常顯示。
    的頭像 發表于 05-25 16:47 ?2108次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:<b class='flag-5'>典型</b><b class='flag-5'>頁面</b><b class='flag-5'>場景</b>【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實戰(音樂專輯頁2)

    鴻蒙OS開發典型頁面場景一次開發多端部署】實戰(設置典型頁面

    本示例展示了設置應用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現一次開發多端部署的能力
    的頭像 發表于 05-27 09:36 ?1149次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:<b class='flag-5'>典型</b><b class='flag-5'>頁面</b><b class='flag-5'>場景</b>【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實戰(設置<b class='flag-5'>典型</b><b class='flag-5'>頁面</b>)

    鴻蒙OS開發典型頁面場景一次開發多端部署】(資源使用)

    頁面開發過程中,經常需要用到顏色、字體、間距、圖片等資源,在不同的設備或配置中,這些資源的值可能不同。
    的頭像 發表于 05-28 09:44 ?969次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:<b class='flag-5'>典型</b><b class='flag-5'>頁面</b><b class='flag-5'>場景</b>【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(資源使用)

    鴻蒙OS開發典型頁面場景一次開發多端部署】(短信)案例介紹

    本章從系統預置的應用中,選擇短信應用作為典型的案例,從頁面開發和工程結構的角度,介紹"多"的具體實踐。系統的產品形態在不斷豐富中,當前主要有默認設備和平板兩種產品形態,本章的具體實踐
    的頭像 發表于 05-28 15:08 ?1284次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:<b class='flag-5'>典型</b><b class='flag-5'>頁面</b><b class='flag-5'>場景</b>【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(短信)案例介紹

    華為開發者大會2021:一次開發 多端部署

    一次開發 多端部署使能開發者從單設備生態跨入多設備生態!
    的頭像 發表于 10-22 15:09 ?1645次閱讀
    華為<b class='flag-5'>開發</b>者大會2021:<b class='flag-5'>一次</b><b class='flag-5'>開發</b> <b class='flag-5'>多端</b><b class='flag-5'>部署</b>

    鴻蒙OS開發:【一次開發多端部署】(多設備自適應能力)簡單介紹

    本示例是《一次開發多端部署》的配套示例代碼,展示了[頁面開發
    的頭像 發表于 05-21 14:59 ?2431次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(多設備自適應能力)簡單介紹

    鴻蒙OS開發:【一次開發多端部署】( 設置app頁面

    本示例展示了設置應用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現一次開發多端部署的能力
    的頭像 發表于 05-21 14:56 ?1067次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】( 設置app<b class='flag-5'>頁面</b>)
    主站蜘蛛池模板: 在线免费看黄视频| 777成了人乱视频| 天天舔天天爱| xxxx日本黄色| 四虎在线观看一区二区| 国产精品激情综合久久| 久久99国产亚洲高清观看首页| 永久免费观看黄网站| 色老头影院| 午夜国产| 亚洲 欧美 成人| 人操人摸| 日本特黄绿像大片免费看| 免费精品99久久国产综合精品| 日本x色视频| 日本加勒比在线视频| 禁h粗大太大好爽好涨受不了了| 免费日韩三级| 很很鲁在线视频播放影院| 伊人成综合| vr性资源在线观看| tube69xxxxhd日本| 欧美艹逼视频| 国产特黄一级一片免费| 亚洲ol| 正在播放国产女免费| 又黄又爽又猛大片录像| 明日花绮罗snis-862在线播放| 欧美一级特黄aaaaaa在线看首页| 国产香蕉精品视频在| 午夜宅男在线| 亚洲激情综合| 欧美性xx18一19| 日本免费看黄| 久久天天躁夜夜躁狠狠躁2020| 亚洲视频久久| 美国一级毛片不卡无毒| 国产欧美一区二区日本加勒比| 午夜激情网站| 天天干夜夜欢| 性欧美人与zooz|