前回までで、WindowsとiOSのANEはできました、今回は、ANE を使ってAIR for Androidを拡張します。
1. Java Projectでjar開発準備
EclipseでJavaプロジェクトを作成します。
プロジェクト名は、HelloWorldANEです。
プロジェクトが生成されたら
AIR 3 HOME/lib/android/FlashRuntimeExtensions.jar
をビルドパスに設定します。
準備完了
2. HelloWorldANE.javaクラスを作成
Native Extensionとして登録するクラスは、com.adobe.fre.FREExtensionインターフェイスを実装します。
package net.akb7.android.ane;
import java.util.HashMap;
import java.util.Map;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREExtension;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREObject;
import com.adobe.fre.FREWrongThreadException;
public class HelloWorldANE implements FREExtension {
public FREContext createContext(String arg) {
FREContext context = new FREContext() {
...
};
return context;
}
public void initialize() {
}
public void dispose() {
}
}
コンテキストは、com.adobe.fre.FREContextを実装します。
@Override
FREContext context = new FREContext() {
@Override
public Map<String, FREFunction> getFunctions() {
Log.i("HelloWorldANE$FREContext", "getFunctions");
HashMap<String, FREFunction> result = new HashMap<String, FREFunction>();
result.put("SayHello", new FREFunction() {
...
});
return result;
}
@Override
public void dispose() {
Log.i("HelloWorldANE$FREContext", "dispose");
}
};
Netive Extension用の関数は、com.adobe.fre.FREFunctionを実装します。
callの中にロジックを記述します。
new FREFunction() {
@Override
public FREObject call(FREContext arg0, FREObject[] arg1) {
try {
return FREObject.newObject("Hello World");
} catch (FREWrongThreadException e) {
e.printStackTrace();
return null;
}
}
}
3. コンパイルからのJarを作成
Java Projectをクリーンして、右クリックしてエクスポートからJarをエクスポートします。
4. ANE作成
基本的には、ここを参照してください
Windows版とことなるのは、AIR extension descriptor fileです。
initializer/finalizerには、FREExtensionを実装したクラスを指定します。
<extension xmlns="http://ns.adobe.com/air/extension/2.5">
<id>nativeExtension</id>
<versionNumber>1.0.0</versionNumber>
<platforms>
<platform name="Android-ARM">
<applicationDeployment>
<nativeLibrary>HelloWorldANE.jar</nativeLibrary>
<initializer>FREExtensionを実装したクラス</initializer>
<finalizer>FREExtensionを実装したクラス</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>
5. AIR for Androidアプリ開発
AIR for AndroidをADTでコマンドラインでコンパイルすればextdirを指定できるので
Windows版と同様にAIR for AndroidでもANEを使えることになります。
[...] 13 Try AIR for Android + ANE in Java AIR for Androidアプリに組み込むANEをJavaで作る 12 Try Develop Async Event in C ネイティブスレッドを使った非同期処理+ステータスイベント 11 [...]
[...] AIR 3 Native Extension 13 Try AIR for Android + ANE in Java ? AKABANA 前回までで、WindowsとiOSのANEはできました、今回は、ANEを使ってAIRforAndroidを拡張します。1.JavaProjectでjar開発準備.EclipseでJavaプロジェク [...]