精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony 源碼解析之分布式任務調度(一)

開發 前端 分布式
為了更全面地理解與掌握分布式任務調度子系統,我先從分布式遠程啟動這個簡單的功能開始,利用開源鴻蒙開放的源代碼,進行深入學習。

[[434413]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

前言

鴻蒙系統(HarmonyOS)支持在本地程序里調起遠程任務,這個功能是更底層的分布式任務調度子系統支撐的,并且已經貢獻到開源鴻蒙(OpenHarmony)代碼里。為了更全面地理解與掌握分布式任務調度子系統,我先從分布式遠程啟動這個簡單的功能開始,利用開源鴻蒙開放的源代碼,進行深入學習。

以下行文如無特別說明,所述說的鴻蒙系統均指開源鴻蒙系統(OpenHarmony 3.0 LTS版本)。

#星光計劃1.0# OpenHarmony 源碼解析之分布式任務調度(一)-鴻蒙HarmonyOS技術社區

OpenHarmony 架構圖

概述

先從開源鴻蒙文檔入手:

分布式任務調度模塊,通過主從設備服務代理機制,在OpenHarmony操作系統上建立起分布式服務平臺,支持主設備(搭載OpenHarmony的智慧屏設備)啟動從設備(IP Camera、運動手表等小內存OpenHarmony設備)FA的能力。

以智慧屏節目開播提醒為例,智慧屏上在喜歡的節目菜單中,點擊“開播后提醒我”按鈕,等節目開播后,智慧屏會拉起運動手表上的節目開播提醒FA。通過該FA用戶可以快速知道喜歡的節目已經開始,達到協同互助的作用。

FA : Feature Ability代表有界面的Ability,用于與用戶進行交互。

遠程啟動:即跨設備啟動FA,與本地啟動FA相對應。

開源鴻蒙系統里的應用程序以Ability為單位,分為FA和PA, 可以簡單理解為FA就是有界面的應用程序。

分布式服務平臺

分布式任務調度的前提,是設備必須建立分布式服務平臺,并且注冊自身能力。

開源鴻蒙支持3種體量的設備:輕量、小型、標準。

在標準設備里,開源鴻蒙默認已經開啟了分布式服務平臺,開發者一般無需做額外工作,即可使用分布式任務調度功能。

而輕量和小型設備則需要自行在啟動代碼中實現分布式服務平臺功能調用,具體可以參考【分布式軟總線子系統】。相關代碼倉及調用API可以參考:【分布式軟總線】【分布式軟總線lite】

同一個局域網

在上述代碼倉的說明中,一再強調了:

需要保證發現端設備與被發現端設備在同一個局域網內

是因為目前開源鴻蒙系統使用了coap協議,并且暫時只支持coap協議。從源代碼中可以看到,以后應該會擴展到BLE、USB等方式。

  1. /** 
  2.  * @brief Enumerates media, such as Bluetooth, Wi-Fi and USB, used for publishing services. 
  3.  * 
  4.  * Currently, the media can only be set to coap. 
  5.  * 
  6.  */ 
  7. typedef enum { 
  8.     /** Automatic medium selection */ 
  9.     AUTO = 0, 
  10.     /** Bluetooth */ 
  11.     BLE = 1, 
  12.     /** Wi-Fi */ 
  13.     COAP = 2, 
  14.     /** USB */ 
  15.     USB = 3, 
  16. } ExchangeMedium; 

 開源鴻蒙的coap協議默認使用的端口是5684,在局域網通過udp廣播方式發布。如果調試過程中找不到設備,可以通過這個端口抓包分析。

  1. #define COAP_DEFAULT_PORT 5684 

分布式任務調度流程

手頭正好有兩塊支持開源鴻蒙標準系統的開發板Hi3516D,因此以標準系統的分布式任務調度為例,說明開源鴻蒙系統的分布式任務調度流程。輕量系統和小型系統除了開發語言不同,基本步驟是一致的。

開源鴻蒙系統開發FA目前只支持js/eTS語言。

這個demo參考了分布式計算器,為說明方便,做了大量簡化處理,并且此處忽略了錯誤處理。

具體api參考代碼倉:DeviceManager組件。

步驟1:創建設備管理器

  1. import deviceManager from '@ohos.distributedHardware.deviceManager'
  2.  
  3. let self = this; 
  4. deviceManager.createDeviceManager("com.example.myapplication", (err, val)=>{self.deviceManager_ = val;}); 

 使用DeviceManager相關接口之前,需要通過createDeviceManager接口創建DeviceManager實例;

步驟2:獲取可信設備列表

  1. var array = this.deviceManager_.getTrustedDeviceListSync(); 

步驟3:注冊周邊設備動態監控回調函數

  1. this.deviceManager_.on('deviceFound', (data) => { 
  2.     let extraInfo = { 
  3.         "targetPkgName"'com.example.myapplication'
  4.         "appName"'分布式例子'
  5.         "appDescription"'一個簡單的分布式例子'
  6.         "business"'0' 
  7.     }; 
  8.     let authParam = { 
  9.         "authType": 1, 
  10.         "appIcon"''
  11.         "appThumbnail"''
  12.         "extraInfo": extraInfo 
  13.     }; 
  14.     self.deviceManager_.authenticateDevice(data.device, authParam, (err) => { ... }); 
  15. }); 
  16. this.deviceManager_.on('deviceStateChange', (data) => { ... }); 

步驟4:發現周邊新設備,并認證

  1. SUBSCRIBE_ID = Math.floor(65536 * Math.random()); 
  2. var info = { 
  3.     subscribeId: SUBSCRIBE_ID, 
  4.     mode: 0xAA, 
  5.     medium: 2, 
  6.     freq: 2, 
  7.     isSameAccount: false
  8.     isWakeRemote: true
  9.     capability: 0 
  10. }; 
  11. this.deviceManager_.startDeviceDiscover(info); 

新設備需要認證才能互聯使用。開源鴻蒙系統沒有用戶注冊機制,因此認證需要另外開發框架支持,開源鴻蒙在標準系統提供了一個簡單的HAP程序支持彈窗PIN碼認證機制,可以簡單使用。

當前版本只支持PIN碼認證,需要提供PIN碼認證的授權提示界面、PIN碼顯示界面、PIN碼輸入界面;

當前,由于系統通過native層直接進行彈窗的能力尚不具備,這里使用一個臨時的FA來進行對應界面的彈窗。

該FA為:DeviceManager_UI.hap,作為系統應用進行預置。

具體行為是:

  1. 遠程設備在屏幕顯示一個巨大的6位數字PIN碼
  2. 控制設備彈出一個PIN碼輸入窗口
  3. 用戶在控制設備輸入遠程設備所顯示的PIN碼,通過驗證即可繼續遠程控制
  4. PIN碼輸入成功后,該設備成為可信設備存儲于系統,下次再次連接時不需要再次驗證

步驟5:遠程調用FA

以上步驟1~步驟4是標準的周圍設備管理步驟,因此可以封裝成函數庫,方便后續使用。

在獲取到可信設備數組后,可以在適當的彈窗或者選擇界面,讓用戶選擇其中一個進行連接。

  1. findDevices: function(){ 
  2.       let self = this; 
  3.       this.remoteDevices.registerDeviceListCallback(() => { 
  4.           var list = new Array(); 
  5.           var devs = self.remoteDevices.deviceList; 
  6.           console.info('myapplication: on remote device updated, count=' + devs.length); 
  7.           for (var i = 0; i < devs.length; i++) { 
  8.               console.info('myapplication: device ' + i + '/' + devs.length + 
  9.               ' deviceId=' + devs[i].deviceId + ' deviceName=' + devs[i].deviceName 
  10.               + ' deviceType=' + devs[i].deviceType); 
  11.               list[i + 1] = { 
  12.                   name: devs[i].deviceName, 
  13.                   did:  devs[i].deviceId 
  14.               }; 
  15.           } 
  16.           self.devList = list; 
  17.       }); 
  18.   }, 

啟動遠程FA的程序:

  1. import featureAbility from '@ohos.ability.featureability'
  2.  
  3. ...... 
  4.  
  5. featureAbility.startAbility({ 
  6.     want:{ 
  7.         bundleName: 'com.example.myapplication'
  8.         abilityName: 'com.example.myapplication.MainAbility'
  9.         deviceId: this.devList[idx].did, 
  10.         parameters: { 
  11.             isFA: 'FA' 
  12.         } 
  13.     } 
  14. }).then((data)=>{ 
  15.     console.log("myapplication: start ability finished:" + JSON.stringify(data)); 
  16. }); 

 遠程設備收到請求后,就會以對應的參數啟動相應的FA,并且在啟動時可以獲取到參數:

  1. onReady() { 
  2.     featureAbility.getWant((error, want) => { 
  3.         console.info('myapplication: featureAbility.getWant =' + JSON.stringify(want.parameters)); 
  4.         // 這里isFA就是上面遠程請求的參數 
  5.         if (want.parameters.isFA && want.parameters.isFA === 'FA') { 
  6.             this.initKVManager(()=>{ 
  7.                 console.log('myapplication: kvmanager started.'
  8.             }); 
  9.         } 
  10.         else
  11.             this.findDevices(); 
  12.         } 
  13.     }); 
  14.  
  15. }, 

 具體api可以參考華為鴻蒙開發文檔,請注意里面部分內容可能與開源鴻蒙系統有區別,請自行確定。

編譯運行

以上步驟,均已在DevEco Studio 3.0.0.600 x64中編寫成功,并且在兩臺Hi3516D設備間成功運行,附代碼(分布式遠程啟動.zip)。

想在開源鴻蒙系統上安裝HAP程序,必須要先進行簽名,并且在DevEco Studio中進行相關設置。具體步驟參考開源鴻蒙文檔。

上傳安裝HAP程序,需要使用開發工具hdc,具體參考文檔。

小結

開源鴻蒙系統的分布式任務調度基本功能已經初步完善了,使用文檔比較分散,需要到各個子系統去查閱,略有不便。

下一步,學習一下分布式軟總線、分布式數據,看看開源鴻蒙系統是如何封裝應用之間數據交互能力的。

另外看源代碼,開源鴻蒙系統已經有分布式應用流轉(遷移)運行功能,有時間可以學習一下。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2020-09-29 19:20:05

鴻蒙

2020-11-06 12:12:35

HarmonyOS

2021-12-14 10:16:00

鴻蒙HarmonyOS應用

2022-06-20 15:32:55

Stage模型分布式開發

2023-06-26 00:14:28

Openjob分布式任務

2023-05-08 16:38:46

任務調度分布式任務調度

2024-09-23 04:00:00

java架構分布式系統

2022-07-27 14:30:15

分布式數據鴻蒙

2022-06-13 07:43:21

分布式Spring

2023-02-11 00:04:17

分布式系統安全

2019-11-15 10:16:27

分布式任務框架

2024-01-08 08:05:08

分開部署數據體系系統拆分

2021-08-06 08:33:27

Springboot分布式Seata

2023-02-20 15:38:38

2023-02-20 15:29:14

分布式相機鴻蒙

2023-02-21 16:41:41

分布式相機鴻蒙

2021-09-07 10:43:25

EverDB分布式執行

2015-05-20 15:54:04

Openstack分布式存儲

2024-01-09 08:00:58

2025-05-13 03:22:00

點贊
收藏

51CTO技術棧公眾號

视频一区二区在线播放| 日本中文字幕网| 国色天香久久精品国产一区| 一区二区三区在线看| 懂色中文一区二区三区在线视频| 国产香蕉视频在线| 日韩激情在线| 精品播放一区二区| 97超碰蝌蚪网人人做人人爽 | 在线观看男女av免费网址| 粉嫩高潮美女一区二区三区| 日本精品一区二区三区在线播放视频| 美女福利视频网| 一区二区三区四区视频免费观看| 午夜精品一区二区三区三上悠亚| 亚洲高清乱码| 少妇一区二区三区四区| 蜜臀精品一区二区三区在线观看| 欧美xxxxx牲另类人与| 九九九九免费视频| 黄网页免费在线观看| 久久综合中文字幕| 51精品国产人成在线观看| 无码无套少妇毛多18pxxxx| 果冻天美麻豆一区二区国产| 91高清视频免费看| 免费 成 人 黄 色| av理论在线观看| 欧美经典一区二区| 久久精品国产一区二区三区日韩| 国产精品羞羞答答在线| 久久综合婷婷| 97视频在线观看视频免费视频| 69夜色精品国产69乱| 亚洲盗摄视频| 亚洲精品在线三区| 亚洲综合在线一区二区| se69色成人网wwwsex| 精品日本美女福利在线观看| 国产av熟女一区二区三区 | 精品国产一区二区三区久久久| 18禁裸乳无遮挡啪啪无码免费| 伊人久久影院| 欧美一区二区三区男人的天堂| 中文久久久久久| av在线首页| 99r国产精品| 粉嫩av一区二区三区免费观看| 国产精品久久久久久久成人午夜| 丝瓜av网站精品一区二区| 国产69精品久久久久9| 毛片a片免费观看| 成人在线tv视频| 日韩三级电影网址| 国产探花一区二区三区| 国产一区二区在线观| 亚洲不卡在线观看| 日本熟妇人妻xxxx| 丁香花电影在线观看完整版| 伊人色综合久久天天人手人婷| 热这里只有精品| 好吊日视频在线观看| 亚洲欧美影音先锋| 男插女免费视频| 黄色在线播放网站| 亚洲欧美激情视频在线观看一区二区三区 | 成人ww免费完整版在线观看| 国产精品久久久久久亚洲毛片| 神马一区二区影院| 国产同性人妖ts口直男| 国产资源在线一区| 91亚色免费| 黄色av一区二区三区| caoporm超碰国产精品| 久久久久久久久久久久久久一区| 可以直接在线观看的av| 欧美激情在线免费观看| 一区二区在线中文字幕电影视频| 黄色片免费在线观看| 亚洲激情第一区| 免费看毛片的网址| 成人免费影院| 欧美久久久久久久久中文字幕| 午夜激情影院在线观看| 成人av综合网| 亚洲人成电影网站| 精品亚洲乱码一区二区 | 热99这里只有精品| a欧美人片人妖| 欧美人狂配大交3d怪物一区| 中文字幕一二三区| 久久爱www成人| www.精品av.com| 国产一级淫片a| 日韩国产精品久久久| 欧美激情网站在线观看| 日本高清www免费视频| 日韩中文字幕不卡| 91在线免费看网站| 深夜福利在线观看直播| 国产精品传媒入口麻豆| 亚洲国产精品无码av| 校园春色亚洲色图| 精品人伦一区二区三区蜜桃免费 | 99久久99久久精品国产| 日韩一级不卡| 久久久久久久999精品视频| 日日噜噜噜噜人人爽亚洲精品| 久久精品国产第一区二区三区| av激情久久| h网站视频在线观看| 亚洲一区二区中文在线| 亚洲欧美国产日韩综合| 国产精品tv| 日韩有码在线播放| 天天干天天干天天干天天| 国产真实精品久久二三区| 国内成+人亚洲| a视频在线播放| 欧美性做爰猛烈叫床潮| 在线观看国产免费视频| 91精品久久久久久久久久不卡| 欧美在线视频在线播放完整版免费观看| 影音先锋国产在线| 久久免费看少妇高潮| 日韩精品综合在线| 国产成人久久精品一区二区三区| 免费黄色网址在线观看| 北条麻妃一区二区三区在线| 亚洲区一区二区| 久久久精品国产sm调教网站| 日本不卡高清视频| 国产一区不卡在线观看| 亚洲一区二区偷拍| jlzzjlzz亚洲女人| 欧美亚洲激情视频| 亚洲精品久久久狠狠狠爱| 日本一二三四高清不卡| 欧美日韩激情视频在线观看| 91综合精品国产丝袜长腿久久| 丝袜一区二区三区| 四虎影院在线免费播放| 99re热这里只有精品视频| 久久久久久久久网| 国产精品日本一区二区不卡视频 | 污污动漫在线观看| 国产一区二区精品久| 欧美有码在线观看视频| 婷婷五月综合久久中文字幕| 亚洲高清免费在线| 日本精品一二三区| 国产精品大片| 在线观看欧美成人| 日本午夜视频在线观看| 97久久久精品综合88久久| 久久视频这里有精品| 久9re热视频这里只有精品| 久久免费国产视频| 日本人妻丰满熟妇久久久久久| 亚洲午夜精品网| 精品久久久久久无码人妻| 国内视频精品| 国产在线一区二区三区欧美| 国产激情视频在线看| 亚洲国产精品99久久| 黄网在线观看视频| 国产亚洲制服色| 孩娇小videos精品| 91不卡在线观看| 99电影在线观看| 捆绑调教日本一区二区三区| 欧美在线观看视频一区二区三区| 色婷婷在线影院| 日本中文字幕不卡| 一区精品在线| 三级欧美日韩| 91精品国产777在线观看| 全色精品综合影院| 欧美系列在线观看| 亚洲精品卡一卡二| 成人一区二区三区视频在线观看| heyzo亚洲| 欧美精品一区二区久久| 91在线视频一区| 国产女人18毛片18精品| 亚洲少妇中出一区| 黑人玩弄人妻一区二区三区| 国产欧美在线| 一区二区在线观| 精品无人区一区二区| 国产91久久婷婷一区二区| 91网在线播放| 精品国产一区二区亚洲人成毛片 | 欧美三级黄网| 精品久久人人做人人爽| 日韩在线视频不卡| 亚洲婷婷综合色高清在线| av在线播放网址| 免费在线一区观看| 蜜桃传媒一区二区三区| 国产精品久久观看| 国内精品一区二区三区四区| 久久久久久女乱国产| 91精品国产入口在线| 六月丁香在线视频| 亚洲天堂精品视频| 37p粉嫩大胆色噜噜噜| 理论片日本一区| 分分操这里只有精品| 日韩av有码| 久久99热只有频精品91密拍| 伊人久久一区| 久久九九亚洲综合| 三级视频网站在线| 日韩欧美亚洲国产另类| 成人小视频在线播放| 亚洲一区二区欧美| 国精产品视频一二二区| 91亚洲国产成人精品一区二区三| 日本精品一区在线| 日韩av电影免费观看高清完整版| 久久99中文字幕| 羞羞色午夜精品一区二区三区| 欧美日韩电影一区二区| 岛国成人av| 91网在线免费观看| 精品久久99| 国产精品69久久久久| 麻豆理论在线观看| 欧美激情在线狂野欧美精品| 黄色成年人视频在线观看| 最近2019年中文视频免费在线观看| 神马一区二区三区| 精品国产3级a| 国产三级三级在线观看| 欧美区在线观看| 成人一级免费视频| 色综合天天在线| 欧美在线观看不卡| 精品动漫一区二区三区| 黄色激情视频在线观看| 亚洲成a人在线观看| 免费在线视频一区二区| 亚洲卡通欧美制服中文| 日本一二三区在线观看| 亚洲精品一二三| 校园春色 亚洲| 成人黄色综合网站| gogo亚洲国模私拍人体| 国产盗摄一区二区三区| 91丨porny丨九色| 国产99久久久精品| 日本精品一二三区| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产调教视频在线观看| 久久久国产91| av在线影院| 欧美激情亚洲视频| 美女精品导航| 91精品国产91久久久久| 久久毛片亚洲| 国产精品免费久久久久久| 嫩草伊人久久精品少妇av杨幂| 国产精品色午夜在线观看| 欧美视频在线视频精品| 91在线免费视频| 超碰成人97| 麻豆成人小视频| 精品视频免费| 国风产精品一区二区| 激情丁香综合| 亚洲欧洲另类精品久久综合| 日韩电影免费网站| 黄色一级视频播放| 亚洲视频综合| 日本精品一区二区三区四区| 日韩av高清在线观看| 男女污污视频网站| 成人性生交大片| 国产精久久一区二区三区| 国产精品萝li| 国产一级久久久| 欧美视频免费在线| 在线免费看av片| 日韩精品在线看片z| 日韩精品视频无播放器在线看| 一区二区中文字幕| 欧美人与牲禽动交com| 2024亚洲男人天堂| 91麻豆精品一二三区在线| 国产精品v欧美精品∨日韩| 亚洲aa在线| 8x8x华人在线| 男人的天堂成人在线| 亚洲天堂网2018| 日韩在线一区二区三区| 成人av毛片在线观看| av中文字幕不卡| 精品一区二区在线观看视频| 亚洲一级二级在线| 中国a一片一级一片| 精品国产乱码久久久久久夜甘婷婷| 黄色片在线播放| 久久免费视频网| 图片一区二区| 欧美成人蜜桃| 国精品一区二区| 男操女免费网站| aaa国产一区| 欧美成人精品欧美一级| 在线亚洲一区二区| 免费观看黄色av| 久久亚洲影音av资源网 | 美女网站视频在线观看| 中文字幕不卡一区| 国产成人愉拍精品久久| 欧美一区二区三区视频在线| 超碰免费在线| 欧亚精品中文字幕| youjizzjizz亚洲| 免费观看黄色大片| 日本伊人午夜精品| 9.1成人看片| 亚洲国产日韩精品| 99精品在线视频观看| 色狠狠av一区二区三区香蕉蜜桃| 亚洲同志男男gay1069网站| 国产精品国产精品国产专区不卡| 香蕉久久网站| 午夜精品中文字幕| 中文一区二区在线观看| 国产精品一区二区三区四| 亚洲成色www8888| 国内小视频在线看| 18成人在线| 欧美国产三级| 国产又粗又猛大又黄又爽| 国产精品理伦片| 在线亚洲欧美日韩| 国产一区二区三区18| 日本精品裸体写真集在线观看| 欧美精品123| 性8sex亚洲区入口| 3d动漫精品啪啪一区二区下载| 性感美女极品91精品| 蜜臀久久久久久999| 久久久久五月天| 国产区精品视频在线观看豆花| 国产亚洲精品久久久久久久| 国产乱人伦精品一区二区在线观看| 国产人妻精品午夜福利免费| 亚洲免费在线视频一区 二区| 国产又黄又爽视频| 久久天堂电影网| 香蕉大人久久国产成人av| 日韩极品视频在线观看| 国产99久久久国产精品潘金网站| 国产性一乱一性一伧一色| 精品成人在线观看| 美女网站在线看| 久久综合伊人77777麻豆| 久久综合导航| 中文乱码字幕高清一区二区| 5月丁香婷婷综合| 日本性爱视频在线观看| 国产欧美日韩一区| 另类亚洲自拍| 丁香激情五月少妇| 欧美一区日本一区韩国一区| 黄色成人在线网| 欧洲久久久久久| 麻豆精品视频在线观看免费| 中文字幕电影av| 欧美videos大乳护士334| 国产粉嫩在线观看| 亚洲激情一区二区三区| 国产精品资源在线| 福利一区二区三区四区| 亚洲欧美国产va在线影院| 久久精品xxxxx| 精品一二三四五区| 久久精品视频在线免费观看| 亚洲熟女乱色一区二区三区久久久| 欧美成人免费视频| 亚洲传媒在线| 911av视频| 精品久久久一区二区| 免费观看在线午夜影视| 鬼打鬼之黄金道士1992林正英| 久久aⅴ国产紧身牛仔裤| 亚洲精品国产精品乱码在线观看| 精品电影一区二区三区| a成人v在线| 国产真人做爰毛片视频直播 | 日韩欧美一区二区视频在线播放 | 亚洲久久久久久久| 欧美一区二视频| 成人小电影网站| 免费cad大片在线观看| 久久久精品国产99久久精品芒果|