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 を作る用に変更します。

  最終的にはこんな感じ

  1. <?xml version ="1.0" encoding="utf-8" ?>  
  2. <application xmlns="http://ns.adobe.com/air/application/2.5">  
  3.   <id>myairapp.example.helloworld</id>  
  4.   <version>1.0</version>  
  5.   <filename>HelloWorld</filename>  
  6.   <description>My First HelloWorld</description>  
  7.   <name>HelloWorld</name>  
  8.   <supportedProfiles>mobileDevice</supportedProfiles>  
  9.   <copyright></copyright>  
  10.   <initialWindow>  
  11.     <content>HelloWorld.swf</content>  
  12.     <systemChrome>standard</systemChrome>  
  13.     <transparent>false</transparent>  
  14.     <visible>true</visible>  
  15.     <fullScreen>true</fullScreen>  
  16.     <autoOrients>false</autoOrients>  
  17.     <aspectRatio>portrait</aspectRatio>  
  18.     <renderMode>auto</renderMode>  
  19.   </initialWindow>  
  20.   <customUpdateUI>false</customUpdateUI>  
  21.   <allowBrowserInvocation>false</allowBrowserInvocation>  
  22.   <icon>  
  23.     <image36x36>icon36.png</image36x36>  
  24.     <image48x48>icon48.png</image48x48>  
  25.     <image72x72>icon72.png</image72x72>  
  26.   </icon>  
  27. </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 署名ファイルを作る
  1. > adt -certificate -cn mycert 1024-RSA codesigningCert.p12 123456  

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

 4.3 AIRアプリから *.apk を作る
  1. > 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

    返信削除