:::: 菜单 ::::

AIR应用描述文件详解

Air应用描述文件是设置AIR应用各项基本属性的一个XML文件.在使用FLEX开发时,它位于”项目文件夹/src/主文件名-app.xml”;在使用Flash CS3 开发时也会在创建AIR项目时自动生成,可以通过菜单Commands > AIR – Application and Installer Settings来可视化编辑,也可以手动编辑该XML文档.

应用描述文件包含AIR应用的各项属性,影响整个AIR应用,如它的名称,版本,版权,等等。理论上,应用描述文件可使用任意文件名。当我们使用Flash cs3创建一个空文件,并使用默认设置,应用描述文件会自动更名为application.xml并放进AIR项目的一个特殊目录中。

这个描述文件的结构是这样的:
<?xml version=”1.0″ encoding=”utf-8″ ?>
<application xmlns=”http://ns.adobe.com/air/application/1.0″
minimumPatchLevel=”1047″>
<id>org.mousebomb.TestApp</id>
<version>2.0</version>
<filename>Hello World</filename>
<name>Mousebomb Test Application</name>
<description>
The Hello World sample file from Mousebomb.org.
</description>
<copyright>Copyright (c) 2008 Mousebomb.org</copyright>
<initialWindow>
<title>Hello World</title>
<content>
HelloWorld.swf
</content>
<systemChrome>none</systemChrome>
<transparent>true</transparent>
<visible>true</visible>
<minimizable>true</minimizable>
<maximizable>false</maximizable>
<resizable>false</resizable>
<width>640</width>
<height>480</height>
<minSize>320 240</minSize>
<maxSize>1280 960</maxSize>
</initialWindow>
<installFolder>Mousebomb Air </installFolder>
<programMenuFolder>Mousebomb Air</programMenuFolder>
<icon>
<image16x16>icons/smallIcon.png</image16x16>
<image32x32>icons/mediumIcon.png</image32x32>
<image48x48>icons/bigIcon.png</image48x48>
<image128x128>icons/biggestIcon.png</image128x128>
</icon>
<customUpdateUI>true</customUpdateUI>
<allowBrowserInvocation>false</allowBrowserInvocation>
<fileTypes>
<fileType>
<name>adobe.VideoFile</name>
<extension>avf</extension>
<description>Adobe Video File</description>
<contentType>application/vnd.adobe.video-file</contentType>
<icon>
<image16x16>icons/avfIcon_16.png</image16x16>
<image32x32>icons/avfIcon_32.png</image32x32>
<image48x48>icons/avfIcon_48.png</image48x48>
<image128x128>icons/avfIcon_128.png</image128x128>
</icon>
</fileType>
</fileTypes>
</application>

AIR应用属性

<application version=”1.0″ xmlns=”http://ns.adobe.com/air/application/1.0″ minimumPatchLevel=”5331″>
xmlns: AIR命名空间,必须定义为默认的XML名字空间。命名空间随着AIR主版本号变化(但不包括次版本号). 如“1.0”显示运行环境所需要的版本为1.0。

minimumPatchLevel:与AIR命名空间一起,指示运行环境所需要的版本. AIR应用安装程序会提示用户下载所需版本的补丁.

基本应用信息

这段声明了程序的ID,版本,文件名,程序名,描述,版权

<id>org.mousebomb.TestApp</id>
<version>2.0</version>
<filename>TestApp</filename>
<name>Mousebomb Test Application</name>
<description>An MP3 player.</description>
<copyright>Copyright (c) 2008</copyright>

id:[必须] 该AIR应用的唯一标识符字符串.该元素必须,长度为1~212字符,限使用以下字符:

  • 0-9
  • a-z
  • A-Z
  • . (点)
  • – (连字符)

为了使该标识的”唯一”,我们常常把作者所持有的域名倒写作前缀,比如org.mousebomb.TestApp前缀org.mousebomb就是mousebomb.org的倒写.

version:[必须]设置AIR应用的版本号,这个版本号和AIR运行环境没有任何关系. 且AIR运行环境不解析这个版本号. 比如写: “1.0”, “.4”, “0.5”, “4.9”, “1.3.4a”.

filename:[必须] 这玩意就是AIR应用的主程序文件名(不用写扩展名),比如设置为”main”,那么AIR在安装时会生成一个可执行文件,文件名就是”main”. 该值可以设置为除以下字符以外的任何UTF-8字符:

字符 十六进制码
various 0x00 – x1F
* x2A
x22
: x3A
> x3C
< x3E
? x3F
x5C
| x7C

name:[可选,但推荐] AIR安装程序执行时显示的标题;如果没有在installFolder元素中设置安装文件夹的话,name的值也被作为安装文件夹的名字.

description:[可选] AIR应用安装时显示的描述.

copyright:[可选] 版权信息. 在MAC系统中,该版权信息文字将显示在已安装的AIR 应用的About对话框中,也在Info.plist文件中作为NSHumanReadableCopyright的键值.

安装文件夹和开始菜单路径

<installFolder>Mousebomb AIR</installFolder>

<programMenuFolder>Mousebomb AIR/Applications</programMenuFolder>

installFolder[可选]: 确定默认安装目录下的子目录.

在Windows环境下,默认安装的子目录是Program Files目录下。在Mac OS, 它是/Applications目录。例如,如果installFolder属性设置为”Mousebomb AIR”,而AIR应用名为”ExampleApp”,那么该AIR应用是安装在”C:Program FilesMousebomb AIRExampleApp”(WINDOWS),或” /Applications/Mousebomb AIR/Example.app”(MacOS). 你也可以在installFolder中使用”/”来再建子目录.

这个元素为可选,如果没有设置,则AIR应用安装时将使用name的值作为安装子目录名.

programMenuFolder:[可选] 仅对windows有效,用来设置AIR应用在开始菜单中的目录.字符限制规则和installFolder一样.

初始化应用窗体的属性

<initialWindow>

<content>AIR.swf</content>
<title>AIR Test</title>
<systemChrome>none</systemChrome>
<transparent>true</transparent>
<visible>true</visible>
<minimizable>true</minimizable>
<maximizable>true</maximizable>
<resizable>true</resizable>
<width>400</width>
<height>600</height>
<x>150</x>
<y>150</y>
<minSize>300 300</minSize>
<maxSize>800 800</maxSize>
</initialWindow>

当AIR程序加载后,运行环境根据initialWindow里的相关设置创建一个最初的窗体,将指定的SWF或者HTML文件装入窗体.

initialWindow的子元素值将用来设置最初的窗体属性,直到顶级文件加载完成.

content: 设置主要内容文件的URL,可以是一个SWF或者HTML文件.这个值是AIR应用安装目录为参照的相对路径.

注意:因为content元素的值要当作URL处理,所以这个内容的文件名必须符合RFC 1738规则编码. 比如空格符要表示为%20.

title[可选]: 窗体的标题.

systemChrome[可选]: 如果设置此属性值为standard,则显示系统风格的窗体,如果设置为none,则不显示系统风格窗体.这个属性在运行时不能改变.

transparent[可选]: 是否透明. true为透明,false为不透明,透明将时绘图速度变慢,并消耗更多内存.这个属性在运行时不能改变.

注意:当systemChrome为none时, transparent只能设置为true.

visible[可选]: 窗体是否可见,true为可见,false反之.官方说默认是false,可是我怎么建立项目默认是true呢…. 这个参数可以在运行时通过stage.nativeWindow.visible来设置.

x, y, width, height[可选]: 四个属性这么直白不用说了,如果不设置这些值,那么这些值将取决于SWF的设置(SWF),或者操作系统根据内容自动决定(HTML).

minSize, maxSize[可选]: 最小尺寸,最大尺寸.不设置的话将由操作系统决定.

minimizable, maximizable, resizable[可选]: 设置窗体是否可以最小化,最大化,缩放大小. 默认都是true.

设置图标文件(常用!)

你可以设置4种尺寸的图标文件,如果不设置,系统就用默认图标.

<icon>
<image16x16>icons/smallIcon.png</image16x16>
<image32x32>icons/mediumIcon.png</image32x32>
<image48x48>icons/bigIcon.png</image48x48>
<image128x128>icons/biggestIcon.png</image128x128>
</icon>

每个元素对应的图标文件大小须要与之符合,如果不符合,则操作系统会自动根据最接近的大小缩放图片.

注意:发布AIR包的时候需要把图标文件打包.

为达到最好效果,设计的图标最好能在32位和16位色下都正常显示.

为AIR应用的更新提供自定义的用户界面

虽然AIR是使用默认对话框来安装和更新AIR应用程序.但是你可以定制自己的程序更新用户界面,要显示你自定义的应用,得处理好更新程序本身.

<customUpdateUI>true</customUpdateUI>

假设你已安装了设置customUpdateUI为ture的AIR应用程序, 然后双击一个包含更新的.air安装包或者安装一个使用无缝安装功能的更新程序时,运行环境将打开你已经安装的版本让它来更新,而你的AIR应用程序逻辑上得决定如何正确进行更新操作(新版的application ID和publisher ID得和旧版的相互吻合). 这玩意没搞过,详细看官方http://livedocs.adobe.com/air/1/devappsflash/updating_apps_1.html#1032597

允许浏览器调用AIR应用

<allowBrowserInvocation>true</allowBrowserInvocation>

你是否使用过QQ,EMULE或者淘宝的wangwang?他们从网页上可以点击某个链接直接打开这个程序执行相关操作.如果设置为true,那么我们的AIR也可以被网页调用.实现这个功能一定要考虑安全问题,参见http://livedocs.adobe.com/air/1/devappsflash/app_launch_1.html#1039401(浏览器调用).

声明文件关联

<fileTypes>
<fileType>
<name>adobe.VideoFile</name>
<extension>avf</extension>
<description>Adobe Video File</description>
<contentType>application/vnd.adobe.video-file</contentType>
<icon>
<image16x16>icons/AIRApp_16.png</image16x16>
<image32x32>icons/AIRApp_32.png</image32x32>
<image48x48>icons/AIRApp_48.png</image48x48>
<image128x128>icons/AIRApp_128.png</image128x128>
</icon>
</fileType>
</fileTypes>

[可选] 这个设置可以让AIR应用程序在安装后在系统种关联文件格式.如果已被其他程序关联了某种你要关联的格式,你可以覆盖掉这个关联:运行时使用NativeApplication.setAsDefaultApplication()方法.不过最好先得到用户的同意哦.

注意: NativeApplication.setAsDefaultApplication()这个方法只能关联在fileTypes中声明的格式. 参见http://livedocs.adobe.com/air/1/devappsflash/runtime_os_info_1.html#1036812(管理文件关联)  http://livedocs.adobe.com/air/1/devappsflash/app_launch_1.html#1038002(捕捉命令行参数)

延伸阅读


  1. Pingback: AIR应用与任务栏/系统托盘/Dock相关 | 『 闪 界 』 Unknow Unknow