android bionic c 对比 gnu c
Bionic 是一个BSD标准的C库,用在android平台上面的。
Android 是一个不完全开源的系统。 android的kernel使用的是基于linux的,linux使用的是GPL2的开源标准, 但是这种标准具备传染性,使用这个标注的软件不能收费。
android的设计是希望第三方的公司帮忙开发应用程序的。是需要商业话盈利的,所以为啦绕开GPL2标准,而使用略BSD的标准。因为这使得它们既可以使用开源软件,又不用向开源社区公开对软件所做的修改。
Bionic的优势:
- 由于删除头文件中许多的注释文件,代码段占用的空间非常少,早期的时候,bionic只要200Kb, 而gnu libc需要400kb.
- BSD协议优势
- 可以运行在更低的CPU运转速度,大部分消费类电子都有待机的问题,和低功耗的模式,需要降频
Bionic限制:
- 不支持C++ exception
- 不支持C++ STL模板编程
Bionic Pthread:
- 不支持pthread_cancel
- pthread_once 初始化的时候没有C++ 异常抛出
- pthread_atfork()
其他:
- 需要使用unicode编码
- ABI bugs
TODO 以后有新的在这补充