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


    一 清单文件内容介绍

          当我们先建了一个项目之后,我们可以看到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">AssetsApplicationIcon.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">AssetsTilesFlipCycleTileSmall.png</SmallImageURI>
              <Count>0</Count>
              <BackgroundImageURI IsRelative="true" IsResource="false">AssetsTilesFlipCycleTileMedium.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

    作者:童心不老
    出处:http://www.cnblogs.com/cybh
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接
    如有问题,可以通过gi71090@126.com 联系我,非常感谢。

  • 相关阅读:
    C语言|博客作业08
    C语言|博客作业04
    C语言|博客作业02
    C语言|博客作业06
    C语言|博客作业03
    第一周作业
    C语言|博客作业05
    C语言|博客作业07
    C语言|博客作业09
    为什么get比post更快
  • 原文地址:https://www.cnblogs.com/cybh/p/3386954.html
Copyright © 2020-2023  润新知