AIR for AndroidとNativeアプリケーションを組み合わせる

Android

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

AIR for Androidでいろいろ試しています。
FlexやAIRの開発と同じように、Androidアプリケーションの開発ができるので
経験がない人にも、簡単に始められそうです。

特に、画面を簡単に作れるのが便利だと思うのですが、
現時点では、Nativeアプリケーションと比べると、実現できない事がいくつかあるようです。
(AIR 3では、出来ることが増えるようですね。)

そこで、AIR for Androidで提供されていないOSのAPIを呼びたい時に、
どのような実現方法があるのか調べていました。

AIRアプリケーションとNativeアプリケーションを2つ用意して、
Intent呼び出しをするのはどうかと考えましたが、2つ解決をしなければいけないことがありました。

  1. AIRアプリケーション→Nativeアプリケーションの呼び出し方が分からない。。
  2. Nativeアプリケーション→AIRアプリケーションの呼び出しはできそうですが、
    (※IntentFilterの設定ができるようだったので。それ以上は調べていません)
    反対の、AIRアプリケーション→Nativeアプリケーションはどうすれば良いのか分かりませんでした。
    Intent呼び出しは、AIRのAPIでは提供されていないようです。

     

  3. 2つのアプリケーションをインストールしなければいけない?
  4. 2つのアプリケーションができるので、2つアプリケーションをインストールする必要がありそうです。
    これは面倒臭いですよね。

これらの問題を解決できそうな記事を見つけました。
http://www.jamesward.com/2011/05/11/extending-air-for-android/

Socket通信で、AIRアプリケーションから、Nativeアプリケーションのサービスを呼び出しているようです。
ご本人も書かれているように、Adobeがサポートしている訳ではなく、
裏ワザっぽいですが、アプリケーションが2つになることもありません。

実際の開発では、AIRとNativeのアプリケーションを組み合わせる選択をすることは少ないかもしれませんが、
役に立つ場面があるかもしれませんね。