C,C++ランタイムライブラリの制限事項

255 views
Skip to first unread message

koba

unread,
Oct 23, 2008, 10:36:45 PM10/23/08
to 日本Androidの会
kobaです。

AndroidでC,C++を使ってミドルウェアやネイティブメソッドを書くときには標準の
ランタイムライブラリ(bionicという名前がついている。)を使いますが
これには大きな制限があります。

$(TOP)/bionic/libc/CAVEATS
の中に以下のようなことが書かれています。

おおむねPOSIXに準拠するが以下のような機能はサポートしないことを決めた。
- C++の例外はサポートしない。無駄に大きくて遅いコードになるので組み込みシステム
には向かないからとのこと。
- pthreadのキャンセル機能はサポートしない。
- ロケールやワイドキャラクタはサポートしない。国際化対応には代わりにICUを使う。
- 現時点ではマルチユーザのアカウントに関連する機能はスタブになっている。


C++の例外をサポートしないことにともなってC++の標準テンプレートライブラリ(STL)が
使えません。libstdc++.so の中をのぞいてみるとスカスカです。
リッチな機能が必要なプログラムはJavaで書けということですね。潔い割り切りです。
どうしても必要なら自分でライブラリを用意して使えばいいわけですし。

Reply all
Reply to author
Forward
0 new messages