一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 千鋒教育鴻蒙(HarmonyOS)開發(fā)教程:應(yīng)用寶程序快速修復(fù)概述

千鋒教育鴻蒙(HarmonyOS)開發(fā)教程:應(yīng)用寶程序快速修復(fù)概述

來源:千鋒教育
發(fā)布人:千鋒
時(shí)間: 2023-11-18 15:25:05 1700292305

快速修復(fù)是HarmonyOS系統(tǒng)提供給開發(fā)者的一種技術(shù)手段,支持開發(fā)者以遠(yuǎn)快于應(yīng)用升級(jí)的方式對(duì)應(yīng)用程序包進(jìn)行缺陷修復(fù)。和全量應(yīng)用升級(jí)軟件版本相比,快速修復(fù)的主要優(yōu)勢(shì)在小、快和用戶體驗(yàn)好。在較短的時(shí)間內(nèi)不中斷正在運(yùn)行的應(yīng)用的情況下(即不需要重啟應(yīng)用),修復(fù)應(yīng)用的缺陷。

快速修復(fù)的使用規(guī)則

僅支持修復(fù)應(yīng)用的TS和C++代碼,對(duì)應(yīng)的文件為.abc文件(TS編譯后的文件)和.so文件(C++編譯后的文件),不支持對(duì)資源的修復(fù)。

不支持新增.abc文件和.so文件。

快速修復(fù)包部署時(shí)要確保對(duì)應(yīng)應(yīng)用包已安裝,如果未安裝,則部署失敗。

快速修復(fù)包中配置的包名和應(yīng)用版本號(hào)必須和已安裝的包名和版本號(hào)應(yīng)用相同,如果不同則部署失敗。

如果已經(jīng)部署過快速修復(fù)包,新部署的快速修復(fù)包的版本號(hào)必須大于之前快速修復(fù)包的版本號(hào),否則部署失敗。

快速修復(fù)包的簽名信息和待修復(fù)的應(yīng)用的簽名信息必須一致,否則會(huì)部署失敗。

新的應(yīng)用版本發(fā)布安裝時(shí),會(huì)清理掉快速修復(fù)包。

快速修復(fù)包結(jié)構(gòu)

 

應(yīng)用寶

 

上圖是HarmonyOS應(yīng)用程序發(fā)布的快速修復(fù)的包格式

從圖中可以看出包含兩種包格式:

appqf(Application Quick Fix)

appqf與應(yīng)用的app pack包是一一對(duì)應(yīng)關(guān)系,具體可參考應(yīng)用程序包結(jié)構(gòu)的介紹。

appqf包是HarmonyOS應(yīng)用用于發(fā)布到應(yīng)用市場(chǎng)的單元,不能夠直接安裝到設(shè)備上。

它是由一個(gè)或多個(gè)hqf(Harmony Ability Package Quick Fix)組成,這些hqf包在應(yīng)用市場(chǎng)會(huì)從appqf包中拆分出來,再被分發(fā)到具體的設(shè)備上。

appqf包上架到應(yīng)用市場(chǎng)前要有開發(fā)者的簽名信息。

hqf(Harmony Ability Package Quick Fix)

hqf包是修復(fù)HAP中問題的快速修復(fù)包,用于安裝到設(shè)備上的快速修復(fù)單元。一個(gè)hqf可以包含.abc的快速修復(fù)文件,.so的快速修復(fù)文件和描述該包的配置文件。

.abc文件:應(yīng)用中修改后的ts代碼,編譯后生成的字節(jié)碼文件。

libs目錄:存放.so庫文件的差分文件,以.so.diff為后綴。區(qū)分的不同的系統(tǒng)cpu架構(gòu),例如arm平臺(tái)、x86平臺(tái)。

patch.json:

該文件用于描述hqf包版本信息的配置文件,由開發(fā)者填寫,具體內(nèi)容如下:

{
"app" : {
"bundleName" : "com.ohos.quickfix",
"versionCode" : 1000000,
"versionName" : "1.0.0",
"patchVersionCode" : 1000000,
"patchVersionName" : "1.0.0"
},
"module" : {
"name" : "entry",
"type" : "patch",
"deviceTypes" : [
"default",
"tablet"
],
"originalModuleHash" : "11223344556677889900"
}
}

 具體字段說明:

圖標(biāo)2

快速修復(fù)C++編譯后的文件

微信截圖_20231118152252

上圖是通過TS代碼編譯工具生成快速修復(fù).abc文件的流程:

原始應(yīng)用編譯時(shí),生成.abc文件和.map文件。.abc是TS代碼編譯后的字節(jié)碼文件,應(yīng)用運(yùn)行時(shí)使用該文件。.map文件是通過TS代碼編譯工具編譯TS代碼時(shí)生成的中間文件,記錄有代碼中的函數(shù)、類等信息。

修復(fù)問題后的應(yīng)用編譯時(shí),根據(jù)上述的.map文件,結(jié)合當(dāng)前的TS代碼,得到差異部分,根據(jù)差異部分生成快速修復(fù)的.abc文件。該.abc文件也既是最終要放到hqf包中的快速修復(fù)文件。

微信截圖_20231118152324

上圖是通過差分工具生成快速修復(fù).so文件的流程:

原始應(yīng)用C++源碼通過編譯工具生成.so文件,該.so文件供應(yīng)用在運(yùn)行時(shí)使用。

修復(fù)問題后的C++源碼通過編譯工具生成.so文件,該.so文件和原應(yīng)用的.so文件通過差分工具生成.so快速修復(fù)文件,該.so快速修復(fù)文件也既是最終要放到hqf包中的快速修復(fù)文件。

微信截圖_20231118152354

上圖涉及到的模塊如下:

DevEco Studio:用于開發(fā)代碼的項(xiàng)目工程的集成開發(fā)環(huán)境。在快速修復(fù)的工程中能夠給予原應(yīng)用的代碼和修復(fù)問題后的代碼生成快速修復(fù)包,并完成快速修復(fù)包的簽名。

應(yīng)用市場(chǎng)服務(wù)器端:開發(fā)者將開發(fā)完成的快速修復(fù)包上架到該平臺(tái),平臺(tái)會(huì)對(duì)上架的包進(jìn)行簽名驗(yàn)證、風(fēng)險(xiǎn)掃描和拆包重簽名等,然后分發(fā)到客戶端。

應(yīng)用市場(chǎng)客戶端:用于接收應(yīng)用市場(chǎng)服務(wù)器端分發(fā)的快速修復(fù)包,并觸發(fā)安裝快速修復(fù)包。

包管理服務(wù):設(shè)備上用于管理應(yīng)用包及快速修復(fù)包安裝和卸載的系統(tǒng)服務(wù)程序。

快速修復(fù)引擎:設(shè)備上用于管理應(yīng)用切換使用快速修復(fù)包的系統(tǒng)服務(wù)程序。如果應(yīng)用正在運(yùn)行,快速修復(fù)引擎接收到有快速修復(fù)包部署完成會(huì)通知應(yīng)用切換快速修復(fù)包,進(jìn)而使得應(yīng)用使能快速修復(fù)包。

文件系統(tǒng):應(yīng)用及快速修復(fù)包部署在設(shè)備上的位置。

上圖是快速修復(fù)包的端到端發(fā)布部署流程:

開發(fā)者通過DevEco Studio,基于原應(yīng)用的源碼和修復(fù)后的源碼編譯打包生成快速修復(fù)包,并通過DevEco Studio完成快速修復(fù)包的簽名。

將生成的帶有簽名的快速修復(fù)包上架到應(yīng)用市場(chǎng),應(yīng)用市場(chǎng)通過驗(yàn)證簽名、風(fēng)險(xiǎn)掃描和拆包重簽名后進(jìn)行分發(fā)。

設(shè)備側(cè)的應(yīng)用市場(chǎng)客戶端檢測(cè)到應(yīng)用市場(chǎng)服務(wù)器端有新上架的快速修復(fù)包會(huì)下載最新版本的快速修復(fù)包,接著通過系統(tǒng)中的包管理服務(wù)來安裝部署快速修復(fù)包。

快速修復(fù)包部署完成后,再由快速修復(fù)引擎觸發(fā)應(yīng)用使用快速修復(fù)包,進(jìn)而保證用戶使用到問題修復(fù)后的功能。

微信截圖_20231118152426

DevEco Studio中暫時(shí)還沒有集成快速修復(fù)的能力。當(dāng)前階段,HarmonyOS為開發(fā)者提供了命令行的調(diào)試開發(fā)工具可供使用,具體的調(diào)試開發(fā)流程如下:

基于原應(yīng)用的源碼和修復(fù)后的源碼,通過命令行工具可以編譯生成快速修復(fù)包,并通過命令行簽名工具完成對(duì)快速修復(fù)的包的簽名。通過命令行調(diào)試開發(fā),要對(duì).hqf包簽名,并通過命令行工具將.hqf包安裝到設(shè)備上,.appqf包不能直接安裝到設(shè)備上。

通過快速修復(fù)的命令行工具,將.hqf包安裝部署到設(shè)備上。

.hqf包安裝部署完成后,回調(diào)通知快速修復(fù)引擎觸發(fā)應(yīng)用使用快速修復(fù)包,進(jìn)而保證用戶使用到問題修復(fù)后的功能。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
什么是云管理平臺(tái)

什么是云管理平臺(tái)?云管理平臺(tái)(Cloud Management Platform,CMP)是由Gartner提出的企業(yè)云戰(zhàn)略中的一種產(chǎn)品形態(tài),是提供對(duì)公有云、私有云和混合...詳情>>

2023-12-04 11:10:46
Docker的核心底層技術(shù)有哪些

Docker的核心底層技術(shù)有哪些?Docker可以運(yùn)行在64位Linux發(fā)行版以及蘋果和微軟系統(tǒng)上,但后兩者只能使用虛擬機(jī)作為宿主機(jī)。所有的可運(yùn)行的容器...詳情>>

2023-12-04 06:27:25
什么是包過濾技術(shù)

什么是包過濾技術(shù)?包過濾(Packet Filtering)技術(shù)是根據(jù)流經(jīng)防火墻的數(shù)據(jù)包的特征,依據(jù)預(yù)先定義好的規(guī)則,決定是否允許數(shù)據(jù)包通過的技術(shù)。它對(duì)...詳情>>

2023-12-04 03:40:45
什么是網(wǎng)絡(luò)安全掃描技術(shù)

什么是網(wǎng)絡(luò)安全掃描技術(shù)?物聯(lián)網(wǎng)的網(wǎng)絡(luò)安全掃描技術(shù)是網(wǎng)絡(luò)安全領(lǐng)域的重要技術(shù)之一,是一種遠(yuǎn)程檢測(cè)目標(biāo)網(wǎng)絡(luò)或本地主機(jī)安全性脆弱點(diǎn)的技術(shù),是為...詳情>>

2023-12-04 03:07:25
IaaS的優(yōu)勢(shì)

IaaS的優(yōu)勢(shì)。與在本地計(jì)算中心部署資源相比,IaaS具有強(qiáng)大的敏捷性和高度的可擴(kuò)展性。企業(yè)在內(nèi)部部署一個(gè)新的虛擬機(jī)往往需要幾天甚至一周以上的...詳情>>

2023-12-04 02:17:25