[ANE] AIR Native Extension API

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

前回はAIR Native Extension(ANE)を開発する準備を行いました。
今回は、Native Extension API についてです。

Native Extensionでできること
まず、Native Extensionでできることを確認しましょう

  • AIRからネイティブライブラリの関数(ネイティブ関数)が呼び出し
  • ネイティブ関数を呼び出しする引数にASオブジェクトを指定可能
  • ネイティブ関数の返り値は、ASオブジェクト
  • ネイティブ関数の中からASオブジェクトのプロパティや関数にアクセス可能
  • ネイティブ関数の中からイベントを発生可能


これらは
Native Extension APIを使って開発します。
Native Extension API は、C言語で開発します。AndroidのみJavaで開発します。
下記リンクは、Native Extension を作る際に必要なAPIについてのC言語用のドキュメントです。

Native C API Reference
http://help.adobe.com/en_US/air/extensions/WSb464b1207c184b14-62b8e11f12937b86be4-8000.html

下記リンクは、Native Extension を作る際に必要なAPIについてのJava言語用のドキュメントです。
Android Java API Reference
http://help.adobe.com/en_US/air/extensions/WSff7e9115a8550eef64893a0c132502c6a64-8000.html

Netive Extension コンテキスト

FREContext

ActionScriptとNative Extensionでやり取りするためのオブジェクト

FREObject

Native Extension専用の特殊な型

FREBitmapData
FREByteArray

Native Extension専用の関数

FREFunction
FRENamedFunction
FREContextInitializer
FREContextFinalizer
FREInitializer
FREFinalizer

Native Extension専用の列挙型

FREResult
FREObjectType


これらが定義されているヘッダーは、
AIR 3 HOME/include/FlashRuntimeExtensions.h にあります。

また、Windowsはコンパイルのためにライブラリが必要になります。
AIR 3 HOME/lib/win/FlashRuntimeExtensions.lib にあります。


また、このNative Extension APIを用いて、プラットフォームごとにネイティブライブラリ作成する必要があります。
[Windows]
開発言語:C言語
拡張子:.dll

[OS X]
開発言語:C言語
拡張子:.framework

[iOS]
開発言語:C言語
拡張子:.a

[Android]
開発言語:Java または C言語
拡張子:.jar または .so


次は、Native Extension APIを用いてデスクトップ用のネイティブライブラリを作っていきます。