JNAが欲しい

Androidアプリケーションが動いている下で、プラットホームは抽象度の高い順に

の3層で構成されており、アプリケーションフレームワークの層まではJavaで書かれている。

しかし、ソースコードを読むと現状ではDalvik VMの性能は決して良くないためか、アプリケーションフレームワークのかなりの部分がJNIを経由したC(C++)が書かれており、手続きの面倒さから今ひとつ修正に手を出しにくい。(過去にCで書かれた自社製ライブラリィとJavaのインタフェースをJNIで書いた事があるが、パッケージ、メソッドの命名にも気を遣うので、正直、どうしても必要な時以外はやりたくないと感じた)

と思ったらこんなのが出ているんだな。

Java Native Access (JNA)
JNIより簡単にJavaとC/C++をつなぐ - @IT CORE > Java Solution
まるでC#VBからWin32を呼び出すようにCのコードを呼びだせるのは非常に書きやすいし、構造体へのマッピング(Structureクラスでアライメントされたメンバを表現している)とポインタへのマッピング(Pointerクラス)をサポートしているのも現実的で良いと思う。

Sun主導のプロジェクトだと厳しそうだが、早晩Androidでもサポートされてほしいもんだ。(できればApacheライセンスで)