設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

IT之家學(xué)院:APPX格式到底是什么

2017/7/29 11:42:59 來源:IT之家 作者:yinyue200 責(zé)編:小侃
感謝IT之家網(wǎng)友 yinyue200 的線索投遞!

感謝IT之家網(wǎng)友 yinyue200 的原創(chuàng)投稿

簡單來說,APPX格式的文件就是ZIP換了個擴(kuò)展名,把APPX文件的擴(kuò)展名改成zip就能打開了。

APPX格式分為四種:

第一種,擴(kuò)展名為.appx;

第二種,擴(kuò)展名為.appxbundle;

第三種,擴(kuò)展名為.appxsym;

第四種,擴(kuò)展名為.appxupload。

第一種APPX可能在一些人看來并不能體現(xiàn)它是“UWP”的安裝包,因為它的安裝包并不是通用的,在ARM、x86、x64設(shè)備上需要不同的安裝包,并不能一個安裝包走遍天下(基于JavaScript開發(fā)的UWP除外,老的Windows 8應(yīng)用除外)。

第二種APPX其實就是將同一應(yīng)用的第一種APPX打包了起來,將ARM、x86、x64等平臺需要的APPX用ZIP文件放到了一起,在ARM設(shè)備上安裝就提取里面ARM的第一類APPX來安裝,x86就提取x86。你沒看錯,就是這么粗暴的做法,實現(xiàn)了“偽”安裝包通用。

第三種和第四種都是開發(fā)者需要接觸到的,平常見不到,第三種是UWP符號文件,第四種是未經(jīng).Net Native處理的上傳文件。開發(fā)者向商店上傳應(yīng)用用的就是第四種文件,實際上就是將第二種和第三種文件通過ZIP壓縮放到了一起。

現(xiàn)在大家應(yīng)該清楚了,第二、三、四種APPX都是用來打包第一種APPX的,那么第一種APPX里面是什么呢?

第一種APPX又分三種

1、依賴包;

2、資源包;

3、應(yīng)用程序包。

▲一個典型的依賴包APPX

其中所有的.winmd .dll文件是供其它程序使用的庫。

CodeIntegrity.cat文件是包的數(shù)字簽名,保證appx文件不被篡改。

AppxBlockMap.xml文件保存了包中所有文件的名稱,校驗值和文件大小。

AppxManifest.xml文件是包清單文件,它保存了這個包的基本屬性,比如包的名稱,發(fā)布者等。

[Content_Types].xml文件保存了所有文件的Content Type。

AppxSignature.p7x同樣是數(shù)字簽名。

剩下兩個文件是logo.png和resources.pri,這兩個文件是這個包特有的,就不詳細(xì)說明了。logo.png自然是這個包的圖標(biāo)。resources.pri是這個dll的資源文件。

▼資源包

沒什么可說的,和依賴包的文件分工差不多,沒介紹到的都是每個包自己獨有的地方。

▼最重要的應(yīng)用程序包

各種dll、exe、png等。

現(xiàn)在大家應(yīng)該都清楚APPX是個什么東西了,它實際上就是帶數(shù)字簽名的壓縮包,把安裝目錄打包起來而已。

可能有人會疑惑,難道微軟的UWP平臺實現(xiàn)的所謂跨平臺就是這么一個簡單的東西嗎?不就打包了一下嗎?

實際上UWP平臺的通用并不是體現(xiàn)在安裝包上的通用,UWP構(gòu)建了一整套可以在各種Windows平臺上使用的通用而現(xiàn)代的跨語言API,再加上良好的文檔和應(yīng)用商店體系。實現(xiàn)了開發(fā)者的一份代碼幾乎完全不用改動,只用在生成安裝包的時候勾選幾個選項就可以實現(xiàn)的跨平臺。

如下圖,基本只要勾選就能實現(xiàn)的跨平臺。

注1:基于JavaScript開發(fā)的uwp除外,老的Windows 8應(yīng)用除外。

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會買 要知