91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

      手機站
      千鋒教育

      千鋒學習站 | 隨時隨地免費學

      千鋒教育

      掃一掃進入千鋒手機站

      領取全套視頻
      千鋒教育

      關注千鋒學習站小程序
      隨時隨地免費學習課程

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

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

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

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

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

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

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

      快速修復包部署時要確保對應應用包已安裝,如果未安裝,則部署失敗。

      快速修復包中配置的包名和應用版本號必須和已安裝的包名和版本號應用相同,如果不同則部署失敗。

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

      快速修復包的簽名信息和待修復的應用的簽名信息必須一致,否則會部署失敗。

      新的應用版本發(fā)布安裝時,會清理掉快速修復包。

      快速修復包結構

       

      應用寶

       

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

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

      appqf(Application Quick Fix)

      appqf與應用的app pack包是一一對應關系,具體可參考應用程序包結構的介紹。

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

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

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

      hqf(Harmony Ability Package Quick Fix)

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

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

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

      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"
      }
      }

       具體字段說明:

      圖標2

      快速修復C++編譯后的文件

      微信截圖_20231118152252

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

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

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

      微信截圖_20231118152324

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

      原始應用C++源碼通過編譯工具生成.so文件,該.so文件供應用在運行時使用。

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

      微信截圖_20231118152354

      上圖涉及到的模塊如下:

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

      應用市場服務器端:開發(fā)者將開發(fā)完成的快速修復包上架到該平臺,平臺會對上架的包進行簽名驗證、風險掃描和拆包重簽名等,然后分發(fā)到客戶端。

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

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

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

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

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

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

      將生成的帶有簽名的快速修復包上架到應用市場,應用市場通過驗證簽名、風險掃描和拆包重簽名后進行分發(fā)。

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

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

      微信截圖_20231118152426

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

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

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

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

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