はじめに
今までのAdobe AIRは、クロスプラットフォームで展開されるため各プラットフォームで共通する機能のみが提供されていました。つまり、プラットフォーム固有の機能にはAIR上からアクセスすることができませんでした。
今回、AIR 3に追加された新機能「ネイティブ拡張(Native Extensions)」を利用すると、開発者はAIRランタイムを拡張でき、AIR上からネイティブコードを使ったプラットフォーム機能へとアクセスできるようになります。本記事では、このネイティブ拡張の概要、および先日リリースされたばかりの「Flash Builder 4.6」を用いたネイティブ拡張の使い方について解説していきます。
Flash Builder 4.6は、Adobeのサイトよりダウンロードが可能です。下記のボタンからダウンロードすると、60日間無料で利用できる体験版を使用できます。ダウンロードにはAdobe IDが必要ですが、以前作成したことがあれば、そのIDを利用可能です。インストールの手順はバージョン4.5と同様なので、次の記事も参考にしてください。
Adobe AIR 3「ネイティブ拡張」とは
ネイティブ拡張とは、ネイティブコードとActionScriptクラスを組み合わせたものです。開発者は、ネイティブ拡張を使ってプラットフォーム固有の機能を最大限に活かすことができます。この機能を利用するメリットには、次の3つがあります。
1)プラットフォームへのアクセス
多くのデバイスには、それぞれに次のようなプラットフォーム固有の機能があります。
プラットフォーム固有の機能
-
モバイルデバイス(iOS、Android、BlackBerry)
電話帳、各種センサー(磁気センサー、圧力センサー)、アプリ内課金、Bluetooth、OS連携
-
デスクトップデバイス(Windows、Mac OS X)
データベース連携、USBデバイス連携、OS連携
-
テレビ用AIRデバイス
チャンネル操作、番組表
従来のAIRランタイムからは上記のような機能にはアクセスできませんでしたが、ネイティブ拡張を使えば、こうしたプラットフォーム固有機能にアクセスする機能をAIRランタイムに追加できます。現在、ネイティブ拡張は、次のデバイスで利用可能です。
- Androidデバイス(Android 2.2以降)
- iOSデバイス(iOS 4.0以降)
- Blackberry Playbook
- AIR 3.0をサポートするWindowsデスクトップデバイス
- AIR 3.0をサポートするMac OS Xデスクトップデバイス
- テレビ用AIRデバイス(テレビ用AIR 2.5以降)
2)コードの再利用
アプリケーションの開発を行う上で利用頻度の高いコードは、既にライブラリとして持っていると思います。さらに、洗練されたライブラリも既に数多く公開・共有されています。ネイティブ拡張では、それらのライブラリをラップして、AIRアプリケーションから扱うことができるようになります。
3)パフォーマンスを向上
ネイティブ拡張は、ActionScriptだけでは実現できないことを可能にするだけのものではなく、負荷の大きい計算を実行するためにも使用できます。ActionScriptでも実装できるものの、パフォーマンスの高度な最適化が必要な場合は、代わりにネイティブコードの処理を呼び出すことで解決できるでしょう。
ネイティブ拡張の開発について
次に、ネイティブ拡張の開発方法について説明していきます。手順は以下のようになります。
-
ネイティブ拡張ライブラリの作成
プラットフォームに依存したネイティブコードを使用して作成します。
-
ネイティブ拡張ActionScriptライブラリの作成
ネイティブ拡張ライブラリと連携するためのライブラリを作成します。
-
ネイティブ拡張記述ファイルの作成
ネイティブ拡張を定義するためにネイティブ拡張記述ファイルを作成します。
-
ANEファイルへパッケージング
ネイティブ拡張ライブラリとネイティブ拡張ActionScriptライブラリをANEファイルへパッケージングします。
ネイティブ拡張ライブラリの作成
ネイティブ拡張には、各プラットフォームと連携するためのネイティブAPIが用意されています。ネイティブAPIには次の2種類が用意されており、JavaとCの2つの言語で利用できます。
-
ネイティブ Java API:Java言語
プラットフォーム:Android
-
ネイティブ C API:C言語
プラットフォーム:iOS、Blackberry、Windows、Mac OS X