设置程序属性
在AIR桌面开发中,每个程序都有一个XML格式的应用程序描述文件,其中保存了所有的属性信息,比如程序名、版本号等,设置程序属性也就是修改这个XML文件。移动开发也是如此,只不过针对移动平台的XML文档在格式上稍有不同。
一些开发工具,比如Flash CS5和Flash Builder,虽然提供了图形化设置界面,但只包含了一些最基本的属性元素,有些特殊的设置还必须依靠手工编辑才能实现。本节详细介绍应用程序描述文件的格式,让读者能够全面了解它的用法。
了解应用程序描述文件
使用FlashDevelop创建AIR AS3 Projector for Android项目后,会在项目文件夹下自动生成一个应用程序描述文件,名为application.xml。其中包含了一些常见的属性设置项,比如程序的id、name、版本号等。FlipIt项目中修改后的文件内容如下:
- <?xml version="1.0" encoding="utf-8" ?>
- <application xmlns="http://ns.adobe.com/air/application/3.1">
- <id>org.fluidea.FlipIt</id>
- <versionNumber>0.0.1</versionNumber>
- <versionLabel>1.0</versionLabel>
- <filename>FlipIt</filename>
- <name>FlipIt</name>
- <initialWindow>
- <content>FlipIt.swf</content>
- <visible>true</visible>
- <fullScreen>false</fullScreen>
- <aspectRatio>portrait</aspectRatio>
- <renderMode>cpu</renderMode>
- <autoOrients>false</autoOrients>
- </initialWindow>
- <icon>
- <image36x36>icons/icon_36.png</image36x36>
- <image48x48>icons/icon_48.png</image48x48>
- <image72x72>icons/icon_72.png</image72x72>
- </icon>
- <android>
- <manifestAdditions>
- <![CDATA[<manifest>
- <uses-permission android:name="android.permission.INTERNET"/>
- </manifest>]]>
- </manifestAdditions>
- </android>
- </application>
根节点application的xmlns属性定义了默认的命名空间,一般来说,每当AIR的版本号发生了较大变化时,命名空间的值也会随着变化。尾部的“3.1”表示运行程序所需AIR运行时的最小版本号。
id:程序的标识名,必须保证其唯一性。它由字母、数字、–和点号组成,按照约定,一般使用和域名类似的格式,使用点号间隔的方式来命名,比如org.fluidea.FlipIt,以和其他程序区别开来。id仅仅起标识作用,和域名并没有任何联系。AIR程序在id前面会加上air.前缀。
versionNumber:也就是Flash CS5设置面板上的ersion,这个参数非常重要,用来标识程序的开发版本,每次程序发布新版本时,必须将这个值向上升。在发布程序到Google电子市场,即上传apk包时,系统会审核其中的versionNumber,只有确认该值为比该程序上一个版本的值大才被允许发布。Android系统也是通过比较这个值,才能检测到程序被更新。
注意 versionNumber采用000.000.000格式来表示整数,1.0.0表示是1.000.000,而不是1。
versionLabel:这个设置项很容易和versionNumber混淆,它也是表示版本号,但只是显示在程序的信息面板上,不影响程序的使用,而且对格式没有要求,开发者可以根据自己的习惯来定,比如V1.0、Ver1.2.0322等。
filename:表示apk包的名称,在安装程序时作为apk包的名称,建议使用英文字母和数字。
name:程序标题,在Android系统显示时使用,不宜太长,最好控制在20个字符以内。
initialWindow:该节点包含了和程序外观相关的属性:root指明主SWF文件路径;visible节点必须为true;fullScreen表示程序是否全屏显示;aspectRatio则表示程序的初始屏幕朝向,可选值为portrait和landscape,分别是竖屏和横屏;renderMode为渲染模式,可选值有auto、cpu、gpu和direct。auto等同于CPU,不使用硬件加速,GPU表示如果可用,就用硬件加速,direct选项在AIR 3.0后可用,结合使用CPU和GPU;autoOrients设备的屏幕朝向发生变化时,是否派发StageOrientationEvent事件,这一选项并不影响屏幕的朝向。
和桌面开发不同的是,我们并不需要设置程序的尺寸。在Android中,AIR程序只有两种显示方式:全屏和非全屏,非全屏时,程序尺寸为设备支持的最大长宽值。
icon:定义程序的显示图标,包括不同尺寸,比如48×48、57×57、72×72、114×114等,主要是为了兼容不同分辨率的设备。icon节点是可选项,如果省略,AIR打包程序会使用内置的默认图标。
android:放置和Android系统相关的设置项,比如程序是否允许其他程序调用、访问系统资源的权限声明等。详细说明请看下一节。如果要支持iOS平台,对应的会有一个iPhone节点来设置iOS平台相关选项。