新的C库Bionic的介绍

 Google的在创建一个新的C库代替使用存在GNU c库或者嵌入式的C库。有一下的原因:

   License:这glibc和uClibc在LGPL下是可获得的,这就限制了他们由所有的应用程序被使用。代替,Bionic在BSD的执照下发布的,一个高特许的版本版本,没有设置对于类库使用的任何限制。

   Speed:Bionic是被指定为移动计算。它被裁减去高效率的工作特别在有限的CPU周期和和手机硬件的内存有限。

   Size:Bionic被设计尽可能的简单。它提供在内核设施的轻量级的封装和很少的APIs,使与其他可选项使相比更小。这一章将覆盖这些APIs。

二进制兼容:

    尽管它是一个C标准库,Bionic并不是带有其他C库的二进制兼容。对象文件盒静态库相对于其他c库被产生不应该动态的和Bionic相连。这样导致不能连接或者执行你本地应用程序。

   除了这,和其他C库静态连接产生任何用用程序和不和Bionic混合在Android平台没有任何问题,除非它动态加载了其他系统的类库在运行期间。

   提供了什么:

     内存管理  文件的输入和输出  字符串处理 机制 日期时间 进程控制 信号处理 socket通信 多线程 用户和组 系统配置 命名服务开关

  丢失了什么:

   正如上面提到的,被设计为Android平台和调节为移动计算的。并不是每一个标准C库被支持的。Android NDK文档文件提供了一个完整完整丢失函数的列表;然而,这样的信息在真正的头文件可以被获得的。Bionic头文件位于平台/android-/arch-/usr/include在这Android_NDK_HOME目录下。

   每个头文件在这个目录包含定义的丢失的函数。列举在stdio.h头文件丢失的函数,如下:

 #if 0 /* MISSING FROM BIONIC */
char  *ctermid(char *);
char  *cuserid(char *);
#endif /* MISSING */

如果遇见被用来关闭这些行在这头文件,和相关的注释指示包含的丢失函数的列表。除了这些列表外指示,这Android NDK文档也陈述了函数同通过Bionic但是被实现仅仅作为stub,没有任何或者功能性。

你可能感兴趣的:(Bionic,API,Primer)