Android関係の情報
Linux環境で多く使われてるC lib(GNU libc)とは互換性が無い。
Androidに使われているlibcは『Bionic libc』と言う。
Androidに使われているC lib。
Android用にカスタマイズされたlibのため、通常のC lib以外にAndroid専用の機能が追加されている。例えばシステムプロパティ取得機能、デバッグ時のlog出力機能。
Bionic libcは組込み向けに最適化されて提供されているので、GNU Libc(通常のLinux環境で使われているC lib)との互換性は無い。
つまり、LinuxのNativeCodeアプリケーションをAndroidへ移植する場合、使っている外部libを含めて、全てBionic libcでbuildし直す必要がある。
当然libraryも互換性が無いため、通常GNU Libcが見に行く『/usr/lib』『/usr/include』ではなく、Android NDKに用意された
組込み向けLinux向けのC library。標準的なlinuxで使われているglibcに比べて非常に小さくなっているが、機能もかなり削られている。
BionicとuClibcの関係が不明。
Old Application Binary Interface
Debianでは『arm』と記述されているらしい。EABIの方は『armel』と記述されるらしい。
浮動小数点演算にハードが持っている浮動小数点演算ユニットを用いる。当然ユニットが有ると高速に動作するが、無いとペナルティ(例外処理,コンテキストスイッチ)がものすごいらしい。
Embedded Application Binary Interface
Debianでは『armel』と記述されるらしい。OABIの方は『arm』と記述されるらしい。
浮動小数点演算については浮動小数点演算ユニットを持っていようがいまいが、ソフトウェアで解決する。
※浮動小数点演算用の関数があるらしい。
そのため、コプロを用いた場合よりは遅くなるが、浮動小数点演算ユニットが無いチップでもそれなりの速度で浮動小数点演算を行える。
基本的にOABI互換。
更新日:
2011年06月14日 (火) 09時28分59秒
- 『chcp 65001』 adbでの文字化け回避方法 -- (s1n)
2011-03-17 18:06:47