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_NOANDROIDFLAIR true 로 설정하십시오.

기본 확장을 사용하는 응용 프로그램용 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에서는 응용 프로그램에 INTERNET BROADCAST_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