2009年7月22日水曜日

Android NDKってなに?

Androidでネイティブコードを動かすための開発ツールを見つけた。

Android NDKは、Androidアプリ開発者のみんなが、君たちのアプリケーションに、ネイティブコードで書かれたコンポーネントを埋め込むことができるようになるツールだよ。

AndroidアプリはDalvik仮想マシンの上で動くんだけど、このNDKを使えば、CやC++みたいなネイティブコード言語を使ってアプリケーションのパーツを開発できるようになるんだ。

そうすれば、ある種のアプリケーションにはメリットがあるんだ。それらの言語で書かれたコードを再利用することができるとか、時にはスピードアップとかね。

このNDKに入れてあるもの

  • CやC++のソースコードからネイティブコードライブラリを生成する事ができるツールやビルドファイル。
  • ネイティブコードライブラリをAndroidデバイスにデプロイ可能なアプリケーションパッケージファイル(.apks)に埋め込む方法。
  • ネイティブシステムヘッダーやライブラリのセット。これらは将来にわたってAndroid 1.5以降の全てのAndroidプラットフォームでサポートされるよ。
  • ドキュメント、サンプル、それにチュートリアル

このリリースのNDKはARMv5TEのマシン語をサポートしている。それに、安定したlibcのヘッダーファイル(Cライブラリ)やlibm(数学ライブラリ)、JNIインターフェースやその他のライブラリを入れてあるよ。

このNDKは、ほとんどのアプリケーションには役に立たないだろうな。開発者として、メリットとデメリットのバランスを見極める必要があるよ。特に、ネイティブコードを使っても、自動的にパフォーマンスが向上するわけじゃないし、そのくせ必ずアプリケーションを複雑にしてしまうからね。

NDKを使うよい例は、自己完結的で、メモリアロケーションを伴わない、CPUをこき使うような処理だね。例えば、シグナル処理とか物理シミュレーションとかね。なにかのメソッドを単純にCで書き換えたとしても、たいていはたいしてパフォーマンス向上につながらないよ。でもね、NDKは既に世の中に存在するCやC++のコードを再利用する時には効率的な手段になり得るんだ。

注意して欲しいんだけど、NDKを使ってもネイティブコードだけのアプリケーションを作ることはできないよ。AndroidのメインのランタイムはDalvik仮想マシンのままだからね。


0 件のコメント:

コメントを投稿