一般設定

對於所有行動裝置應用程式,有數個重要的應用程式描述器設定。

必要的 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 顯示時,不支援平移行為。