AIR Android:設置程序屬性
設置程序屬性
在AIR桌面開發(fā)中,每個程序都有一個XML格式的應用程序描述文件,其中保存了所有的屬性信息,比如程序名、版本號等,設置程序屬性也就是修改這個XML文件。移動開發(fā)也是如此,只不過針對移動平臺的XML文檔在格式上稍有不同。
一些開發(fā)工具,比如Flash CS5和Flash Builder,雖然提供了圖形化設置界面,但只包含了一些最基本的屬性元素,有些特殊的設置還必須依靠手工編輯才能實現(xiàn)。本節(jié)詳細介紹應用程序描述文件的格式,讓讀者能夠全面了解它的用法。
了解應用程序描述文件
使用FlashDevelop創(chuàng)建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>
根節(jié)點application的xmlns屬性定義了默認的命名空間,一般來說,每當AIR的版本號發(fā)生了較大變化時,命名空間的值也會隨著變化。尾部的“3.1”表示運行程序所需AIR運行時的最小版本號。
id:程序的標識名,必須保證其唯一性。它由字母、數字、–和點號組成,按照約定,一般使用和域名類似的格式,使用點號間隔的方式來命名,比如org.fluidea.FlipIt,以和其他程序區(qū)別開來。id僅僅起標識作用,和域名并沒有任何聯(lián)系。AIR程序在id前面會加上air.前綴。
versionNumber:也就是Flash CS5設置面板上的ersion,這個參數非常重要,用來標識程序的開發(fā)版本,每次程序發(fā)布新版本時,必須將這個值向上升。在發(fā)布程序到Google電子市場,即上傳apk包時,系統(tǒng)會審核其中的versionNumber,只有確認該值為比該程序上一個版本的值大才被允許發(fā)布。Android系統(tǒng)也是通過比較這個值,才能檢測到程序被更新。
注意 versionNumber采用000.000.000格式來表示整數,1.0.0表示是1.000.000,而不是1。
versionLabel:這個設置項很容易和versionNumber混淆,它也是表示版本號,但只是顯示在程序的信息面板上,不影響程序的使用,而且對格式沒有要求,開發(fā)者可以根據自己的習慣來定,比如V1.0、Ver1.2.0322等。
filename:表示apk包的名稱,在安裝程序時作為apk包的名稱,建議使用英文字母和數字。
name:程序標題,在Android系統(tǒng)顯示時使用,不宜太長,最好控制在20個字符以內。
initialWindow:該節(jié)點包含了和程序外觀相關的屬性:root指明主SWF文件路徑;visible節(jié)點必須為true;fullScreen表示程序是否全屏顯示;aspectRatio則表示程序的初始屏幕朝向,可選值為portrait和landscape,分別是豎屏和橫屏;renderMode為渲染模式,可選值有auto、cpu、gpu和direct。auto等同于CPU,不使用硬件加速,GPU表示如果可用,就用硬件加速,direct選項在AIR 3.0后可用,結合使用CPU和GPU;autoOrients設備的屏幕朝向發(fā)生變化時,是否派發(fā)StageOrientationEvent事件,這一選項并不影響屏幕的朝向。
和桌面開發(fā)不同的是,我們并不需要設置程序的尺寸。在Android中,AIR程序只有兩種顯示方式:全屏和非全屏,非全屏時,程序尺寸為設備支持的最大長寬值。
icon:定義程序的顯示圖標,包括不同尺寸,比如48×48、57×57、72×72、114×114等,主要是為了兼容不同分辨率的設備。icon節(jié)點是可選項,如果省略,AIR打包程序會使用內置的默認圖標。
android:放置和Android系統(tǒng)相關的設置項,比如程序是否允許其他程序調用、訪問系統(tǒng)資源的權限聲明等。詳細說明請看下一節(jié)。如果要支持iOS平臺,對應的會有一個iPhone節(jié)點來設置iOS平臺相關選項。