對於所有行動裝置應用程式,有數個重要的應用程式描述器設定。
必要的 AIR 執行階段版本
使用應用程式描述器檔案的命名空間,指定應用程式所需的 AIR 執行階段版本。
application
元素中指派的命名空間,大致上決定了應用程式可使用的功能。例如,如果應用程式使用 AIR 2.7 命名空間,而使用者安裝了較新的版本,則應用程式仍然會出現 AIR 2.7 的行為 (即使在較新版本中已變更該行為)。只有當您變更命名空間且發佈更新,應用程式才能存取新行為與功能。安全性修正為此規則的重要例外。
在分開使用執行階段與應用程式的裝置上 (像是 AIR 3.6 和更早版本上的 Android),若使用者沒有所需的版本,將會收到安裝或升級 AIR 的提示。在整合執行階段的裝置上 (像是 iPhone),將不會發生此狀況 (因為需要的版本一開始便與應用程式一起封裝)。
備註:
(AIR 3.7 及更新版本) 根據預設,ADT 會將執行階段與 Android 應用程式一起封裝。
使用根
application
元素的 xmlns 特質,指定命名空間。下列命名空間可用於行動應用程式 (取決於目標行動平台):
iOS 4+ and iPhone 3Gs+ or Android:
<application xmlns="http://ns.adobe.com/air/application/2.7">
iOS only:
<application xmlns="http://ns.adobe.com/air/application/2.0">
備註:
以 AIR 2.0 SDK 為基礎,iPhone SDK 的封裝程式提供 iOS 3 裝置的支援。如需針對 iOS 3 建立 AIR 應用程式的詳細資訊,請參閱
建立 iPhone 應用程式
。AIR 2.6 SDK (及更新的版本) 支援 iOS 4,以及其上的 iPhone 3Gs、iPhone 4 和 iPad 裝置。
應用程式身分識別
針對發佈的每個應用程式,有數種設定必須是唯一的。這些設定包括 ID、名稱與檔案名稱。
Android 應用程式 ID
在 Android 上,ID 會轉換為 Android 套件名稱,方法是在 AIR ID 之前加上“air.”。因此,如果 AIR ID 為
com.example.MyApp
,則 Android 套件名稱為
air.com.example.MyApp
。
<id>com.example.MyApp</id>
<name>My Application</name>
<filename>MyApplication</filename>
此外,如果 ID 不是 Android 作業系統上合法的套件名稱,則會轉換為合法的名稱。連字號字元會變更為底線,任何 ID 組件中的前導數字前會加上大寫“A”。例如,ID:
3-goats.1-boat
會轉變為套件名稱:
air.A3_goats.A1_boat
。
備註:
新增至應用程式 ID 的前置詞,可用來在 Android Market 中識別 AIR 應用程式。如果不要讓應用程式因前置詞而識別為 AIR 應用程式,必須如
退出 Android 的 AIR 應用程式分析
所述,解除封裝 APK 檔案、變更應用程式 ID,並將它重新封裝。
iOS 應用程式 ID
設定 AIR 應用程式 ID 以符合您在 Apple iOS Provisioning Portal 中建立的應用程式 ID。
iOS App ID 包含一個組合包種子 ID,隨後為組合包識別名稱。組合種子 ID 是 Apple 指派給應用程式 ID 的一個字元字串,例如 5RM86Z4DJM。組合包識別名稱是您所選擇的反向網域樣式的名稱。組合包識別名稱可能以星號 (*) 結尾,這表示萬用字元應用程式 ID。如果組合包識別名稱以萬用字元結尾,您可以使用任何合法字串來取代該萬用字元。
例如:
-
如果 Apple 應用程式 ID 為
5RM86Z4DJM.com.example.helloWorld
,您必須在應用程式描述器中使用
com.example.helloWorld
。
-
如果 Apple 應用程式 ID 為
96LPVWEASL.com.example.*
(萬用字元應用程式 ID),則您可使用
com.example.helloWorld
或
com.example.anotherApp
,或以
com.example
開頭的其他 ID。
-
最後,如果 Apple 應用程式 ID 僅為組合包種子 ID 與一個萬用字元,像是:
38JE93KJL.*
,則您可以使用 AIR 中的任何應用程式 ID。
指定應用程式 ID 時,請不要包含應用程式 ID 的組合包種子 ID 部分。
應用程式版本
在 AIR 2.5 與更新的版本中,在
versionNumber
元素中指定應用程式版本。
version
元素已不再可供使用。指定
versionNumber
的值時,必須使用最多三個號碼的序列,號碼之間以點分隔,例如:“0.1.2”。版本號碼的每個區段最多可以有三位數字。(亦即,“999.999.999”為允許的最大版本號碼)。號碼中毋須包括所有三個區段;“1”與“1.0”都是合法的版本號碼。
您也可以使用
versionLabel
元素,指定版本的標籤。新增版本標籤時,在 Android 應用程式資訊畫面等處,會顯示標籤以取代版本號碼。使用 Android Market 散佈的應用程式,必須指定版本標籤。如果在 AIR 應用程式描述器中未指定
versionLabel
值,則
versionNumber
值會指派給 Android 版本標籤欄位。
<!-- AIR 2.5 and later -->
<versionNumber>1.23.7<versionNumber>
<versionLabel>1.23 Beta 7</versionLabel>
在 Android 上,AIR
versionNumber
會轉譯為 Android 整數
versionCode
,使用的公式為:
a*1000000 + b*1000 + c
,其中 a、b 及 c 是 AIR 版本號碼
a.b.c
的各組件。
主要應用程式 SWF
在
initialWindow
元素的
content
子元素中,指定主要應用程式 SWF 檔案。以行動描述檔中的裝置為目標時,必須使用 SWF 檔案 (不支援 HTML 類型應用程式)。
<initialWindow>
<content>MyApplication.swf</content>
</initialWindow>
您必須將檔案包括在 AIR 套件中 (使用 ADT 或您的 IDE)。只是參照應用程式描述器中的名稱,不會將檔案自動包括在套件中。
主要螢幕屬性
initialWindow 元素中的數個子元素,控制主要應用程式螢幕的初始外觀與行為。
-
aspectRatio
— 指定應用程式一開始應顯示為
portrait
格式 (高度大於寬度)、
landscape
格式 (高度小於寬度) 或
any
格式 (舞台會自動朝向所有方向)。
<aspectRatio>landscape</aspectRatio>
-
autoOrients
— 指定使用者旋轉裝置或執行其他與方向相關的手勢時 (例如,開啟或關閉滑蓋式鍵盤),是否自動變更舞台方向。若設為
false
(預設),則舞台不會隨著裝置變更方向。
<autoOrients>true</autoOrients>
-
depthAndStencil
— 指定使用深度或模板緩衝區。您通常會在使用 3D 內容時使用這些緩衝區。
<depthAndStencil>true</depthAndStencil>
-
fullScreen
— 指定應用程式是否應佔用整個裝置顯示,或是與一般作業系統顏色 (像是系統狀態列) 共用顯示。
<fullScreen>true</fullScreen>
-
renderMode
— 指定執行階段應以圖像處理單元 (GPU) 或主要的中央處理單元 (CPU) 來顯示應用程式。一般而言,GPU 顯示可提高顯示速度,但有些功能 (例如,某些混合模式與 PixelBender 濾鏡) 在 GPU 模式中無法使用。此外,不同的裝置與不同的裝置驅動程式,會有不同的 GPU 功能與限制。您應該儘可能在多種裝置上測試應用程式,特別是使用 GPU 模式的時候。
您可以設定顯示模式為
gpu
、
cpu
、
direct
或
auto
。預設值為
auto
,它目前會退回 cpu 模式。
備註:
若要在行動平台上使用 AIR 來利用 Flash 內容的 GPU 加速,Adobe 建議您使用 renderMode="direct" (即 Stage3D),而不要使用 renderMode="gpu"。Adobe 正式支援並建議使用下列 Stage3D 架構:Starling (2D) 和 Away3D (3D)。如需有關 Stage3D 和 Starling/Away3D 的詳細資訊,請參閱
http://gaming.adobe.com/getstarted/
。
<renderMode>direct</renderMode>
備註:
在背景執行的應用程式無法使用 renderMode=”direct”。
GPU 模式的限制如下:
-
Flex 架構不支援 GPU 顯示模式。
-
不支援濾鏡
-
不支援 PixelBender 混合與填色
-
不支援下列混合模式:圖層、Alpha、清除、重疊、實光、變亮與變暗
-
不建議在播放視訊的應用程式中使用 GPU 顯示模式。
-
在 GPU 顯示模式中,當虛擬鍵盤開啟時,文字欄位並不會適當地移到可視的位置。若要確保使用者在輸入文字時看得見您的文字欄位,請使用舞台的 softKeyboardRect 屬性以及軟體鍵盤事件,將文字欄位移至可見區域。
-
如果 GPU 無法顯示某個顯示物件,則完全不會顯示。例如,如果套用濾鏡至顯示物件,則不會顯示該物件。
備註:
在 AIR 2.6+ 中,iOS 的 GPU 實作與先前 AIR 2.0 版本中的實作差異頗大。兩者使用不同的最佳化考量。
支援的描述檔
您可以新增
supportedProfiles
元素,指定應用程式支援的裝置描述檔。使用 mobileDevice 描述檔於行動裝置。使用 Adobe Debug Launcher (ADL) 執行應用程式時,ADL 會使用清單中的第一個描述檔作為作用中描述檔。執行 ADL 時也可使用
-profile
旗標,在支援的清單中選取特定的描述檔。如果應用程式可在所有描述檔之下執行,您可以完全不包括
supportedProfiles
元素。在此情況下,ADL 使用桌上型描述檔作為預設的作用中描述檔。
若要指定應用程式支援行動裝置與桌上型描述檔,且通常要在行動描述檔中測試應用程式,請新增下列元素:
<supportedProfiles>mobileDevice desktop</supportedProfiles>
必須要有原生擴充功能
支援
mobileDevice
描述檔的應用程式可以使用原生擴充功能。
請在應用程式描述器中宣告 AIR 應用程式會使用的所有原生擴充功能。下列範例說明指定兩個必要原生擴充功能的語法:
<extensions>
<extensionID>com.example.extendedFeature</extensionID>
<extensionID>com.example.anotherFeature</extensionID>
</extensions>
extensionID
元素的值與擴充功能描述器檔案中的
id
元素相同。擴充功能描述器檔案是一個名為 extension.xml 的 XML 檔。它是封裝於您從原生擴充功能開發人員得到的 ANE 檔案。
虛擬鍵盤行為
若要將執行階段為了維護焦點文字輸入欄位的可見狀態,對升起的虛擬鍵盤進行自動平移和調整大小的行為變成停用狀態,請將
softKeyboardBehavior
元素設為
none
。如果停用自動行為,則應用程式應確認升起虛擬鍵盤時,可見到文字輸入區域或其他相關內容。您可以使用舞台的
softKeyboardRect
屬性與 SoftKeyboardEvent,偵測鍵盤開啟並判斷它遮住的區域。
若要啟用自動行為,請將元素值設為
pan
:
<softKeyboardBehavior>pan</softKeyboardBehavior>
由於
pan
為預設值,忽略
softKeyboardBehavior
元素也可啟用自動鍵盤行為。
備註:
當您也使用 GPU 顯示時,不支援平移行為。
|
|
|