IT之家学院:APPX格式到底是什么

2017-07-29 11:42IT之家 - yinyue200
感谢IT之家网友 Miloslava 的线索投递!

感谢IT之家网友 yinyue200 的原创投稿

简单来说,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

其中所有的.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的资源文件。

▼资源包

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

▼最重要的应用程序包

各种dll、exe、png等。

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

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

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

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

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

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      文章发布时间太久,仅显示热门评论
      全部评论
      一大波评论正在路上
        取消发送
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享