yinyue200的原创投稿 简单来说,APPX格式的文件就是ZIP换了个扩展名,把APPX文件的扩展名改成zip就能打开了。 APPX格式分为四种: 第一种,扩展名为.appx; 第二种,扩展名为.appxbundle; 第三种,扩展名为.appxsym; 第四种,扩展名为.appxupload。 第一种APPX可能在一些人看来并不能体现它是“UWP”的安装包,因为它的安装包并不是通用的,在ARM、x86、x64设备上需要不同的安装包,并不能一个安装包走遍天下(基于Java开发的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,再加上良好的文档和应用商店体系。实现了开发者的一份代码几乎完全不用改动,只用在生成安装包的时候勾选几个选项就可以实现的跨平台。 如下图,基本只要勾选就能实现的跨平台。 ,开奖 (责任编辑:本港台直播) |