https://blog.csdn.net/yongyu_it/article/details/52574797 google 自己实现了一套libc 的库函数 比glibc 要小一些 占用内存也小。。 安卓的成功不是简简单单的。
Bionic简介
1、什么是Bionic?
Bionic是Android平台为C/C++开发者进行原生应用程序开发所提供的符合POSIX(可移植操作系统接口)标准的C库。
是Android操作系统BSD(UNIX操作系统中的一个分支)标准C库的衍生库。
Bionic提供了在Android平台上开发任何类型的功能性原生代码所需的最小构造集。
通俗地讲,Bionic(Bionic的头文件集)就是NDK的API
Bionic C库头文件在 %NDK_HOME%\platforms\android-<api-level>\arch-<architecture>\usr\include内。
2、其他的C标准库
只要是符合ANSI(美国国家标准学会) C标准的C库都可以叫做标准C库。
POSIX标准的C库是在ANSI标准的C库的基础上增加一些附加结构。
现有的著名的POSIX标准的C库有:GUN C库(glibc)和Embedded Linux C库(uClibc)。
注意,Bionic C库不以任何方式与其他标准C库二进制兼容,这意味着基于其他C库生成的二进制文件不应该与Bionic进行动态链接。
注意,虽然Android只提供Bionic C库,但是基于其他符合POSIX标准C库生成的应用,无可争议地可以在Android上面运行(因为Android本身是支持POSIX标准的)。
3、Bionic内容
Bionic提供了:C标准库宏、类型定义、函数,以及少数Android特有特性。
从功能角度Bionic提供了:
内存管理
文件输入/出
字符串操作
数学
日期和时间
进程控制
信号处理
网络套接字
多线程
用户和组
系统配置
命名服务切换