精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品国产91久久久久久| 国产综合久久久久久久久久久久| 日韩av最新在线观看| 波多野结衣家庭教师视频| 8888四色奇米在线观看| 狠狠色狠狠色合久久伊人| 欧美激情视频一区| 国产一级久久久久毛片精品| 豆花视频一区| 欧美日韩在线免费| 亚洲精品8mav| 天天色综合久久| 蜜桃在线一区二区三区| 久久人人爽人人| 国产三级在线观看完整版| 伊人久久亚洲| 欧美日韩成人激情| 99精品人妻少妇一区二区| 色大18成网站www在线观看| 懂色一区二区三区免费观看| 国产精品99久久久久久人| 欧美日韩大片在线观看| 国产在线日韩精品| 精品久久久久久久人人人人传媒 | 都市激情亚洲色图| 一本一本久久a久久精品综合妖精| 国产情侣一区二区| 日韩av一区二| 欧美一级片一区| 黄色一级片在线免费观看| 精品九九在线| 亚洲精品av在线| 亚洲国产成人va在线观看麻豆| 2021中文字幕在线| 一区二区三区在线观看国产| 亚洲高清在线观看一区| 亚洲色图另类小说| 成人丝袜视频网| 亚洲aa在线观看| 中文文字幕一区二区三三| 一本色道久久综合| 久久精品网站视频| av在线之家电影网站| 成人白浆超碰人人人人| 91黄色国产视频| 亚洲影院一区二区三区| 水蜜桃久久夜色精品一区的特点| 97视频在线观看成人| 中文字幕av免费在线观看| 国产国产精品| 日韩专区在线观看| 日本视频在线免费| 精品一区电影| 亚洲最大在线视频| 国产黄色大片免费看| 国产成人3p视频免费观看| 亚洲另类xxxx| 在线免费看黄视频| 蜜桃一区二区三区| 亚洲男人第一av网站| 老司机福利av| 国内成人自拍| 中文字幕日韩在线播放| wwwww黄色| 天天天综合网| 美女av一区二区三区| 日韩视频中文字幕在线观看| 亚洲影视一区二区三区| 欧美精品在线免费观看| 免费在线视频一区二区| 亚洲国产综合在线看不卡| 国内免费精品永久在线视频| 日韩av免费网址| 国产精品一国产精品k频道56| 2019av中文字幕| 中文字幕亚洲乱码熟女1区2区| 性欧美xxxx大乳国产app| 日本精品久久久久久久| 中文字幕乱码人妻无码久久 | 另类小说色综合| 欧美一级免费| 精品国产网站在线观看| 中文成人无字幕乱码精品区| 亚洲福利网站| 最新的欧美黄色| 日本妇女毛茸茸| 亚洲国产专区校园欧美| 国产精品白丝jk喷水视频一区| 在线免费观看一级片| 国产一区二区按摩在线观看| 国产精品久久波多野结衣| 偷拍25位美女撒尿视频在线观看| 国产女同互慰高潮91漫画| av中文字幕av| 中文字幕资源网在线观看免费| 欧美性受极品xxxx喷水| 丰满少妇一区二区三区专区| 天天做夜夜做人人爱精品| 综合网中文字幕| 久久精品人妻一区二区三区| 久久亚洲欧洲| 51精品国产人成在线观看| 日韩av地址| 亚洲精品日产精品乱码不卡| 欧美亚洲国产成人| 国产精选久久| 亚洲午夜性刺激影院| www青青草原| 日韩在线卡一卡二| 国产精品久久国产精品| 日本激情视频在线观看| 一区二区三区四区乱视频| 国产真实乱子伦| 久久精品一级| 中文日韩在线观看| 综合激情网五月| 国产精品66部| 亚洲国产精品毛片| 免费看男女www网站入口在线| 欧美精品在线视频| 性少妇bbw张开| 亚洲精品欧美| 亚洲综合中文字幕在线| www.亚洲资源| 色婷婷综合久久久久中文| 免费观看污网站| 久久综合88| 国产精品欧美日韩久久| 亚州男人的天堂| 亚洲高清不卡在线| 亚洲一区二区中文字幕在线观看| 日韩在线二区| 国产精品视频免费观看www| 天堂中文字幕在线| 午夜精品福利一区二区三区av | 被灌满精子的波多野结衣| 免费成人毛片| 一区二区日韩精品| 亚洲精品久久久久久久蜜桃| 91网上在线视频| 免费看黄在线看| 国产精品白浆| 韩国精品久久久999| 色婷婷在线视频| 亚洲第一在线综合网站| 美女搡bbb又爽又猛又黄www| 午夜精品视频| av一本久道久久波多野结衣| 天堂av中文在线| 欧美成人a视频| 久久久国产成人| 成人av在线观| 国产h视频在线播放| 欧美爱爱网站| 人人爽久久涩噜噜噜网站| 免费在线视频你懂得| 福利一区福利二区微拍刺激| 欧美做受xxxxxⅹ性视频| 日韩不卡免费视频| 亚洲一区高清| 免费一级欧美片在线观看网站| 欧美成人三级视频网站| 亚洲欧美另类日韩| 精品国产91久久久久久老师| 无码熟妇人妻av| 热久久免费视频| 麻豆中文字幕在线观看| 亚洲五码在线| 午夜精品久久久久久久男人的天堂| 国产 日韩 欧美 精品| 亚洲一区二区三区爽爽爽爽爽| 美女扒开腿免费视频| 亚洲激情国产| 国产在线观看一区| 免费日韩电影| 国产亚洲欧美视频| 中文字幕在线观看国产| 亚洲欧美激情一区二区| 成人免费播放视频| 黄色精品免费| 欧美在线一二三区| 欧美爱爱视频| 欧美成人免费va影院高清| 丁香六月色婷婷| 91精品福利视频| 国产精品麻豆一区| 久久精品av麻豆的观看方式| 最近中文字幕免费mv| 亚洲日本视频在线| 国内精品小视频| 99青草视频在线播放视| 日韩一级免费观看| 国产精品自拍视频一区| 26uuu成人网一区二区三区| 天天干天天色天天干| 影音先锋久久精品| 日本一区二区高清视频| 国产精品久一| 日本成人免费在线| bestiality新另类大全| 亚洲高清久久网| 亚洲天堂视频在线播放| 成人欧美一区二区三区视频网页 | 久久亚洲精品国产精品紫薇| 亚洲欧洲日本精品| 亚洲午夜电影| 亚洲精品一区二区三区四区五区| jazzjazz国产精品久久| 国产精品久久久久久久久久三级 | 国产高清一区二区三区四区| 日韩成人免费电影| 波多野结衣家庭教师在线| 色综合色综合| 蜜桃精品久久久久久久免费影院| 亚洲伦理网站| 国产九九精品视频| 成人黄色动漫| 欧美成人在线免费| 国产精品二线| 亚洲国产精品久久精品怡红院| 姑娘第5集在线观看免费好剧| 亚洲国产一区在线观看| 91香蕉视频污在线观看| 91亚洲午夜精品久久久久久| 拔插拔插华人永久免费| 蜜桃视频在线观看一区二区| 国产精品成人久久电影| 99久久亚洲精品| 日本高清视频一区二区三区| 女同一区二区三区| 999久久久| 欧美黄页在线免费观看| 欧洲日韩成人av| 高清视频在线观看三级| 日韩中文字幕网站| 成人在线免费观看| 亚洲欧洲在线免费| 污污视频在线免费看| 日韩一二在线观看| 精品久久人妻av中文字幕| 欧美日韩不卡视频| 最新在线中文字幕| 色偷偷一区二区三区| 成人h动漫精品一区二区下载| 精品欧美aⅴ在线网站| 久久久久久久久久久久国产| 国产精品人人做人人爽人人添| 国产美女免费网站| 2欧美一区二区三区在线观看视频| 国产精品一区二区无码对白| 美女视频第一区二区三区免费观看网站| 亚欧在线免费观看| 久久免费高清| 成人在线激情网| 亚洲毛片播放| 国产精彩免费视频| 老司机精品导航| 国产午夜福利视频在线观看| 亚洲国产专区校园欧美| 国产1区2区在线| 久久狠狠一本精品综合网| 日韩a在线播放| 三级久久三级久久久| 国产野外作爱视频播放| 欧美aaa在线| 亚洲人辣妹窥探嘘嘘| 韩日精品视频一区| 日韩精品aaa| 国产不卡在线视频| 稀缺小u女呦精品呦| 久久综合999| 我不卡一区二区| 国产精品不卡在线观看| 污污视频网站在线免费观看| 伊人夜夜躁av伊人久久| 久久伊人成人网| 午夜激情一区二区| 欧美人妻一区二区| 色香色香欲天天天影视综合网| 中文字幕乱码视频| 这里只有精品99re| 色哟哟在线观看| 中文字幕成人在线| 最新黄网在线观看| 欧美区二区三区| 高清电影一区| 成人中心免费视频| 亚洲一区二区三区在线免费 | 男人透女人免费视频| 免费成人在线观看| 中文字幕在线视频播放| 国产亚洲精品中文字幕| 日本一级片免费| 精品久久久久久久久久| 一区二区高清视频| 国产黄色大片网站| 亚洲成人久久久久| 91社区在线观看| 欧美成人激情视频免费观看| 成全电影大全在线观看| 国产成人精品亚洲精品| www国产精品| 日韩福利一区二区三区| 欧美日韩成人| 欧美一级黄色影院| 国产成人精品一区二| 精品无码人妻一区| 亚洲一区二区三区在线看| 中文字幕永久在线| 欧美不卡一二三| h视频网站在线观看| 欧美一级免费看| 国产成人视屏| 欧美日韩高清在线一区| 精品av久久久久电影| 婷婷免费在线观看| 91小视频免费观看| 亚洲欧美成人一区二区在线电影| 色中色在线视频| 久久视频这里只有精品| 亚洲成人激情社区| 国产成人女人毛片视频在线| 欧洲杯足球赛直播| 精品国产成人av在线免| 国产精品99久久久久久久vr| 妺妺窝人体色WWW精品| 亚洲亚洲精品在线观看| 99久久婷婷国产一区二区三区| 亚洲精品乱码久久久久久按摩观| 国产网友自拍视频导航网站在线观看| 国产精品mp4| 欧美五码在线| 国产一区二区片| 日韩黄色在线观看| 中文字幕一区二区三区人妻不卡| 有坂深雪av一区二区精品| 超碰在线免费97| 亚洲小视频在线| 日韩精品av| 国产精品露出视频| 欧美私人啪啪vps| 中文字幕55页| 中文字幕一区二区三区不卡 | 国产精品久久无码| 亚洲欧美二区三区| 又色又爽又黄无遮挡的免费视频| 在线播放日韩专区| 国产麻豆久久| 茄子视频成人在线观看 | av不卡一区| 亚洲国产精品影视| 国产在线精品一区在线观看麻豆| 日本人亚洲人jjzzjjz| 色综合久久久久综合体桃花网| 亚洲欧美另类综合| 777午夜精品福利在线观看| 成人在线视频你懂的| av女优在线播放| 久久久影院官网| 欧美黑人一区二区| 亚洲跨种族黑人xxx| 怡红院成人在线| 婷婷久久青草热一区二区| 丝袜诱惑制服诱惑色一区在线观看| 蜜桃久久精品成人无码av| 色婷婷综合久久久中文一区二区 | 日韩在线中文字| **精品中文字幕一区二区三区| 午夜精品电影在线观看| 国产综合久久久久影院| 欧美日韩大片在线观看| 欧美精品一区在线观看| 中文字幕人成乱码在线观看 | 久久人人88| 999久久久精品视频| 亚洲欧美偷拍三级| 成人久久精品人妻一区二区三区| 26uuu久久噜噜噜噜| 久草成人在线| 欧美日韩亚洲自拍| 亚洲精品国久久99热| 亚洲乱码在线观看| 91黑丝高跟在线| 日韩大片在线| 杨幂一区二区国产精品| 亚洲国产日韩综合久久精品| 欧美巨乳在线| 成人在线激情视频| 亚洲私拍自拍| 久久久久久成人网| 日韩一级大片在线观看| 日本午夜大片a在线观看| 亚洲永久激情精品| 国产.精品.日韩.另类.中文.在线.播放| 久久久久久久伊人| 久久精品在线视频| 露出调教综合另类| 天天干天天玩天天操| 欧美日韩在线免费| 国产1区在线|