Android APK 패키지

APK 패키지 만들기

APK 패키지를 만들려면 대상 유형을 릴리스 빌드에 대해 apk로, 디버그 빌드에 대해 apk-debug로 또는 릴리스 모드 빌드에 대해 apk-emulator로 설정하는 ADT package 명령을 사용하십시오.

adt     -package 
                                -target apk 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

한 행에 전체 명령을 입력합니다. 위 예제의 행 분리는 읽기 쉽게 표시하기 위한 것일 뿐입니다. 또한 이 예제에서는 ADT 도구의 경로가 명령줄 셸의 경로 정의에 있다고 가정합니다. 도움말은 path 환경 변수를 참조하십시오.

응용 프로그램 파일이 들어 있는 디렉토리에서 명령을 실행해야 합니다. 이 예제의 응용 프로그램 파일은 myApp-app.xml(응용 프로그램 설명자 파일), myApp.swf 및 icons 디렉토리입니다.

표시된 것과 같은 명령을 실행하면 ADT에서 키 저장소 암호를 묻습니다. 입력하는 암호 문자는 표시되지 않습니다. 암호 문자를 표시하려면 입력을 마치고 Enter 키를 누르면 됩니다.

참고: 기본적으로 모든 AIR Android 응용 프로그램의 패키지 이름에는 air. 접두어가 있습니다. 이 기본 비헤이비어를 옵트아웃하려면 해당 컴퓨터에서 환경 변수 AIR_NOANDROIDFLAIRtrue로 설정하십시오.

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

기본 확장을 사용하는 응용 프로그램에 대한 APK 패키지를 만들려면 일반적인 패키지 옵션 외에 -extdir 옵션을 추가합니다. 리소스/라이브러리를 공유하는 여러 ANE의 경우, 경고를 발생시키기 전에 ADT가 단일 리소스/라이브러리만 선택하고 다른 중복 항목은 무시합니다. 이 옵션은 응용 프로그램에 사용되는 ANE 파일이 포함된 디렉토리를 지정합니다. 예를 들면 다음과 같습니다.

adt     -package 
                                -target apk 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                -extdir extensionsDir 
                                myApp.swf icons

고유한 버전의 AIR 런타임이 포함된 APK 패키지 생성

응용 프로그램과 전용 버전의 AIR 런타임이 모두 포함된 APK 패키지를 만들려면 apk-captive-runtime 대상을 사용합니다. 이 옵션은 응용 프로그램에 사용되는 ANE 파일이 포함된 디렉토리를 지정합니다. 예를 들면 다음과 같습니다.

adt     -package 
                                -target apk-captive-runtime 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

이 방법 사용 시 발생할 수 있는 단점에는 다음이 포함됩니다.

  • Adobe에서 보안 패치를 게시하는 경우 중요한 보안 픽스를 사용자가 자동으로 사용할 수 없습니다.

  • 응용 프로그램의 RAM 공간이 커집니다.

참고: 런타임을 하나로 묶는 경우 ADT에서는 응용 프로그램에 INTERNETBROADCAST_STICKY 권한을 추가합니다. 이러한 권한은 AIR 런타임에 필요한 권한입니다.

디버그 APK 패키지 만들기

디버거와 함께 사용할 수 있는 응용 프로그램 버전을 만들려면 apk-debug를 대상으로 사용하고 연결 옵션을 지정하십시오.

adt     -package 
                                -target apk-debug 
                                -connect 192.168.43.45 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

-connect 플래그는 네트워크를 통해 원격 디버거에 연결할 장치의 AIR 런타임을 알려 줍니다. USB를 통해 디버깅하려면 디버그 연결에 사용할 TCP 포트를 지정하는 -listen 플래그를 대신 지정해야 합니다.

adt     -package 
                                -target apk-debug 
                                -listen 7936 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons

대부분의 디버깅 기능이 작동하도록 하려면 디버깅을 사용한 상태로 응용 프로그램 SWF 및 SWC도 컴파일해야 합니다. 디버거 연결 옵션에서 -connect-listen 플래그에 대한 전체 설명을 참조하십시오.

참고: 기본적으로 ADT는 apk-debug 대상과 함께 응용 프로그램을 패키지화하는 동안 Android 응용 프로그램과 함께 AIR 런타임의 전용 복사본을 패키지화합니다. ADT가 외부 런타임을 사용하는 APK를 강제로 만들도록 하려면 AIR_ANDROID_SHARED_RUNTIME 환경 변수를 true로 설정하십시오.

Android에서는 응용 프로그램이 네트워크를 통해 디버거를 실행 중인 컴퓨터에 연결하려면 응용 프로그램도 인터넷에 대한 액세스 권한을 가지고 있어야 합니다. Android 권한을 참조하십시오.

Android 에뮬레이터에서 사용할 APK 패키지 만들기

Android 에뮬레이터에서 디버그 APK 패키지를 사용할 수 있지만 릴리스 모드 패키지는 사용할 수 없습니다. 에뮬레이터에서 사용할 릴리스 모드 APK 패키지를 만들려면 ADT package 명령을 사용하여 대상 유형을 apk-emulator로 설정하십시오.

adt -package -target apk-emulator -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp-app.xml myApp.swf icons

이 예제에서는 ADT 도구의 경로가 명령줄 셸의 경로 정의에 있다고 가정합니다. 도움말은 path 환경 변수를 참조하십시오.

AIR 또는 AIRI 파일로부터 APK 패키지 만들기

기존 AIR 또는 AIRI 파일로부터 APK 패키지를 바로 만들 수 있습니다.

adt -target apk -storetype pkcs12 -keystore ../codesign.p12 myApp.apk myApp.air

AIR 파일은 응용 프로그램 설명자 파일에서 AIR 2.5 이상의 네임스페이스를 사용해야 합니다.

Android x86 플랫폼용 APK 패키지 만들기

AIR 14부터는 -arch 인수를 사용하여 Android x86 플랫폼용 APK를 패키지화할 수 있습니다. 예를 들면 다음과 같습니다.

    adt     -package 
                                -target apk-debug 
                                -listen 7936 
                                -arch x86 
                                -storetype pkcs12 -keystore ../codesign.p12 
                                myApp.apk 
                                myApp-app.xml 
                                myApp.swf icons