Adobe AIR용 기본 확장 사용

Adobe AIR용 기본 확장은 기본 코드로 프로그래밍된 장치별 기능에 액세스할 수 있도록 하는 ActionScript API를 제공합니다. 기본 확장 개발자는 종종 장치 제조업체와 협력하며, 경우에 따라서는 타사 개발자이기도 합니다.

기본 확장을 개발하는 중이면 Adobe AIR용 기본 확장 개발 을 참조하십시오.

기본 확장은 다음의 조합입니다.

  • ActionScript 클래스

  • 기본 코드

그러나 기본 확장을 사용하는 AIR 응용 프로그램 개발자의 경우 ActionScript 클래스만 사용합니다.

기본 확장은 다음과 같은 상황에 유용합니다.

  • 기본 코드 구현을 통해 플랫폼별 기능에 액세스할 수 있습니다. 이러한 플랫폼별 기능은 기본 제공 ActionScript 클래스에서 사용할 수 없고 응용 프로그램별 ActionScript 클래스에서 구현할 수 없습니다. 기본 코드 구현은 장치별 하드웨어 및 소프트웨어에 액세스할 수 있으므로 이러한 기능을 제공할 수 있습니다.

  • 경우에 따라 기본 코드 구현이 ActionScript만 사용하는 구현보다 빠를 수 있습니다.

  • 기본 코드 구현은 ActionScript에서 레거시 기본 코드에 액세스할 수 있도록 합니다.

Adobe 개발자 센터에는 기본 확장의 몇 가지 예가 마련되어 있습니다. 예를 들어 AIR 응용 프로그램이 Android의 진동 기능에 액세스할 수 있게 하는 기본 확장이 있습니다. Adobe AIR용 기본 확장 을 참조하십시오.

ANE(AIR Native Extension) 파일

기본 확장 개발자는 기본 확장을 ANE 파일로 패키지화합니다. ANE 파일은 기본 확장에 필요한 라이브러리와 리소스가 포함된 아카이브 파일입니다.

일부 장치의 경우 ANE 파일은 기본 확장에 사용되는 기본 코드 라이브러리를 포함합니다. 그러나 다른 장치의 경우 기본 코드 라이브러리는 장치에 설치됩니다. 기본 확장에 특정 장치에 대한 기본 코드가 전혀 없는 경우도 있는데, 이 경우 ActionScript만으로 구현됩니다.

AIR 응용 프로그램 개발자는 ANE 파일을 다음과 같이 사용합니다.

  • SWC 파일을 라이브러리 경로에 포함하는 것과 동일한 방법으로 ANE 파일을 응용 프로그램의 라이브러리 경로에 포함합니다. 이렇게 하면 응용 프로그램에서 확장의 ActionScript 클래스를 참조할 수 있습니다.

    참고: 응용 프로그램을 컴파일할 경우 ANE에 대한 동적 링크를 사용해야 합니다. Flash Builder를 사용하면 ActionScript Builder Path Properties 패널에서 External을 지정하고, 명령줄을 사용하면 -external-library-path를 지정합니다.
  • AIR 응용 프로그램을 사용하여 ANE 파일을 패키지화합니다.

기본 확장과 NativeProcess ActionScript 클래스 비교

ActionScript 3.0에서는 NativeProcess 클래스를 제공합니다. 이 클래스를 사용하면 AIR 응용 프로그램이 호스트 운영 체제에서 기본 프로세스를 실행할 수 있습니다. 이 기능은 플랫폼별 기능과 라이브러리에 액세스할 수 있도록 하는 기본 확장과 비슷합니다. NativeProcess 클래스를 사용할지 아니면 기본 확장을 사용할지를 결정할 때는 다음 사항을 고려합니다.

  • extendedDesktop AIR 프로파일만이 NativeProcess 클래스를 지원합니다. 따라서 AIR 프로파일 mobileDevice extendedMobileDevice 가 있는 응용 프로그램의 경우 기본 확장만 선택할 수 있습니다.

  • 일반적으로 기본 확장 개발자는 다양한 플랫폼을 위한 기본 구현을 제공하지만 개발자가 제공하는 ActionScript API는 대개 플랫폼 간에 동일합니다. NativeProcess 클래스를 사용할 경우 기본 프로세스를 시작하기 위한 ActionScript 코드는 플랫폼 간에 다를 수 있습니다.

  • NativeProcess 클래스는 별도의 프로세스를 시작하지만 기본 확장은 AIR 응용 프로그램과 동일한 프로세스에서 실행됩니다. 따라서 코드 충돌이 염려될 경우 NativeProcess 클래스를 사용하는 것이 더 안전합니다. 그러나 별도의 프로세스이므로 프로세스 간의 통신 처리를 구현해야 할 수 있습니다.

기본 확장과 ActionScript 클래스 라이브러리(SWC 파일) 비교

SWC 파일은 보관 형식의 ActionScript 클래스 라이브러리입니다. SWC 파일에는 SWC 파일 및 다른 리소스 파일이 포함되어 있습니다. SWC 파일은 개별 ActionScript 코드 및 리소스 파일을 공유하는 대신 ActionScript 클래스를 공유하는 편리한 수단으로 사용됩니다.

기본 확장 패키지는 ANE 파일입니다. SWC 파일과 마찬가지로 ANE 파일도 SWF 파일 및 기타 리소스 파일을 보관 형식으로 포함하는 ActionScript 클래스 라이브러리입니다. 그러나 ANE 파일과 SWC 파일 간의 가장 중요한 차이는 ANE 파일에만 기본 코드 라이브러리가 포함될 수 있다는 것입니다.

참고: 응용 프로그램을 컴파일할 경우 ANE 파일에 대한 동적 링크를 사용해야 합니다. Flash Builder를 사용하면 ActionScript Builder Path Properties 패널에서 External을 지정하고, 명령줄을 사용하면 -external-library-path를 지정합니다.

지원되는 장치

AIR 3부터는 다음 장치의 응용 프로그램에서 기본 확장을 사용할 수 있습니다.

  • Android 장치(Android 2.2 이상)

  • iOS 장치(iOS 4.0 이상)

  • iOS 시뮬레이터(AIR 3.3 이상)

  • Blackberry PlayBook

  • AIR 3.0을 지원하는 Windows 데스크톱 장치

  • AIR 3.0을 지원하는 Mac OS X 데스크톱 장치

일반적으로 동일한 기본 확장은 여러 플랫폼을 대상으로 합니다. 확장의 ANE 파일에는 지원되는 각 플랫폼에 대한 ActionScript 및 기본 라이브러리가 포함되어 있습니다. 일반적으로 ActionScript 라이브러리의 공용 인터페이스는 모든 플랫폼에 동일합니다. 기본 라이브러리는 물론 다릅니다.

경우에 따라 기본 확장은 기본 플랫폼을 지원합니다. 기본 플랫폼 구현에는 ActionScript 코드만 있고 기본 코드는 없습니다. 확장에서 특별히 지원하지 않는 플랫폼을 위한 응용 프로그램을 패키지화할 경우 해당 응용 프로그램은 실행될 때 기본 구현을 사용합니다. 예를 들어 모바일 장치에만 적용되는 기능을 제공하는 확장이 있다고 가정할 경우 이 확장에서는 데스크톱 응용 프로그램이 기능을 시뮬레이트하는 데 사용할 수 있는 기본 구현도 제공합니다.

지원되는 장치 프로파일

다음은 기본 확장을 지원하는 AIR 프로파일입니다.

  • extendedDesktop (AIR 3.0 이상)

  • mobileDevice (AIR 3.0 이상)

  • extendedMobileDevice (AIR 3.0 이상)

기본 확장 사용을 위한 작업 목록

응용 프로그램에서 기본 확장을 사용하려면 다음 작업을 수행합니다.

  1. 응용 프로그램 설명자 파일에서 확장을 선언합니다.

  2. 응용 프로그램의 라이브러리 경로에 ANE 파일을 포함합니다.

  3. 응용 프로그램을 패키지화합니다.

응용 프로그램 설명자 파일에서 확장 선언

모든 AIR 응용 프로그램에는 응용 프로그램 설명자 파일이 있습니다. 응용 프로그램에 기본 확장이 사용될 경우 응용 프로그램 설명자 파일에는 <extensions> 요소가 포함됩니다. 예를 들면 다음과 같습니다.

<extensions> 
    <extensionID>com.example.Extension1</extensionID> 
    <extensionID>com.example.Extension2</extensionID> 
</extensions>

extensionID 요소의 값은 확장 설명자 파일에서 id 요소의 값과 동일합니다. 확장 설명자 파일은 extension.xml이라는 XML 파일로, 이 파일은 ANE 파일에 패키지화되어 있습니다. extension.xml 파일을 보려면 보관 추출기 도구를 사용하면 됩니다.

응용 프로그램의 라이브러리 경로에 ANE 파일 포함

기본 확장을 사용하는 응용 프로그램을 컴파일하려면 ANE 파일을 라이브러리 경로에 포함합니다.

Flash Builder와 함께 ANE 파일 사용

응용 프로그램에서 기본 확장을 사용하는 경우 라이브러리 경로에서 기본 확장에 대한 ANE 파일을 포함합니다. 그러면 Flash Builder를 사용하여 ActionScript 코드를 컴파일할 수 있습니다.

Flash Builder 4.5.1을 사용하는 다음 단계를 수행하십시오.

  1. ANE 파일의 파일 이름 확장자를 .ane에서 .swc로 변경합니다. Flash Builder에서 파일을 찾을 수 있도록 하려면 이 단계를 수행해야 합니다.

  2. Flash Builder 프로젝트에서 [프로젝트] > [속성]을 선택합니다.

  3. [속성] 대화 상자에서 [Flex 빌드 경로]를 선택합니다.

  4. [라이브러리 경로] 탭에서 [SWC 추가...]를 선택합니다.

  5. SWC 파일을 찾아서 [열기]를 선택합니다.

  6. [SWC 추가...] 대화 상자에서 [확인]을 선택합니다.

    [속성] 대화 상자에서 [라이브러리 경로] 탭에 ANE 파일이 나타납니다.

  7. SWC 파일 항목을 확장합니다. [링크 유형]을 두 번 클릭하여 [라이브러리 경로 항목 옵션] 대화 상자를 엽니다.

  8. [라이브러리 경로 항목 옵션] 대화 상자에서 [링크 유형]을 [외부]로 변경합니다.

이제 [프로젝트] > [프로젝트 만들기] 등을 사용하여 응용 프로그램을 컴파일할 수 있습니다.

Flash Professional과 함께 ANE 파일 사용

응용 프로그램에서 기본 확장을 사용하는 경우 라이브러리 경로에서 기본 확장에 대한 ANE 파일을 포함합니다. 그러면 Flash Professional CS5.5를 사용하여 ActionScript 코드를 컴파일할 수 있습니다. 다음을 수행하십시오.

  1. ANE 파일의 파일 이름 확장자를 .ane에서 .swc로 변경합니다. Flash Professional에서 파일을 찾을 수 있도록 하려면 이 단계를 수행해야 합니다.

  2. FLA 파일에서 [파일] > [ActionScript 설정]을 선택합니다.

  3. [고급 ActionScript 3.0 설정] 대화 상자에서 [라이브러리 경로] 탭을 선택합니다.

  4. [SWC 파일 찾아보기] 버튼을 선택합니다.

  5. SWC 파일을 찾아서 [열기]를 선택합니다.

    [고급 ActionScript 3.0 설정] 대화 상자에서 [라이브러리 경로] 탭에 SWF 파일이 나타납니다.

  6. SWC 파일이 선택된 상태에서 [라이브러리에 대한 링크 옵션 선택] 버튼을 선택합니다.

  7. [라이브러리 경로 항목 옵션] 대화 상자에서 [링크 유형]을 [외부]로 변경합니다.

기본 확장을 사용하는 응용 프로그램 패키지화

기본 확장을 사용하는 응용 프로그램을 패키지화하려면 ADT를 사용합니다. Flash Professional CS5.5 또는 Flash Builder 4.5.1을 사용하여 응용 프로그램을 패키지화할 수는 없습니다.

ADT를 사용하는 방법에 대한 자세한 내용은 ADT(AIR Developer Tool) 를 참조하십시오.

예를 들어 다음 ADT 명령을 실행하면 기본 확장을 사용하는 응용 프로그램에 대한 DMG 파일(Mac OS X용 기본 설치 프로그램 파일)이 생성됩니다.

adt -package 
    -storetype pkcs12 
    -keystore myCert.pfx 
    -target native 
    myApp.dmg 
    application.xml 
    index.html resources 
    -extdir extensionsDir
다음 명령을 실행하면 Android 장치용 APK 패키지가 만들어집니다.
adt -package 
    -target apk 
    -storetype pkcs12 -keystore ../codesign.p12 
    myApp.apk 
    myApp-app.xml 
    myApp.swf icons 
    -extdir extensionsDir

다음 명령을 실행하면 iPhone 응용 프로그램용 iOS 패키지가 만들어집니다.

adt -package 
    -target ipa-ad-hoc 
    -storetype pkcs12 -keystore ../AppleDistribution.p12 
    -provisioning-profile AppleDistribution.mobileprofile 
    myApp.ipa 
    myApp-app.xml 
    myApp.swf icons Default.png 
    -extdir extensionsDir

다음 사항에 주의하십시오.

  • 기본 설치 프로그램 패키지 유형을 사용합니다.

  • 확장 디렉토리를 지정합니다.

  • ANE 파일이 응용 프로그램의 대상 장치를 지원하는지 확인합니다.

기본 설치 프로그램 패키지 유형 사용

응용 프로그램 패키지는 기본 설치 프로그램이어야 합니다. 기본 확장은 일반적으로 기본 코드를 포함하므로 기본 확장을 사용하는 응용 프로그램에 대해 플랫폼의 영향을 받지 않는 AIR 패키지(.air 패키지)를 만들 수는 없습니다. 그러나 일반적으로 기본 확장은 동일한 ActionScript API를 가진 여러 기본 플랫폼을 지원합니다. 이러한 경우 서로 다른 기본 설치 프로그램 패키지에서 동일한 ANE 파일을 사용할 수 있습니다.

다음 표에는 ADT 명령의 -target 옵션에 사용되는 값이 요약되어 있습니다.

응용 프로그램의 대상 플랫폼

-target

Mac OS X 또는 Windows 데스크톱 장치

-target native

-target bundle

Android

-target apk

또는 기타 Android 패키지 대상

iOS

-target ipa-ad-hoc

또는 기타 iOS 패키지 대상

iOS 시뮬레이터

-target ipa-test-interpreter-simulator

-target ipa-debug-interpreter-simulator

확장 디렉토리 지정

ADT 옵션인 -extdir 은 기본 확장(ANE 파일)을 포함하는 디렉토리를 ADT에 알리는 데 사용합니다.

이 옵션에 대한 자세한 내용은 파일 및 경로 옵션 을 참조하십시오.

ANE 파일이 응용 프로그램의 대상 장치를 지원하는지 확인

ANE 파일을 제공할 때 기본 확장 개발자는 확장에서 지원되는 플랫폼을 알려 줍니다. 또한 보관 추출기 도구를 사용하여 ANE 파일의 내용을 볼 수도 있습니다. 추출된 파일에는 지원되는 각 플랫폼에 대한 디렉토리가 포함되어 있습니다.

ANE 파일을 사용하는 응용 프로그램을 패키지화할 때는 확장에서 지원되는 플랫폼을 알고 있어야 합니다. 다음과 같은 규칙에 주의합니다.

  • Android 응용 프로그램 패키지를 만들려면 ANE 파일에 Android-ARM 플랫폼이 포함되어 있어야 합니다. 아니면 ANE 파일에 기본 플랫폼과 하나 이상의 다른 플랫폼이 포함되어 있어야 합니다.

  • iOS 응용 프로그램 패키지를 만들려면 ANE 파일에 iPhone-ARM 플랫폼이 포함되어 있어야 합니다. 아니면 ANE 파일에 기본 플랫폼과 하나 이상의 다른 플랫폼이 포함되어 있어야 합니다.

  • iOS 시뮬레이터 응용 프로그램 패키지를 만들려면 ANE 파일에 iPhone-x86 플랫폼이 포함되어 있어야 합니다.

  • Mac OS X 응용 프로그램 패키지를 만들려면 ANE 파일에 MacOS-x86 플랫폼이 포함되어 있어야 합니다. 아니면 ANE 파일에 기본 플랫폼과 하나 이상의 다른 플랫폼이 포함되어 있어야 합니다.

  • Windows 응용 프로그램 패키지를 만들려면 ANE 파일에 Windows-x86 플랫폼이 포함되어 있어야 합니다. 아니면 ANE 파일에 기본 플랫폼과 하나 이상의 다른 플랫폼이 포함되어 있어야 합니다.