10102 0
2017-07-29 Dodu 网络技术

简单来说,APPX格式的文件就是ZIP换了个扩展名,把APPX文件的扩展名改成zip就能打开了。

APPX格式分为四种:

第一种,扩展名为.appx;

第二种,扩展名为.appxbundle;

第三种,扩展名为.appxsym;

第四种,扩展名为.appxupload。

第一种APPX可能在一些人看来并不能体现它是“UWP”的安装包,因为它的安装包并不是通用的,在ARM、x86、x64设备上需要不同的安装包,并不能一个安装包走遍天下(基于JavaScript开发的UWP除外,老的Windows 8应用除外)。

第二种APPX其实就是将同一应用的第一种APPX打包了起来,将ARM、x86、x64等平台需要的APPX用ZIP文件放到了一起,在ARM设备上安装就提取里面ARM的第一类APPX来安装,x86就提取x86。你没看错,就是这么粗暴的做法,实现了“伪”安装包通用。

第三种和第四种都是开发者需要接触到的,平常见不到,第三种是UWP符号文件,第四种是未经.Net Native处理的上传文件。开发者向商店上传应用用的就是第四种文件,实际上就是将第二种和第三种文件通过ZIP压缩放到了一起。

现在大家应该清楚了,第二、三、四种APPX都是用来打包第一种APPX的,那么第一种APPX里面是什么呢?

第一种APPX又分三种

1、依赖包;

2、资源包;

3、应用程序包。

APPX格式到底是什么

APPX格式到底是什么

▲一个典型的依赖包APPX

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

CodeIntegrity.cat文件是包的数字签名,保证appx文件不被篡改。

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

AppxManifest.xml文件是包清单文件,它保存了这个包的基本属性,比如包的名称,发布者等。

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

AppxSignature.p7x同样是数字签名。

剩下两个文件是logo.png和resources.pri,这两个文件是这个包特有的,就不详细说明了。logo.png自然是这个包的图标。resources.pri是这个dll的资源文件。

▼资源包

APPX格式到底是什么

没什么可说的,和依赖包的文件分工差不多,没介绍到的都是每个包自己独有的地方。

▼最重要的应用程序包

APPX格式到底是什么

各种dll、exe、png等。

现在大家应该都清楚APPX是个什么东西了,它实际上就是带数字签名的压缩包,把安装目录打包起来而已。

可能有人会疑惑,难道微软的UWP平台实现的所谓跨平台就是这么一个简单的东西吗?不就打包了一下吗?

实际上UWP平台的通用并不是体现在安装包上的通用,UWP构建了一整套可以在各种Windows平台上使用的通用而现代的跨语言API,再加上良好的文档和应用商店体系。实现了开发者的一份代码几乎完全不用改动,只用在生成安装包的时候勾选几个选项就可以实现的跨平台。

APPX格式到底是什么

如下图,基本只要勾选就能实现的跨平台。

APPX格式到底是什么

注1:基于JavaScript开发的uwp除外,老的Windows 8应用除外。


发表评论: