株式会社ライブキャストロゴ 株式会社ライブキャスト

ちょっと乗り遅れ気味ですが、AIR Native Extensionsにどっぷりはまってます。

今までAIRでは、AIR SDK 2.5からAndroid向けのアプリケーションが開発できたものの、AndroidのNativeの機能を利用することはできませんでした。アプリケーションからのちょっとしたメッセージを通知するようなToastクラスや、Androidに常駐しBackgroundで処理をするようなServiceクラスなどの機能のことです。
※ AIR Native ExtensionsはAndroid向けの機能ではありませんが、ここでは、Androidに特化して記述しています。

AIR 3からは、AIR Native Extensions(ANE)というNative拡張機能が実装されました。
参考:ネイティブ拡張(Native Extensions)入門 第1回 ネイティブ拡張を理解する | デベロッパーセンター

このAIR Native Extensionsに興味がわき始めたので、早速、2011年12月9日(金)に開催された、Native Extension Lab 5 : ATNDに参加してきました。

ANE LabのFacebookページはこちら。
Lab of Native Extensions

参加するにあたって、AIR for AndroidでNative Extensionsを利用する簡単なアプリを作りましたので、注意点などを踏まえてまとめたいと思います。

開発環境

以下に当方の開発環境を記載します。

  • Mac OS X 10.6.8
  • Eclipse 3.7.1
  • Adobe® Flash® Builder™ 4.6
  • Flex SDK 4.6.0
  • Eclipse Android Plug-in

AndroidでNative拡張するのにNative側のプロジェクトはJavaでコーディングします。ただ単にJavaのコードと連携して(Hello World的な)Native Extensionsを試したいだけなら、Javaプロジェクトでも問題ありません。ですが、Androidの機能を利用したNative拡張をするのなら、Androidプロジェクトを作成するためにEclipse Android Plug-inが必要ですのでインストールされることをお勧めします。

Getting startedは、英語サイトですがこちらを参考にどうぞ。
Developing Android Extensions for AIR 3: A Beginner’s Guide « Milkman Games

開発手順

開発は、大きく分けると、以下の3つの手順で行います。

  1. Androidプロジェクトの作成
  2. Flexライブラリプロジェクトの作成
  3. Flexモバイルプロジェクトの作成

1.のAndroidプロジェクトでは、Androidの機能を使用したライブラリを作成します。最終的なアウトプットはjarファイルになります。

2.のFlexライブラリプロジェクトでは、1.で作成したライブラリを、3.のFlexモバイルプロジェクトで作成したActionScriptのAndroidアプリから呼び出せるようにするために、swcファイルを作成します。1.のライブラリをActionScriptでラップしたような形になります。

3.のFlexモバイルプロジェクトでは、実際に、Android上で動く(画面があるような)アプリケーションを作成します。

実は、2.と3.の間に行わなければいけない作業が1つあります。1.で作成したjarファイルと2.で作成したswcファイルから、aneファイルをパッケージングします。この作業はコマンドラインから、adtコマンドを使って行います。3.のFlexモバイルプロジェクトでは、このaneファイルをプロジェクトのビルドパスに設定することで、AndroidのNative機能を呼び出せるようになるのです。

非常に簡単ですが、以上で、概要編は終わりです。
次回は、Androidプロジェクトの作成について、まとめたいと思います。