공통 설정

모든 휴대 장치 응용 프로그램에서 중요한 여러 가지 응용 프로그램 설명자 설정이 있습니다.

필요한 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">
참고: iOS 3 장치에 대한 지원은 AIR 2.0 SDK를 기반으로 하는 Packager for iPhone SDK를 통해 제공됩니다. iOS 3용 AIR 응용 프로그램을 만드는 방법에 대한 자세한 내용은 iPhone 응용 프로그램 만들기를 참조하십시오. AIR 2.6 SDK 이상 버전은 iPhone 3Gs, iPhone 4 및 iPad 장치에서 iOS 4 이상을 지원합니다.

응용 프로그램 ID

제작하는 각 응용 프로그램에 대해 여러 설정이 고유해야 합니다. 여기에는 ID, 이름 및 파일 이름이 포함됩니다.

Android 응용 프로그램 ID

Android에서 ID는 AIR ID에 접두어 “air”를 붙여서 Android 패키지 이름으로 변환됩니다. 따라서 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”가 붙습니다. 예를 들어 3-goats.1-boat라는 ID는 air.A3_goats.A1_boat라는 패키지 이름으로 변환됩니다.

참고: 응용 프로그램 ID에 추가되는 접두어를 사용하여 Android Market에서 AIR 응용 프로그램을 식별할 수 있습니다. 자신의 응용 프로그램이 접두어로 인해 AIR 응용 프로그램으로 식별되는 것을 원치 않는 경우에는 APK 파일의 패키지화를 해제하고, 응용 프로그램 ID를 변경한 다음 Android에 대한 AIR 응용 프로그램 분석 기능 제외에 설명된 대로 다시 패키지화해야 합니다.

iOS 응용 프로그램 ID

Apple iOS Provisioning Portal에서 만든 응용 프로그램 ID와 일치하도록 AIR 응용 프로그램 ID를 설정하십시오.

iOS 응용 프로그램 ID에는 번들 시드 ID가 포함되어 있으며, 번들 시드 ID 뒤에는 번들 식별자가 표시됩니다. 번들 시드 ID는 5RM86Z4DJM과 같이 Apple에서 응용 프로그램 ID에 할당하는 문자열입니다. 번들 식별자에는 자신이 직접 선택하는 역방향 도메인 스타일 이름이 포함됩니다. 번들 식별자는 와일드카드 응용 프로그램 ID를 나타내는 별표(*)로 끝날 수 있습니다. 번들 식별자가 와일드카드 문자로 끝나는 경우에는 해당 와일드카드를 모든 유효한 문자열로 대체할 수 있습니다.

예를 들면 다음과 같습니다.

  • Apple 응용 프로그램 ID가 5RM86Z4DJM.com.example.helloWorld인 경우 응용 프로그램 설명자에 com.example.helloWorld를 사용해야 합니다.

  • Apple 응용 프로그램 ID가 96LPVWEASL.com.example.*(와일드카드 응용 프로그램 ID)인 경우에는 com.example.helloWorldcom.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 - 응용 프로그램이 처음에 세로 형식(높이가 폭보다 큼), 가로 형식(높이가 폭보다 작음) 또는 임의 형식(스테이지에서 모든 방향으로 자동 지정)으로 표시되어야 하는지를 지정합니다.

    <aspectRatio>landscape</aspectRatio>
  • autoOrients - 사용자가 장치를 회전할 때 또는 슬라이딩 키보드를 열거나 닫는 등의 다른 방향 관련 동작을 수행할 때 스테이지의 방향이 자동으로 바뀌는지 여부를 지정합니다. 기본값인 false를 사용하면 장치에 맞춰 스테이지의 방향이 변경되지 않습니다.

    <autoOrients>true</autoOrients>
  • depthAndStencil - 심도 또는 스텐실 버퍼를 사용하도록 지정합니다. 일반적으로 이러한 버퍼는 3D 내용으로 작업하는 경우에 사용합니다.

    <depthAndStencil>true</depthAndStencil>
  • fullScreen - 응용 프로그램이 전체 장치 디스플레이를 차지해야 하는지 아니면 시스템 상태 표시줄 등의 일반 운영 체제 크롬과 디스플레이를 공유해야 하는지를 지정합니다.

    <fullScreen>true</fullScreen>
  • renderMode - 런타임이 GPU(Graphics Processing Unit)와 기본 CPU(Central Processing Unit) 중에 어떤 것을 사용하여 응용 프로그램을 렌더링해야 하는지를 지정합니다. 일반적으로 GPU 렌더링을 사용할 때 렌더링 속도가 빠르지만 특정 블렌드 모드와 PixelBender 필터 같은 일부 기능은 GPU 모드에서 사용할 수 없습니다. 또한 각 장치와 각 장치 드라이버는 GPU 기능 및 제한이 서로 다릅니다. GPU 모드를 사용하는 경우 등에는 가능하면 항상 최대한 다양한 장치에서 응용 프로그램을 테스트해야 합니다.

    렌더링 모드는 gpu, cpu, direct 또는 auto로 설정할 수 있습니다. 기본값은 현재 CPU 모드로 돌아가는 auto입니다.

    참고: 모바일 플랫폼용 AIR와 함께 Flash 내용의 GPU 가속 기능을 활용하려면 renderMode="gpu" 대신 renderMode="direct"(즉, Stage3D)를 사용하는 것이 좋습니다. Adobe에서는 Stage3D 기반 프레임워크인 Starling(2D)과 Away3D(3D)를 공식적으로 지원 및 권장합니다. Stage3D와 Starling/Away3D에 대한 자세한 내용은 http://gaming.adobe.com/getstarted/를 참조하십시오.
    <renderMode>direct</renderMode>
    참고: 백그라운드에서 실행되는 응용 프로그램에 대해서는 renderMode=”direct”를 사용할 수 없습니다.

    GPU 모드의 제한 사항은 다음과 같습니다.

    • Flex 프레임워크는 GPU 렌더링 모드를 지원하지 않습니다.

    • 필터가 지원되지 않습니다.

    • PixelBender 블렌드 및 채우기가 지원되지 않습니다.

    • 블렌드 모드 중 layer, alpha, erase, overlay, hardlight, lighten 및 darken이 지원되지 않습니다.

    • 비디오를 재생하는 응용 프로그램에서는 GPU 렌더링 모드를 사용하지 않는 것이 좋습니다.

    • GPU 렌더링 모드에서 가상 키보드가 열릴 때 텍스트 필드가 보이는 위치로 제대로 이동하지 않습니다. 사용자가 텍스트를 입력할 때 텍스트 필드가 보이도록 하려면 스테이지의 softKeyboardRect 속성과 소프트 키보드 이벤트를 사용하여 텍스트 필드를 눈에 보이는 영역으로 이동하십시오.

    • GPU를 통해 렌더링할 수 없는 표시 객체는 아예 표시되지 않습니다. 예를 들어 표시 객체에 필터가 적용되어 있으면 해당 객체가 표시되지 않습니다.

    참고: AIR 2.6 이상에서 iOS에 대한 GPU 구현은 이전의 AIR 2.0 버전에서 사용된 구현과 크게 다릅니다. 따라서 서로 다른 최적화 고려 사항이 적용됩니다.

지원되는 프로파일

supportedProfiles 요소를 추가하여 응용 프로그램에서 지원하는 장치 프로파일을 지정할 수 있습니다. 휴대 장치의 경우 mobileDevice 프로파일을 사용하십시오. ADL(Adobe Debug Launcher)을 사용하여 응용 프로그램을 실행하면 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 렌더링도 사용하는 경우에는 팬 비헤이비어가 지원되지 않습니다.