windows phone 8 开发系列(三)程序清单说明与配置_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > windows phone 8 开发系列(三)程序清单说明与配置

windows phone 8 开发系列(三)程序清单说明与配置

 2013/10/25 2:53:15  童心不老  博客园  我要评论(0)
  • 摘要:一清单文件内容介绍当我们先建了一个项目之后,我们可以看到vs自动会为我们创建了很多文件,正常人都会先一个个去翻看下每个文件都是干啥的,都主要写了些啥,在这些文件中,在Properies目录下面,我们可以看到有名为WMAppManifest.xml的文件,这是一个xml文件,但是当我们双击打开时,会发现打开的是这个可视化的编辑界面。一眼看上去,好像是对wp8app的一些可视化配置。我们通过“右击--》查看代码”可以看到清单的真实内容,一堆xml标记
  • 标签:程序 Windows 配置 开发

class="alert alert-info">一 清单文件内容介绍

      当我们先建了一个项目之后,我们可以看到vs自动会为我们创建了很多文件,正常人都会先一个个去翻看下每个文件都是干啥的,都主要写了些啥,在这些文件中,在Properies目录下面,我们可以看到有名为WMAppManifest.xml的文件,这是一个xml文件,但是当我们双击打开时,会发现打开的是这个可视化的编辑界面

 

image

 

一眼看上去,好像是对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 就可以在项目设计器“应用

                    程序”页面上的“程序集信息”对话框中指定的“非特定语言”设置,如下图:

image 

                   而“支持的区域性”这边的语文选择就对应于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

 

image

 

这里可以编辑应用程序UI相关的内容,如刚才说到的分辨率,图标,标题等属性。

 

image

 

一看就知道,这是选择功能的界面,对应刚才讲的Capabilities节点,每个功能是干嘛的,右边也都有对应的说明。

 

image

 

对硬件的要求,对应于刚才讲的Requirements 节点。

 

image

 

最后是对程序打包发布的一些信息的配置,是不是很简单。再也不用去看繁琐的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

发表评论
用户名: 匿名