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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

功能開發(fā)的一多能力介紹

應(yīng)用開發(fā)至少包含兩部分工作: UI頁面開發(fā)和底層功能開發(fā)(部分需要聯(lián)網(wǎng)的應(yīng)用還會涉及服務(wù)端開發(fā))。前面章節(jié)介紹了如何解決頁面適配的問題,本章節(jié)主要介紹應(yīng)用如何解決設(shè)備系統(tǒng)能力差異的兼容問題。

系統(tǒng)能力

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

與系統(tǒng)能力相關(guān)的,有支持能力集、聯(lián)想能力集和要求能力集三個核心概念。

  • 支持能力集 :設(shè)備具備的系統(tǒng)能力集合,在設(shè)備配置文件中配置。
  • 要求能力集 :應(yīng)用需要的系統(tǒng)能力集合,在應(yīng)用配置文件中配置。
  • 聯(lián)想能力集 :開發(fā)應(yīng)用時IDE可聯(lián)想的API所在的系統(tǒng)能力集合,在應(yīng)用配置文件中配置。

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

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

設(shè)備要求能力集的獲取及導(dǎo)入

對于廠商自定義設(shè)備,需要開發(fā)者自行從廠商處獲取該設(shè)備的要求能力集并導(dǎo)入到IDE中。

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

20230920-103626

多設(shè)備應(yīng)用開發(fā)

開發(fā)多設(shè)備應(yīng)用時,工程中默認(rèn)的要求能力集是多個設(shè)備支持能力集的交集,默認(rèn)的聯(lián)想能力集是多個設(shè)備支持能力集的并集。

  • 開發(fā)者可以在運行時動態(tài)判斷某設(shè)備是否支持特定的系統(tǒng)能力。
  • 開發(fā)者可以自行修改聯(lián)想能力集和要求能力集。

動態(tài)邏輯判斷

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

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

說明:

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

配置聯(lián)想能力集和要求能力集

IDE會根據(jù)創(chuàng)建的工程所支持的設(shè)備自動配置聯(lián)想能力集和要求能力集,同時也支持開發(fā)者修改。

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

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

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

說明:

  • 對于要求能力集,開發(fā)者修改時要十分慎重,修改不當(dāng)會導(dǎo)致應(yīng)用無法分發(fā)和安裝到目標(biāo)設(shè)備上。
  • 對于聯(lián)想能力集,通過增加系統(tǒng)能力可以擴大IDE可聯(lián)想的API范圍。但要注意這些API可能在某些設(shè)備上不支持,使用前需要判斷。

總結(jié)

從應(yīng)用開發(fā)到用戶使用,通常要經(jīng)歷應(yīng)用分發(fā)和下載、應(yīng)用安裝、應(yīng)用運行等環(huán)節(jié)。借助SysCap機制,可以在各個環(huán)節(jié)中加以攔截或管控,保證應(yīng)用可以在設(shè)備上正常安裝和使用。

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

SysCap機制可以幫助開發(fā)者僅關(guān)注設(shè)備的系統(tǒng)能力,而不用考慮成百上千種具體的設(shè)備類型,降低多設(shè)備應(yīng)用開發(fā)難度。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • IDE
    IDE
    +關(guān)注

    關(guān)注

    0

    文章

    346

    瀏覽量

    47344
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2467

    瀏覽量

    43630
  • 鴻蒙OS
    +關(guān)注

    關(guān)注

    0

    文章

    190

    瀏覽量

    4835
收藏 0人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    本示例使用[一次開發(fā)多端部署]中介紹的自適應(yīng)布局能力和響應(yīng)式布局能力進行多設(shè)備(或多窗口尺寸)適配,保證應(yīng)用在不同設(shè)備或不同窗口尺寸下可以正常顯示。
    的頭像 發(fā)表于 05-25 16:47 ?2408次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</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'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實戰(zhàn)(音樂專輯頁2)

    鴻蒙OS開發(fā)典型頁面場景一次開發(fā)多端部署】實戰(zhàn)(設(shè)置典型頁面

    本示例展示了設(shè)置應(yīng)用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開發(fā)多端部署的能力
    的頭像 發(fā)表于 05-27 09:36 ?1438次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</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'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】實戰(zhàn)(設(shè)置<b class='flag-5'>典型</b><b class='flag-5'>頁面</b>)

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

    頁面開發(fā)過程中,經(jīng)常需要用到顏色、字體、間距、圖片等資源,在不同的設(shè)備或配置中,這些資源的值可能不同。
    的頭像 發(fā)表于 05-28 09:44 ?1188次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</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'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(資源使用)

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

    本章從系統(tǒng)預(yù)置的應(yīng)用中,選擇短信應(yīng)用作為典型的案例,從頁面開發(fā)和工程結(jié)構(gòu)的角度,介紹"多"的具體實踐。系統(tǒng)的產(chǎn)品形態(tài)在不斷豐富中,當(dāng)前主要有默認(rèn)設(shè)備和平板兩種產(chǎn)品形態(tài),本章的具體實踐
    的頭像 發(fā)表于 05-28 15:08 ?1570次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</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'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】(短信)案例介紹

    華為開發(fā)者大會2021:一次開發(fā) 多端部署

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

    鴻蒙OS開發(fā):【一次開發(fā)多端部署】(多設(shè)備自適應(yīng)能力)簡單介紹

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

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

    本示例展示了設(shè)置應(yīng)用的典型頁面,其在小窗口和大窗口有不同的顯示效果,體現(xiàn)一次開發(fā)多端部署的能力
    的頭像 發(fā)表于 05-21 14:56 ?1529次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OS</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>一次</b><b class='flag-5'>開發(fā)</b>,<b class='flag-5'>多端</b><b class='flag-5'>部署</b>】( 設(shè)置app<b class='flag-5'>頁面</b>)

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品
    主站蜘蛛池模板: 亚洲一区在线视频观看 | 91p0rn永久备用地址二 | yy4080午夜理论一级毛片 | 亚洲免费区 | 亚洲一区二区在线 | 一区二区三区高清不卡 | 天天摸日日碰天天看免费 | 亚洲福利视频一区二区 | 亚洲欧洲无码一区二区三区 | 深夜视频在线播放视频在线观看免费观看 | 亚洲入口 | 夜夜操夜夜摸 | 欧美伦理影院 | 韩国特黄特色a大片免费 | 免费一级特黄特色大片在线 | 天天干夜夜爽天天操夜夜爽视频 | www.色涩涩.com | 天天操天天干天天拍 | 国产理论片在线观看 | 国产午夜大片 | 天天色天天做 | a级毛毛片看久久 | 久久久久久免费播放一级毛片 | 香蕉久久夜色精品国产小说 | 免费观看成人欧美1314www | 亚洲国产成人久久 | 欧美伊人网 | 欧美激情第一欧美在线 | 黄色在线观看国产 | 种子天堂bt | 色偷偷亚洲综合网亚洲 | 美女扒开尿口给男人桶爽视频 | 四虎精品免费国产成人 | 欧美一级别 | 免费视频爱爱 | 视频二区在线观看 | 91大神精品在线观看 | 91精品日本久久久久久牛牛 | 色黄污在线看黄污免费看黄污 | www.亚洲日本| 成年片免费网址网站 |