2010年5月31日月曜日

AIR on Android apk の作り方

Adobe AIR on Android 事始め ~ その1 ~

*注:
 ここでは、すでにPCに Android SDK が入っていて、
 adb コマンドが使えるようになっていることを前提としています
 = Android は初心者じゃないけど、Flash/AIR は初心者の人を想定してます


1. AIR を作れる環境を作る

 方法はいくつかあって、
  * Flash CS5 / Flash CS4 を入れる
  (AIRが作れるやつ、CS3はアップデートすればできるみたい )

  * Flash Builder 4 / Flex Builder 3 を入れる
  (これも AIR が作れるやつならOK)

  * Flex SDK を落としてきて、コンソールから AIR アプリをビルドする
  (これなら無料よ)

  * Flash Develop を入れる
  (無料のツール。オープンソース。Windows のみ)
  (直接は AIR は作れない。FlashDevelop が生成したバッチファイルから
   AIR が作れるらしい)

 こんな感じ

2. AIR アプリを作る

 各ソフトウェアで AIR アプリを作る方法は、いろんなサイトや書籍があるので、
 ここでは触れません。ActionScript 3.0 & AIR で出力できれば OK です

 注意!!!:現状では mxml ベースの AIR アプリは対応してません。
 mxml のコンポーネントに対応すると runtime が重くなっちゃうから
 みたいです。でも、mxml のコンポーネントのうち、デバイスに特化
 したものだけ対応するなど今後まだまだ変わっていくそうです。
 だってまだベータ版だしね。


 ただし、デスクトップ用の AIR アプリならできるけど、現状では
 AIR on Android で対応していない機能があります

 対応していない機能については、また別のエントリーで書きます。

3 AIR 2.5 SDK を入れる

  ここから、プレリリースプログラムに参加すると、
  Adobe® AIR® - Android Developer Prerelease
  SDK を落とすことができます。
  適当なディレクトリに展開して、パスを通せばOKです。

4. AIR アプリから .apk を作る

 4.1 AIR の設定ファイルを編集する

  Flash CS5 や Flash Builder CS5 で AIR を作成すると、
  ***-app.xml という設定ファイルが生成されます。
  これを apk を作る用に変更します。

  最終的にはこんな感じ


<?xml version ="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/2.5">
<id>myairapp.example.helloworld</id>
<version>1.0</version>
<filename>HelloWorld</filename>
<description>My First HelloWorld</description>
<name>HelloWorld</name>
<supportedProfiles>mobileDevice</supportedProfiles>
<copyright></copyright>
<initialWindow>
<content>HelloWorld.swf</content>
<systemChrome>standard</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
<fullScreen>true</fullScreen>
<autoOrients>false</autoOrients>
<aspectRatio>portrait</aspectRatio>
<renderMode>auto</renderMode>
</initialWindow>
<customUpdateUI>false</customUpdateUI>
<allowBrowserInvocation>false</allowBrowserInvocation>
<icon>
<image36x36>icon36.png</image36x36>
<image48x48>icon48.png</image48x48>
<image72x72>icon72.png</image72x72>
</icon>
</application>


  Flash CS5 などでAIRを作ったときに出力される
  ***-app.xml だと、air のバージョンが 2.5 には
  なっていません。
  なので、


<application xmlns="http://ns.adobe.com/air/application/2.5">
← ここを 2.5 にする
<fullScreen>true</fullScreen> ← フルスクリーンモードの設定

<icon>
<image36x36>icon36.png</image36x36>
<image48x48>icon48.png</image48x48>
<image72x72>icon72.png</image72x72>
</icon>
← アイコン画像の設定
 (注:現在(2010/5/31) 36x36 は設定しても反映されないらしい)


 4.2 署名ファイルを作る

  > adt -certificate -cn mycert 1024-RSA codesigningCert.p12 123456

  一番最後の引数はパスワードです。
  (つまり、この例ではパスワードは123456)
  この例だと codesigningCert.p12 が作られます。

 4.3 AIRアプリから *.apk を作る

  > adt -package -target apk -storetype pkcs12 -keystore ../codesigningCert.p12 HelloWorld.apk HelloWorld-app.xml HelloWorld.swf
 
  -keystore には、4.2 で作った署名ファイルを指定します。
  パスワードを聞かれるので、署名ファイルを作ったときの
  パスワードを入力します。
  これで *.apk ができる(この場合だと HelloWorld.apk)ので、
  あとは、 adb install HelloWorld.apk とかで端末に
  インストールすれば OK です。

3 件のコメント:

  1. Flex sdk 2.6にてコンパイル(FlashBuilder)
    デスクトップで実行する場合は問題ないのですが
    リリース版、実機に移した後、最初だけ描画され、その後は一切再描画がされない現象がおこっています。
    解消する方法がありましたら、教えてください。

    返信削除
  2. 連投申し訳ない。
    デスクトップだけに適用される変数を使用としたせいみたいです。
    デバッグができないのが難点です。何か方法ないのかなぁ・・・

    返信削除
  3. please howa can do for convert swf games to apk

    thanks

    返信削除