Android APK パッケージ

APK パッケージの作成

APK パッケージを作成するには、ADT パッケージコマンドを使用します。ターゲットのタイプは、リリースビルドの場合は apk、デバッグビルドの場合は apk-debug、エミュレーター上で実行するためのリリースモードビルドの場合は apk-emulator に設定します。

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

コマンド全体を 1 行で入力します。上記の例では、コマンドをわかりやすくするために改行を使用しました。実際には改行を使用しません。また、この例では、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

この方法には次の欠点があります。

  • アドビからセキュリティパッチが発行されても、重要なセキュリティの修正が自動的に入手可能にならない

  • アプリケーションで使用される 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 経由でデバッグするには、-listen フラグを代わりに使用し、デバッグ接続に使用する TCP ポートを指定する必要があります。

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 は Android アプリケーションで AIR ランタイムのキャプティブコピーをパッケージ化し、apk-debug ターゲットを使用してアプリケーションをパッケージ化します。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