偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù)拉起的main入口

開(kāi)發(fā) 前端
OpenHarmony 很多服務(wù)都是編譯成動(dòng)態(tài)庫(kù), 動(dòng)態(tài)庫(kù)服務(wù),沒(méi)有main函數(shù)入口。服務(wù)的拉起的入口在哪?

[[441922]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

簡(jiǎn)介

OpenHarmony 很多服務(wù)都是編譯成動(dòng)態(tài)庫(kù), 動(dòng)態(tài)庫(kù)服務(wù),沒(méi)有main函數(shù)入口。服務(wù)的拉起的入口在哪?

以在線(xiàn)升級(jí)服務(wù)為例說(shuō)明服務(wù)入口,說(shuō)明如下:

一. 服務(wù)的動(dòng)態(tài)庫(kù):libupdateservice.z.so

這個(gè)編譯代碼里面有,學(xué)習(xí)者可以在源代碼中去看:

配置路徑:base\update\updateservice\engine\BUILD.gn

二. main入口:sa_main

sa_main是含有main入口的獨(dú)立可執(zhí)行文件。學(xué)習(xí)者可以自己在代碼中去看:

配置路徑:foundation\distributedschedule\safwk\services\safwk\BUILD.gn

三. sa_main如何加載 libupdateservice.z.so

updater_sa.xml配置了動(dòng)態(tài)庫(kù)libupdateservice.z.so的各項(xiàng)信息。

sa_main通過(guò)讀取解析updater_sa.xml, 把動(dòng)態(tài)庫(kù)libupdateservice.z.so加載到自身進(jìn)程中來(lái)。

即運(yùn)行命令:/system/bin/sa_main /system/profile/updater_sa.xml

1. 動(dòng)態(tài)庫(kù)服務(wù)的編譯配置

1.1 動(dòng)態(tài)庫(kù)的編譯配置

動(dòng)態(tài)庫(kù)編譯配置: 

  1. base\update\updateservice\engine\BUILD.gn 

動(dòng)態(tài)庫(kù)編譯后的名稱(chēng): 

  1. libupdateservice.z.so 

1.2 xml的編譯配置

1.2.1 xml的原始文件

原始xml的文件路徑:base\update\updateservice\engine\sa_profile\3006.xml

內(nèi)容:

  1. <info> 
  2.     <process>updater_sa</process> 
  3.     <systemability> 
  4.         <name>3006</name
  5.         <libpath>libupdateservice.z.so</libpath> 
  6.         <run-on-create>true</run-on-create
  7.         <distributed>false</distributed> 
  8.         <dump-level>1</dump-level
  9.     </systemability> 
  10. </info> 

1.2.1.1 3006:

是UPDATE_DISTRIBUTED_SERVICE_ID的值,該值定義在

utils\system\safwk\native\include\system_ability_definition.h中。

1.2.1.2 libupdateservice.z.so:

是服務(wù)對(duì)應(yīng)的動(dòng)態(tài)庫(kù)

1.2.2 xml的編譯配置BUILD.gn

編譯文件配置路徑:base\update\updateservice\engine\sa_profile\BUILD.gn

內(nèi)容: 

  1. import("//build/ohos/sa_profile/sa_profile.gni"
  2.  
  3. ohos_sa_profile("updater_sa_profile") { 
  4.   sources = [ "3006.xml" ] 
  5.  
  6.   part_name = "updater" 

1.2.3 編譯配置ohos.build

文件路徑:base\update\updater\ohos.build

內(nèi)容如下:

#星光計(jì)劃2.0# OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù) 拉起的main入口-鴻蒙HarmonyOS技術(shù)社區(qū)

1.2.4 編譯成功生產(chǎn)的文件

1.2.4.1 編譯后Ubuntu路徑:

out/ohos-arm-release/packages/phone/system/profile/updater_sa.xml

1.2.4.2 內(nèi)容:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <info> 
  3.     <process>updater_sa</process> 
  4.     <loadlibs> 
  5.         <libpath>libupdateservice.z.so</libpath> 
  6.     </loadlibs> 
  7.     <systemability> 
  8.         <name>3006</name
  9.         <libpath>libupdateservice.z.so</libpath> 
  10.         <run-on-create>true</run-on-create
  11.         <distributed>false</distributed> 
  12.         <dump-level>1</dump-level
  13.     </systemability> 
  14. </info> 

1.2.4.3 燒入開(kāi)發(fā)板后的路徑:

system/profile/updater_sa.xml

#星光計(jì)劃2.0# OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù) 拉起的main入口-鴻蒙HarmonyOS技術(shù)社區(qū)

2. 服務(wù)的啟動(dòng)配置

2.1 服務(wù)啟動(dòng)配置

配置文件路徑:base\update\updateservice\engine\etc\updater_sa.cfg

文件內(nèi)容如下: 

  1.     "jobs" : [{ 
  2.             "name" : "boot"
  3.             "cmds" : [ 
  4.                 "start updater_sa" 
  5.             ] 
  6.         } 
  7.     ], 
  8.     "services" : [{ 
  9.             "name" : "updater_sa"
  10.             "path" : ["/system/bin/sa_main""/system/profile/updater_sa.xml"], 
  11.             "uid" : "system"
  12.             "gid" : ["system""shell"
  13.         } 
  14.     ] 

2.2 啟動(dòng)編譯配置

配置文件路徑:base\update\updateservice\engine\BUILD.gn

內(nèi)容如下:

#星光計(jì)劃2.0# OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù) 拉起的main入口-鴻蒙HarmonyOS技術(shù)社區(qū)

2.3 編譯成功生成的文件

編譯后Ubuntu路徑:out\ohos-arm-release\packages\phone\system\etc\init\updater_sa.cfg

燒入開(kāi)發(fā)板后的路徑:system\etc\init\updater_sa.cfg

3 運(yùn)行過(guò)程

每次開(kāi)機(jī),init階段會(huì)讀取配置updater_sa.cfg,啟動(dòng)updater_sa。即拉起服務(wù)動(dòng)態(tài)庫(kù)libupdateservice.z.so

進(jìn)程啟動(dòng)查詢(xún):ps -A | grep updater

串口終端顯示:

#星光計(jì)劃2.0# OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù) 拉起的main入口-鴻蒙HarmonyOS技術(shù)社區(qū)

重新拉取服務(wù)

運(yùn)行hdc_std.exe shell 終端運(yùn)行 sa_main /system/profile/updater_sa.xml:

#星光計(jì)劃2.0# OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù) 拉起的main入口-鴻蒙HarmonyOS技術(shù)社區(qū)

串口終端查詢(xún),多運(yùn)行了一個(gè)update_sa進(jìn)程:

#星光計(jì)劃2.0# OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù) 拉起的main入口-鴻蒙HarmonyOS技術(shù)社區(qū)

服務(wù)拉起注冊(cè)到SAMGR進(jìn)程的日志:

#星光計(jì)劃2.0# OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù) 拉起的main入口-鴻蒙HarmonyOS技術(shù)社區(qū)

服務(wù)拉起之后:

客戶(hù)端就可以與服務(wù)端通信了,客戶(hù)端獲取與服務(wù)端通信的對(duì)象 代碼塊如下所示:

#星光計(jì)劃2.0# OpenHarmony SA 動(dòng)態(tài)庫(kù)服務(wù) 拉起的main入口-鴻蒙HarmonyOS技術(shù)社區(qū)

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2022-07-14 19:03:33

IPC服務(wù)鴻蒙

2021-12-29 10:28:27

鴻蒙HarmonyOS應(yīng)用

2023-11-27 16:26:20

mainC語(yǔ)言

2022-04-09 14:45:02

微服務(wù)常見(jiàn)概念Spring

2022-06-06 11:06:04

遠(yuǎn)程服務(wù)鴻蒙

2010-11-29 11:12:08

2021-10-08 22:20:37

C++mainOEP

2022-08-15 22:28:57

串口訪(fǎng)問(wèn)鴻蒙

2010-03-04 10:04:10

Linux動(dòng)態(tài)庫(kù)

2022-04-24 16:00:03

Ability鴻蒙

2010-03-04 09:51:07

Linux動(dòng)態(tài)庫(kù)

2010-12-23 14:45:57

SQL Server

2021-06-06 16:05:31

OpenHarmony

2023-06-20 15:45:15

服務(wù)卡片鴻蒙

2022-07-19 20:33:38

MQTT阿里云IoT服務(wù)

2022-06-06 10:55:51

本地服務(wù)鴻蒙

2022-05-07 15:54:56

小熊派鴻蒙

2023-02-07 15:43:13

三方庫(kù)適配鴻蒙

2011-06-09 11:11:35

QT 靜態(tài)庫(kù) 動(dòng)態(tài)庫(kù)

2010-07-26 10:04:43

SQL Server
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)