私は、C で書かれた共有ライブラリを呼び出す Android スマートフォン用のアプリケーションを作成しようとしているプロジェクトの最初の段階です。
その方法としては、Android NDK を使ってスマートフォンのハードウェアと互換性のあるバイナリ形式でライブラリをビルドし、JNI を使って Java から共有ライブラリを呼び出すという方法があるようです。おそらく途中で SWIG を使用して、JNI ラッパー関数を容易にします。
しかし、このルートをたどる前に、C アプリをスマートフォンで実行するための、潜在的にはるかに単純なアプローチを見逃していませんか? 他の選択肢があるのではないかと考えさせられたのは、スマートフォンで ubuntu を実行しようとしている Canonical プロジェクト ( http://www.ubuntu.com/devices/android ) でしたが、まだ利用できないようです。
このトピックに関する横方向の考えは、感謝して受け取りました