android的Bionic目录中为何还要实现C标准库?

2025-02-22 10:51:15
推荐回答(3个)
回答1:

- 采用BSD License,而不是glibc的GPL License;- 大小只有大约200k,比glibc差不多小一半,且比glibc更快;- 实现了一个更小、更快的pthread;- 提供了一些Android所需要的重要函数,如”getprop”, “LOGI”等;

回答2:

主要应该是电量优化吧,针对移动设备,省电用的!

回答3:

google自己搞的bionic libc来替代glibc想来是有原因的,本来glibc也是lgpl,应该也没有版权问题,但是系统调用的接口有限,google应该是用自己的bionic libc来暴露出更多的系统调用接口,系统调用不属于GPL,这样才有可能让上层有更大的权限去操作底层驱动,这样硬件厂商就可以将有关商业利益的代码放到HAL层(hardware abstraction layer),底层驱动层只要提供操作接口,这种代码在内核公开出来也无所谓,主要的业务逻辑仍然在HAL层以二进制或者库的形式存在,虽然放到了用户空间,但这才是正真的驱动,也正好避开了GPL的感染性,其实主要是显示先关的芯片有这个需求,google这一招太厉害