AndroidNDK-r5 (1)

先日から、今回の業務で必要なのでAndroidNDKについて勉強している。
勉強を始めたのが12月の上旬で、ちょうどAndroidNDK-r5が公開されたところだった。


どうもr4、r5あたりから大幅な変更が行われたらしく
いまひとつネット上には参考になる日本語のドキュメントが無かった。
私は英語がほとんど読めない。 そんな詰んだ状況から始まっています。


頑張って「What is the NDK」などのドキュメントを翻訳するなどした結果、
NDKのセットアップや、ビルド環境の構築などは既に終わっているため省略。

私の稚拙な翻訳なので間違っている可能性も高いですが、
これまでのバージョンと大幅に変わっているところで注目したいのは

Adds native support for the following:
・Input subsystem (such as the keyboard and touch screen)
・Access to sensor data (accelerometer, compass, gyroscope, etc).
・Event loop APIs to wait for things such as input and sensor events.
・Window and surface subsystem
・Audio APIs based on the OpenSL ES standard that support playback and recording as well as control over platform audio effects

やはりこのあたり。しかし気になってるのは、センサーデータへのアクセスや
イベントループはNativeActivityでしか使えなかったりしないのだろうか、ということ。

その場合、このr5で追加された『NativeActivity』が有効なのは
Android 2.3』からなので今しばらくは利用することが出来ない。


ちなみに、詳細は省くがこの追加された『NativeActivity』という機能を使えば
Activityも含めて全ての機能をNDKライブラリ内で記述することが出来るようになる。
機体依存の2.3専用のプログラムはこのあたりを使って高速化してくるんじゃないかな?


また、

・Provides a default C++ STL implementation (based on STLport) as a helper module.

この記述を見る限り、このリリースから標準でSTLが使えるようになったぽい。
頑張ってSTL portを入れようとした私があとからドキュメントをちゃんと読んで
涙目になりましたが、まぁ良いでしょう。


現在はこのNDKと、「OpenGL ES 1.1」を連携させるための勉強中です。
OpenGL ES 2.0のサンプルはあったんですが……。
移植元のソースコードがES1.1だから仕方ないんですよね。


OpenGL ESを使うのはこの業務が初めてなのでなかなか大変です。