新的C库Bionic的介绍
?Google的在創(chuàng)建一個新的C庫代替使用存在GNU c庫或者嵌入式的C庫。有一下的原因:
? ?License:這glibc和uClibc在LGPL下是可獲得的,這就限制了他們由所有的應(yīng)用程序被使用。代替,Bionic在BSD的執(zhí)照下發(fā)布的,一個高特許的版本版本,沒有設(shè)置對于類庫使用的任何限制。
? ?Speed:Bionic是被指定為移動計算。它被裁減去高效率的工作特別在有限的CPU周期和和手機硬件的內(nèi)存有限。
? ?Size:Bionic被設(shè)計盡可能的簡單。它提供在內(nèi)核設(shè)施的輕量級的封裝和很少的APIs,使與其他可選項使相比更小。這一章將覆蓋這些APIs。
二進制兼容:
? ? 盡管它是一個C標準庫,Bionic并不是帶有其他C庫的二進制兼容。對象文件盒靜態(tài)庫相對于其他c庫被產(chǎn)生不應(yīng)該動態(tài)的和Bionic相連。這樣導(dǎo)致不能連接或者執(zhí)行你本地應(yīng)用程序。
? ?除了這,和其他C庫靜態(tài)連接產(chǎn)生任何用用程序和不和Bionic混合在Android平臺沒有任何問題,除非它動態(tài)加載了其他系統(tǒng)的類庫在運行期間。
? ?提供了什么:
? ? ?內(nèi)存管理 ?文件的輸入和輸出 ?字符串處理 機制 日期時間 進程控制 信號處理 socket通信 多線程 用戶和組 系統(tǒng)配置 命名服務(wù)開關(guān)
? 丟失了什么:
? ?正如上面提到的,被設(shè)計為Android平臺和調(diào)節(jié)為移動計算的。并不是每一個標準C庫被支持的。Android NDK文檔文件提供了一個完整完整丟失函數(shù)的列表;然而,這樣的信息在真正的頭文件可以被獲得的。Bionic頭文件位于平臺/android-<api-level>/arch-<architecture>/usr/include在這Android_NDK_HOME目錄下。
? ?每個頭文件在這個目錄包含定義的丟失的函數(shù)。列舉在stdio.h頭文件丟失的函數(shù),如下:
?#if 0 /* MISSING FROM BIONIC */
char ?*ctermid(char *);
char ?*cuserid(char *);
#endif /* MISSING */
如果遇見被用來關(guān)閉這些行在這頭文件,和相關(guān)的注釋指示包含的丟失函數(shù)的列表。除了這些列表外指示,這Android NDK文檔也陳述了函數(shù)同通過Bionic但是被實現(xiàn)僅僅作為stub,沒有任何或者功能性。
總結(jié)
以上是生活随笔為你收集整理的新的C库Bionic的介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TroubleShoot
- 下一篇: API内存操作