windows phone 8 开发系列(三)程序清单说明与配置
一 清单文件内容介绍
当我们先建了一个项目之后,我们可以看到vs自动会为我们创建了很多文件,正常人都会先一个个去翻看下每个文件都是干啥的,都主要写了些啥,在这些文件中,在Properies目录下面,我们可以看到有名为WMAppManifest.xml的文件,这是一个xml文件,但是当我们双击打开时,会发现打开的是这个可视化的编辑界面。
一眼看上去,好像是对wp8app的一些可视化配置。我们通过“右击--》查看代码”可以看到清单的真实内容,一堆xml标记。
这就是应用程序的清单文件,下面是一个 Windows Phone 8 应用的默认清单文件示例。
<?xml version="1.0" encoding="utf-8"?>
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2012/deployment" AppPlatformVersion="8.0">
<DefaultLanguage xmlns="" code="zh-CN" />
<Languages xmlns="">
<Language code="zh" />
</Languages>
<App xmlns="" ProductID="{abebaa4a-9a1d-4650-87ed-c5ebd44b3da6}" Title="PhoneApp" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="PhoneApp author" Description="Sample description" Publisher="PhoneApp" PublisherID="{7bb96815-3d01-4edc-ba40-e6619d1ab95b}">
<IconPath IsRelative="true" IsResource="false">Assets\ApplicationIcon.png</IconPath>
<Capabilities>
<Capability Name="ID_CAP_NETWORKING" />
<Capability Name="ID_CAP_MEDIALIB_AUDIO" />
<Capability Name="ID_CAP_MEDIALIB_PLAYBACK" />
<Capability Name="ID_CAP_SENSORS" />
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
</Capabilities>
<Tasks>
<DefaultTask Name="_default" NavigationPage="MainPage.xaml" />
</Tasks>
<Tokens>
<PrimaryToken TokenID="PhoneAppToken" TaskName="_default">
<TemplateFlip>
<SmallImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileSmall.png</SmallImageURI>
<Count>0</Count>
<BackgroundImageURI IsRelative="true" IsResource="false">Assets\Tiles\FlipCycleTileMedium.png</BackgroundImageURI>
<Title>PhoneApp</Title>
<BackContent>
</BackContent>
<BackBackgroundImageURI>
</BackBackgroundImageURI>
<BackTitle>
</BackTitle>
<DeviceLockImageURI>
</DeviceLockImageURI>
<HasLarge>
</HasLarge>
</TemplateFlip>
</PrimaryToken>
</Tokens>
<ScreenResolutions>
<ScreenResolution Name="ID_RESOLUTION_WVGA" />
<ScreenResolution Name="ID_RESOLUTION_WXGA" />
<ScreenResolution Name="ID_RESOLUTION_HD720P" />
</ScreenResolutions>
</App>
</Deployment>
其实关于这段xml,很多节点我们猜猜,也能猜出来大概是个啥意思,我们来详细的介绍下几个常用的节点。
Deployment:
可以看到在这段xml中,Deployment是跟节点。他有两个属性。
xmlns: 命名空间。对于 Windows Phone 8,默认http://schemas.microsoft.com/windowsphone/2012/dployment;
而对于 Windows Phone OS 7.1,默认http://schemas.microsoft.com/windowsphone/2009/deployment。
AppPlatformVersion:Windows Phone SDK 的版本或平台的运行时二进制文件。对于 Windows Phone 8,默认值为
8.0; 而对于 Windows Phone OS 7.1,默认值为 7.1。
DefaultLanguage/Languages:
DefaultLanguage 和 Languages 元素识别应用所支持的语言。您在这些元素中指定的语言与您的应用在 Windows
Phone 商店 中列出。DefaultLanguage 元素是必需的。如果您指定的是商店不支持的语言,那么提交应用时会被
拒绝。这边需要强调的是,这些属性都是可以在可视化界面编辑的,如DefaultLanguage 就可以在项目设计器“应用
程序”页面上的“程序集信息”对话框中指定的“非特定语言”设置,如下图:
而“支持的区域性”这边的语文选择就对应于Languages ,在这边设置会自动更新清单文件中的节点。
但是需要注意的是,这种同步只是单向的哦。也就是说你改了xml文件,这边界面中是不会同步的。
他们也拥有两个属性:
xmlns: 还是命令空间,这跟上面介绍的是一样的。
code: 特定语言的代码。例如,英语用 en,中文用zh-CN。
App:
这是主要的节点,配置关于app的一些属性,还包含了很多重要的子元素。一些顾名思义的属性我就不做介绍了,如作
者,版本之类的。
ProductID:默认值是项目的 GUID。在提交应用期间,新产品 ID 将插入到清单文件中
RuntimeType:对于 Windows Phone 8 应用,默认值为 Silverlight 或 Modern Native,对于 Windows
Phone OS 7.1 应用,默认值为 Silverlight 或XNA,具体取决于项目类型。
Genre: 流派,默认值为 Apps.Normal 或 Apps.Game,具体取决于项目类型。
使用 Apps.Normal 的应用将出现在手机的应用列表中。使用Apps.Games 的应用将出现在手机的游戏中心中。
HubType:允许您的应用出现在音乐和视频中心的附加程序部分。它用于应用提交前的测试,必须在清单文件中手动输入。
值为1表示启用此功能。
IconPath:
IconPath是App的子元素,该元素提供应用列表中可见的应用图标的位置。这个元素我们不需要特别关注,仅供内部使用。
Capabilities:
这个节点跟Requirements是非常非常重要的,Windows Phone 提供了一个由功能驱动的安全模型,在该模型中用户必
须选择应用中的特定功能。当您在开发应用时,您可以成功地在 Windows Phone 模拟器 中部署和运行您的应用,而无
需指定正确的功能,但在将应用部署到手机时,您必须指定正确的功能。如果您未在需要时使用功能,应用将引
发UnauthorizedAccessException 异常。当您尝试在应用中使用该功能时,将显示 Access denied 消息,并且如果未
处理该异常,将意外退出。-----这是msdn上的解释,也就是说如果你没有勾选你app中用到的相应的功能,那么在真实的
环境中会导致程序不能正常使用。对于这样做的原因,主要的原因有两点:
1. 确保正确公开信息 - 当应用的功能会带来安全风险时,必须通知用户。他们必须进行选择才能允许激活功能。
2. 减少攻击面 - 功能用来创建可在其中执行应用的安全空间。此空间一旦在安装时创建,往后就一直供应用使用。
其实这些配置一般也是直接在可视化界面中直接勾选的,见下面“清单设计器”的介绍。
Capability:Capability 元素有一个特性,即名称。名称指定您想要为应用启用的功能。
Tokens:
每个应用都有一个用户可固定至“开始”屏幕的图块。Tokens描述图块的元素和特性
TokenID:图块名称。默认值为项目名称。
TaskName:用户点按图块时图块所调用任务名称。默认值为 _default。及Tasks中配置的。
TemplateFlip:
TemplateFlip是控制 Windows Phone 8 的应用图块的默认模板,属性基本都能看得明白。
HasLarge:wp8中指示应用是否支持大型图块的值。没有值指示不支持大型图块。
ScreenResolutions:
ScreenResolutions用于指定应用支持的分辨率。Windows Phone 8 应用支持三种屏幕分辨率。这些
包括ID_RESOLUTION_WVGA、ID_RESOLUTION_WXGA 和 ID_RESOLUTION_HD720P。
Requirements:
它用于指定硬件要求,并针对其手机拥有运行应用所需硬件的用户限制应用的公开范围。如果您的应用要求特定硬件以实现正
常工作,您应该在将应用提交到商店之前,将要求添加到应用清单。这意味着您的应用仅在用于购买时显示和提供,并且
仅可以由其手机具备所需硬件的用户下载和安装。没有正确标记硬件要求将导致应用的评级较差,因为用户购买应用后,该
应用可能无法在他们的手机上正常运行。但是这个不是必选项,你可以不选择,但是我还是建议你认真勾选。
常用的一般就这些,还有一些其他节点,大家有需要可以自己去msdn上查看。
二 清单设计器
如果我们每次都要这样来编辑xml,那么也是一件很痛苦的事情哈,微软在这方面总是做得让我们非常满意。在Windows Phone SDK 8.0中新增入了一个清单设计器,清单设计器使你可以轻松地更新清单文件,而无需编辑文件的原始 XML。
这里可以编辑应用程序UI相关的内容,如刚才说到的分辨率,图标,标题等属性。
一看就知道,这是选择功能的界面,对应刚才讲的Capabilities节点,每个功能是干嘛的,右边也都有对应的说明。
对硬件的要求,对应于刚才讲的Requirements 节点。
最后是对程序打包发布的一些信息的配置,是不是很简单。再也不用去看繁琐的xml了。
好吧,不得不承认,我们又被微软傻瓜了,有了清单设计器,我们甚至都不知道之前一开始介绍的那些xml节点,当然有部分节点还是需要我们去手动修改xml的,在清单设计器是配置不出来的。
今天的程序清单介绍到这里,就差不多了,下章“windows phone 8 开发系列(四)XAML基本介绍”再会!
最后,参考资料:
http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/ff769509(v=vs.105).aspx
http://blog.csdn.net/tcs250/article/details/8745996
windows phone 8 开发系列(三)程序清单说明与配置的更多相关文章
- windows phone 8 开发系列(二)Hello Wp8!
上篇我们了解了WP8的环境搭建,从今天开始,我们就正式进入WP8的设计,开发阶段. 一. 项目模板介绍 打开vs,选择Windows Phone的项目模板,我们发现如下有很多模板,那么我们就从认识这些 ...
- S5PV210开发系列三_简易Bootloader的实现
S5PV210开发系列三 简易Bootloader的实现 象棋小子 1048272975 Bootloader是嵌入式系统上电后第一段运行的代码.对于功能简单的处理器,可能并没有Bo ...
- Windows下USB磁盘开发系列三:枚举系统中U盘、并获取其设备信息
前面我们介绍了枚举系统中的U盘盘符(见<Windows下USB磁盘开发系列一:枚举系统中U盘的盘符>).以及获取USB设备的信息(见<Windows下USB磁盘开发系列二:枚举系统中 ...
- Windows phone 应用开发系列教程(更新中)
Windows phone 应用开发[1]-Text To Speech 作为开篇章节.第一篇将在如下介绍一些Windows phone比较有意思的东西-Text To Speech[文 ...
- BizTalk开发系列(三十三)BizTalk之Excel终极解决方案
Excel作为优秀的客户端数据处理程序得到了广泛的应用. 由于其简单又强大的功能在很多公司或个人的数据处理中占用非常重要的位置. 而BizTalk作为微软的SOA主打产品虽然免费提供了很多Adapte ...
- 【Qt编程】基于Qt的词典开发系列<三>--开始菜单的设计
这篇文章讲讲如何实现开始菜单(或者称为主菜单)的设计.什么是开始菜单呢?我们拿常用的软件来用图例说明,大多数软件的开始菜单在左下角,如下图: 1.window 7的开始菜单 2.有道词典的主菜单 3. ...
- leaflet-webpack 入门开发系列三地图分屏对比(附源码下载)
前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...
- Java开发学习(三十七)----SpringBoot多环境配置及配置文件分类
一.多环境配置 在工作中,对于开发环境.测试环境.生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配 ...
- log4net保存到数据库系列三、代码中xml配置log4net
园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...
随机推荐
- 从实验室搬到宿舍后可以上QQ但打不开网页
如果你是属于如标题这种情况:也就是从实验室换到宿舍或者从宿舍换到实验室,在之前的地方可以上网,但换了地方后就出现只能上QQ而不能打开网页的情况.此时,首先考虑DNS配置,很有可能是因为你搬到了宿舍,但 ...
- c++ 设计模式3 (重构技法 Template Method)
1. 重构 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”指的是那些可以满足 “应对变化,提高复用”的设计. 设计模式的要点是“寻找变化点,然后在变化点处应用设计模式,从而更好地理解 ...
- A+B Coming
Problem Description Many classmates said to me that A+B is must needs.If you can’t AC this problem, ...
- org.apache.solr.common.util.ContentStream.java及其实现类
org.apache.solr.common.util.ContentStream.java 主要是获取文件,URL,字节数组,字符串等的数据流.主要方法又InputStream getStream( ...
- mysql的 join联合查询的通俗解释
表a 1 2 3 4 aid adate 1 a1 2 a2 3 a3 表b 1 2 3 4 bid bdate 1 b1 2 b2 4 b4 两个表a.b相连接,要取出id相同的字段. 1 sele ...
- 一:Html基本结构
1:什么是Html(HTML 概念)? Html是 HyperText mark-up Language 的缩写,意思是:超文本标记语言 2.HTML的发展史? 1991年:出现Html1.0(不存在 ...
- LeetCode 55
Jump Game Given an array of non-negative integers, you are initially positioned at the first index o ...
- Javascript -- Math.round()、Math.ceil()、Math.floor()、parseInt去小数取整总结
一.Math.round() 作用:四舍五入返回整数.(返回参数+0.5后,向下取整) Math.round(5.57) //返回6 Math.round(2.4) //返回2 Math.round( ...
- 转: DH密钥交换和ECDH原理
转自:http://www.tuicool.com/articles/em6zEb DH密钥交换和ECDH原理 时间 2013-06-24 18:50:55 CSDN博客 原文 http://bl ...
- JS 异常: Uncaught RangeError: Maximum call stack size exceeded
遇到了这个js异常, 总是吧浏览器搞崩溃,这是什么原因呢? 开始我也只能想到死循环, 也许是哪个条件判断写错了,其实不是.经过google,发现了一篇文章,内容请看: ================ ...