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

OpenHarmony系統是怎么知道應用是Ark應用的

系統 OpenHarmony
本人手中的開發板是Hi3516,所以去productdefine目錄下面查看了一下Hi3516DV300.json文件,確認是否Ark子系統是否參與了編譯。

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

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

??https://ost.51cto.com??

背景

自從OpenHarmony系統3.0-LTS版本發布之后,OpenHarmony系統對JS應用增加了Ark方舟運行時,但之前的QuickJS運行時卻有沒有移除,就產生了兩個好奇的問題。

OpenHarmony系統中存在兩個JS運行時,那開發的JS應用到底是運行在哪個運行時中的?

OpenHarmony系統又是怎么識別Hap包是Ark JS應用的?

探究

第一步,確定系統是否真的存在Ark方舟運行時。

OpenHarmony系統源碼中,雖然提供了Ark方舟運行時代碼,但開發板編譯的系統不一定會編譯Ark方舟運行時。本人手中的開發板是Hi3516,所以去productdefine目錄下面查看了一下Hi3516DV300.json文件,確認是否Ark子系統是否參與了編譯。

從上圖可以看出,Ark子系統參與了系統編譯,那就去開發板系統下確認一下。通過hdc工具查看,hdc shell進入系統中,在system/lib 目錄下搜索ark字樣,結果顯示確實有Ark JS運行時libark_jsruntime.so。

從上圖結果中,還可以看出ace JS UI框架部分的so庫也有ark版本的。

第二步,確定Ace JS UI框架是否存在Ark和QuickJS同時支持。

繼續在hdc shell下搜索ace相關的so庫信息。

從上圖的信息中,Ace是同時支持Ark和QuickJS的。既然如此,那就去查看OpenHarmony的源碼吧,系統究竟是怎么進行識別Hap應用的類型的。

第三步,確認系統SO庫的選擇方式。

多年的程序開發經驗,讓我立馬就猜測,系統可能會有so庫的選擇過程,比如 libace_engine_ark.z.so 和 libace_engine_qjs.z.so 兩個的選擇。于是我就在OpenHarmony源碼下的foundation目錄下進行了 find 查找。

find 的結果真的印證我的猜測,真有相關代碼信息。那就去ace_container.cpp這個文件代碼的第54行去看看吧。

一看代碼,把我高興壞了,這不就是我猜測的結果么。通過函數的入參 isArkApp 進行選擇的。那就繼續找isArkApp 這個參數怎么來的吧。

第四步,確定 isArkApp 參數來源。

繼續發揮 find 命令的強大,搜索函數在哪里調用的。

結果是在同一個文件類調用的,查看源碼,發現還是AceContainer類里面一個 isArkApp_ 自由布爾變量。

再次在源碼里面找,發現是在AceContainer類構造函數中初始化的。

那就在使用 find 命令繼續搜索哪里有調用AceContainer類這個構造函數吧。結果有點失望,沒有搜到有調用的地方。沒有那就認真看看代碼吧,發現是AceContainer類內部一個 CreateContainer 的靜態函數構造的AceContainer實例,isArkApp 這個參數也是從 CreateContainer 函數傳進來的。

有了突破口,那就又繼續 find 吧(真的很強大啊)。

結果顯示在ace_ability.cpp文件的第256行代碼有調用。

查看源碼,找到了 isArkApp 參數的來源,是 GetIsArkFromConfig 這個函數的返回值。

第五步,查看GetIsArkFromConfig函數的代碼。

GetIsArkFromConfig 這個函數在 utils.h 文件中,實現如下所示,展示了關鍵代碼:

inline bool GetIsArkFromConfig(const std::string& packagePathStr)
{
auto configPath = packagePathStr + std::string("config.json");
//·····此處省略100字·····
std::string jsonString(jsonStream.get(), jsonStream.get() + size);
auto rootJson = JsonUtil::ParseJsonString(jsonString);
auto module = rootJson->GetValue("module");
auto distro = module->GetValue("distro");
std::string virtualMachine = distro->GetString("virtualMachine");
return virtualMachine.find("ark") != std::string::npos;
}

從上述代碼中可以看出,是解析的hap中的config.json文件中的內容,通過module/distro結構中的 virtualMachine 字段的值中是否包含有 ark 字符串來判斷的。至此,我們就找了OpenHarmony是怎么識別ARK應用的依據了。

第六步,解析Hap包確認config.json文件內容。

自己使用DevEco Studio開發了一個Demo應用,并打包成Hap包,再直接使用解壓工具解壓Hap文件,查看其中的config.json文件內容,內容如下:

distro對象中確實存在一個 virtualMachine 字段,而且內容為 ark0.0.0.2。但是實際上,寫代碼的時候config.json文件中的distro并沒有添加 virtualMachine 字段。如下所示:

所以可以得出,virtualMachine 這個字段是 DevEco Studio 開發工具編譯打包期間,自動添加進去的。

總結

當前 DevEco Studio 開發工具開發的OpenHarmony應用程序,已經默認編譯打包成了 Ark 應用。不需要開發人員手動設置。

疑問:DevEco Studio 開發工具已經默認OpenHarmony應用程序為Ark應用,那系統中的QuickJS還有用處嗎?

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

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

??https://ost.51cto.com??

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

2023-03-01 14:55:09

2022-03-02 16:08:31

Harmony應用開發鴻蒙

2013-07-19 15:31:20

移動應用僵尸

2011-11-25 10:47:32

大數據企業創新

2012-02-01 16:32:32

2023-04-17 16:14:55

靜態訂閱鴻蒙

2013-06-04 21:50:42

云計算應用

2022-02-21 14:49:26

OpenHarmon操作系統鴻蒙

2022-09-21 14:58:11

OH應用簽名鴻蒙

2022-11-25 16:27:07

應用開發鴻蒙

2022-04-29 14:56:40

通話應用源碼剖析

2022-11-04 14:58:59

應用開發鴻蒙

2013-08-09 14:23:09

Android應用Android退出按鈕Android開發設計

2012-04-08 14:34:10

Android

2013-06-27 09:42:00

2024-03-26 15:25:55

應用接口文件轉換工具鴻蒙

2023-06-27 15:02:47

2021-11-18 10:28:03

鴻蒙HarmonyOS應用

2021-08-24 00:16:05

Windows 11Windows微軟

2023-05-23 14:53:26

鴻蒙應用開發
點贊
收藏

51CTO技術棧公眾號

成人福利一区| 污污视频在线观看网站| 国产精品99久久精品| 精品视频全国免费看| 国产卡一卡二在线| 欧美77777| 国产精品高潮久久| 国产精品电影一区二区| 99久久国产免费免费| 久久精品一二区| 操欧美老女人| 福利一区视频在线观看| 日韩欧美一区二区三区四区 | 国产精品一区二区99| 欧美男同性恋视频网站| 国产美女在线一区| 888av在线| 北条麻妃国产九九精品视频| 国产成人涩涩涩视频在线观看| 69夜色精品国产69乱| 国产成人精品福利| 欧美日韩国产美| 国产精品12345| 欧美激情午夜| 久久久另类综合| 午夜精品一区二区三区av| 亚洲做受高潮无遮挡| 国产无遮挡裸体视频在线观看| 国产凹凸在线观看一区二区| 国产精品成人在线| 国产午夜福利一区二区| 久久亚洲国产| 欧美在线观看一区| 国产综合中文字幕| 污片视频在线免费观看| 中文字幕av一区 二区| 精品国产综合| 国产尤物在线视频| 欧美成人69| 久久精品99久久久久久久久| 全黄一级裸体片| 成人av资源网址| 在线不卡a资源高清| 日本一极黄色片| 国产调教在线| 精品国产精品三级精品av网址| 亚洲色图都市激情| 国产成人精品av在线观| 免费观看在线色综合| 日本久久久久久久久久久| 国产一国产二国产三| 欧美一区影院| 久久久国产一区二区| 黄色片网站在线播放| 精品国产精品| 亚洲一区二区久久| av男人的天堂av| 亚洲黄页在线观看| 国产亚洲成精品久久| 国产美女免费网站| 激情五月色综合国产精品| 亚洲精品一区二区三区婷婷月| 久久久久久久无码| 欧美一性一交| 亚洲欧美中文日韩在线| 国产黄色网址在线观看| 免费av一区| 国产香蕉一区二区三区在线视频| 蜜桃av免费看| 成人嫩草影院| 草民午夜欧美限制a级福利片| 稀缺小u女呦精品呦| swag国产精品一区二区| 欧美精品一区二区久久婷婷| 久久久久久香蕉| 亚洲四虎影院| 在线综合视频播放| 国产一级二级av| 精品国产一区二区三区不卡蜜臂| 亚洲精品成人久久| www激情五月| 在线观看特色大片免费视频| 日韩欧美高清在线视频| avove在线观看| www.久久久久.com| 亚洲成人免费看| 国产又大又硬又粗| 久久婷婷五月综合色丁香| 欧美一三区三区四区免费在线看| 亚洲视频 中文字幕| 女厕嘘嘘一区二区在线播放| 神马国产精品影院av| 青娱乐国产盛宴| 久久电影一区| 成人av在线亚洲| 黄色一级大片在线免费看国产一 | 中文字幕第3页| 免费看av成人| 久久久国产一区二区三区| 日韩伦人妻无码| 久久精品久久久精品美女| 91成人免费观看| 日韩一区av| 中文字幕一区二区三中文字幕| 屁屁影院ccyy国产第一页| 中文字幕资源网在线观看免费| 欧美午夜精品理论片a级按摩| 国产精品探花在线播放| 首页亚洲中字| 久久这里只有精品99| 毛片基地在线观看| 国内精品久久久久影院一蜜桃| 国产91在线播放| 不卡的日韩av| 国产精品原创巨作av| 久久综合给合久久狠狠色| 免费高清完整在线观看| 精品久久久中文| 一级日本黄色片| 成人在线免费观看91| 午夜精品久久久久久99热| 在线观看国产成人| 美女一区二区久久| 蜜桃av噜噜一区二区三| 秋霞在线视频| 欧美久久久影院| 蜜乳av中文字幕| 国产欧美一级| 99在线观看视频| 看黄网站在线| 欧美色综合网站| 人人妻人人藻人人爽欧美一区| 伊人成人在线| 成人永久免费| 一区二区三区伦理| 91精品中文字幕一区二区三区| 国产全是老熟女太爽了| 国产精品久久久久久久免费软件| 成人av免费看| 色黄网站在线观看| 56国语精品自产拍在线观看| 女人十八毛片嫩草av| 久久久久久久波多野高潮日日| 久久艹中文字幕| 国产资源在线播放| 欧美日韩激情小视频| 亚洲一区二区三区四区av| 欧美成人69| av在线不卡一区| 在线观看电影av| 日韩一级黄色片| 日韩影院一区二区| 一区二区三区国产在线| 成人免费观看网站| 波多野结衣在线播放| 欧美sm极限捆绑bd| 久久久久亚洲av成人片| 国产精品1区2区3区在线观看| 91免费视频黄| 精品国产三区在线| 欧美成人亚洲成人日韩成人| 国产美女主播在线观看| 成人福利电影精品一区二区在线观看| 欧美a级黄色大片| 日韩高清一区| 久久久久久久久久久免费| 色婷婷av一区二区三区之e本道| 亚洲成精国产精品女| 中文字幕乱视频| 一区二区黄色| 欧美国产综合视频| 成人黄色在线| 久久影院在线观看| 亚洲欧美激情在线观看| 午夜精品福利一区二区三区av | 久久免费视频色| 成人3d动漫一区二区三区| 色婷婷一区二区三区| 亚洲a∨日韩av高清在线观看| 91精品久久久久久粉嫩| 精品国产网站在线观看| 五月婷婷色丁香| 国产成人综合在线播放| 一卡二卡三卡视频| 免费av一区| 成人国内精品久久久久一区| 在线观看wwwxxxx| 日韩高清免费观看| 中文字幕日产av| 99精品热视频| 日本爱爱免费视频| 综合天天久久| 国产狼人综合免费视频| 欧美成人免费| 欧美挠脚心视频网站| 麻豆91精品91久久久| 久久久亚洲午夜电影| 亚洲黄色av片| 一区二区三区四区五区精品视频 | 亚洲午夜免费视频| 瑟瑟视频在线观看| 国产制服丝袜一区| 成人三级视频在线播放 | 日韩在线观看网址| 日本免费网站在线观看| 在线精品亚洲一区二区不卡| 国产精品扒开腿做爽爽爽a片唱戏| 视频一区二区不卡| 欧美日韩在线观看一区| 99精品美女视频在线观看热舞| 久久久久久有精品国产| а√天堂中文在线资源bt在线| 欧美mv日韩mv国产网站| 美女黄页在线观看| 精品成人国产在线观看男人呻吟| 欧美激情精品久久久久久免费| 91丝袜高跟美女视频| 波多野结衣免费观看| 日韩成人精品在线| 欧美极品欧美精品欧美| 一区二区三区中文| 亚洲7777| 精品一区亚洲| 国产视频99| 日本免费精品| 国产欧美在线视频| 国产午夜精品久久久久免费视| 亚洲精品久久在线| 国产成人精品一区二区无码呦| 欧美系列亚洲系列| 99久久精品国产亚洲| 亚洲午夜电影在线观看| 中日韩一级黄色片| 国产精品久久久久9999吃药| 国产熟妇搡bbbb搡bbbb| 成人激情综合网站| 日本久久久久久久久久| 狠狠色丁香婷婷综合久久片| 国产三级三级三级看三级| 国产精品综合| 少妇无码av无码专区在线观看| 欧美精品91| 精品一区二区久久久久久久网站| 成人激情久久| 成人黄色在线观看| 六九午夜精品视频| 国产精品日韩电影| 久久亚洲精品中文字幕| 国产精品久久久久久久久久小说 | 国产精品毛片一区二区在线看| 日韩欧美一区二区三区四区五区| 国产精品欧美日韩一区| 欧美日韩国产不卡在线看| 特黄特色欧美大片| 欧美一级二级三级九九九| 伊人久久大香线蕉综合网蜜芽| 久久免费看av| 国产中文精品久高清在线不| 日本高清一区| 青青草国产免费一区二区下载| 性欧美大战久久久久久久免费观看 | 国产一区二区色| 亚洲成人毛片| 亚洲综合在线小说| 国产精品黄网站| 国产一区再线| 精品99在线| 伊人久久大香线蕉综合75| 天天做天天爱天天综合网| 中国女人做爰视频| 一区视频在线看| 可以免费观看av毛片| 青娱乐精品视频| 在线观看日本www| 国产成+人+日韩+欧美+亚洲| 亚洲av成人片色在线观看高潮| 久久久久久一级片| 小嫩苞一区二区三区| 一区av在线播放| 国产高潮久久久| 欧美日韩国产乱码电影| 国产黄色av片| 亚洲国产欧美一区二区丝袜黑人| 天堂√在线中文官网在线| 一本色道久久综合狠狠躁篇怎么玩| 国产91在线视频蝌蚪| 久久久影视精品| 99只有精品| 97久久人人超碰caoprom欧美| 欧美wwwwww| 亚洲精品永久www嫩草| 欧美日韩国产在线一区| 日本精品一区二区三区四区| 黑人巨大精品欧美一区| 一边摸一边做爽的视频17国产 | 九九九九久久久久| 精品久久久久久久久久久下田| av磁力番号网| 久久av最新网址| 97超碰免费在线观看| 久久嫩草精品久久久精品| 青青操视频在线播放| 色哟哟日韩精品| 精品人妻av一区二区三区| 亚洲欧美在线免费| 99热国产在线中文| 国产成人精品电影久久久| 日韩精品一级| 神马欧美一区二区| 亚洲毛片视频| 善良的小姨在线| 国产校园另类小说区| 国产一级av毛片| 欧美日本一区二区在线观看| 人妻精品一区二区三区| xxx成人少妇69| 午夜欧美巨大性欧美巨大| 国产一区二区免费在线观看| 婷婷亚洲五月| 国产高清视频网站| 2023国产精品| 国产精品不卡av| 日韩视频在线永久播放| 蜜芽在线免费观看| 国产精品麻豆va在线播放| 亚瑟一区二区三区四区| 97免费视频观看| 国产一区二区在线免费观看| 黄色片在线观看免费| 欧美丝袜第一区| 天堂av一区二区三区| 欧美大片在线免费观看| www久久久| 亚洲一区二区三区加勒比 | 日韩精品视频一二三| 久久久不卡网国产精品二区 | 欧美日韩一卡二卡三卡| 国产区视频在线| 日本国产精品视频| 亚洲电影有码| 久久综合一区二区三区| 日韩亚洲国产精品| 亚洲av成人片无码| 亚洲成a天堂v人片| 蜜桃在线一区二区| 久久久影视精品| 牛牛影视一区二区三区免费看| 亚洲精品久久久久久久蜜桃臀| 国产一区二区精品久久| 婷婷社区五月天| 欧美一区二区三区播放老司机| 免费网站成人| 亚洲综合日韩在线| 国产精品vip| 稀缺呦国内精品呦| 亚洲成a人片在线观看中文| 蜜桃av中文字幕| 91精品国产91久久久| 欧美自拍视频| 日韩欧美黄色大片| 国产精品美女久久久久久2018| 怡春院在线视频| 日韩中文字幕在线免费观看| 亚洲网站三级| 真人做人试看60分钟免费| 粉嫩aⅴ一区二区三区四区五区| 国产无遮挡免费视频| 日韩激情在线视频| 3d性欧美动漫精品xxxx软件| 偷拍视频一区二区| 国内精品不卡在线| 国产在线一二区| 精品夜色国产国偷在线| 日本另类视频| 六月婷婷激情网| 99久久久精品| 中文字幕av网站| 不卡av在线播放| 偷拍亚洲精品| 杨幂毛片午夜性生毛片 | 成人免费一区| 欧美日韩一级在线| 波多野结衣中文一区| 四虎影院在线免费播放| www国产精品视频| 9国产精品午夜| 欧美激情国产精品日韩| 亚洲欧美自拍偷拍色图| 丰满人妻av一区二区三区| 日本久久久久亚洲中字幕| 亚洲国产精品久久久天堂| 国产精品手机在线观看| 欧美日韩中文字幕一区二区| 三级福利片在线观看| 欧美精品久久久| 国产剧情在线观看一区二区 | 欧美精品久久一区| 极品在线视频| 中文字幕免费在线不卡| 久久色在线观看|