android bionic c 对比 gnu c

Bionic 是一个BSD标准的C库,用在android平台上面的。

Android 是一个不完全开源的系统。 android的kernel使用的是基于linux的,linux使用的是GPL2的开源标准, 但是这种标准具备传染性,使用这个标注的软件不能收费。

android的设计是希望第三方的公司帮忙开发应用程序的。是需要商业话盈利的,所以为啦绕开GPL2标准,而使用略BSD的标准。因为这使得它们既可以使用开源软件,又不用向开源社区公开对软件所做的修改。

Bionic的优势:

  1.   由于删除头文件中许多的注释文件,代码段占用的空间非常少,早期的时候,bionic只要200Kb, 而gnu libc需要400kb.
  2.    BSD协议优势
  3.  可以运行在更低的CPU运转速度,大部分消费类电子都有待机的问题,和低功耗的模式,需要降频

Bionic限制:

  1. 不支持C++ exception
  2. 不支持C++ STL模板编程

Bionic Pthread:

  1.  不支持pthread_cancel
  2.  pthread_once 初始化的时候没有C++ 异常抛出
  3.  pthread_atfork()  

其他:

  1.  需要使用unicode编码
  2.  ABI bugs

TODO 以后有新的在这补充

原文地址:https://www.cnblogs.com/biglucky/p/6343794.html