android的C库
2010年09月14日
不同于 GUN LIBC, android的c库,是google基于BSD C 库移植过来的,支持Linux 内核的重要实现,包括 系统调用, 动态链接,线程等等。
这些代码位于:
./bionic
目录结构如下:
cuigang@cui:~/android/androidsrc/bionic$ tree -L 2
.
|-- Android.mk
|-- CleanSpec.mk
|-- MAINTAINERS
|-- libc
| |-- Android.mk
| |-- CAVEATS
| |-- Jamfile
| |-- MODULE_LICENSE_BSD
| |-- NOTICE
| |-- README
| |-- SYSCALLS.TXT
| |-- arch-arm
| |-- arch-sh
| |-- arch-x86
| |-- bionic
| |-- docs
| |-- include
| |-- inet
| |-- kernel
| |-- netbsd
| |-- private
| |-- regex
| |-- stdio
| |-- stdlib
| |-- string
| |-- tools
| |-- tzcode
| |-- unistd
| `-- zoneinfo
|-- libdl
| |-- Android.mk
| |-- MODULE_LICENSE_BSD
| |-- NOTICE
| |-- arch-sh
| |-- dltest.c
| `-- libdl.c
|-- libm
| |-- Android.mk
| |-- MODULE_LICENSE_BSD_LIKE
| |-- Makefile-orig
| |-- NOTICE
| |-- alpha
| |-- amd64
| |-- arm
| |-- bsdsrc
| |-- fpclassify.c
| |-- i386
| |-- i387
| |-- ia64
| |-- include
| |-- isinf.c
| |-- man
| |-- powerpc
| |-- sh
| |-- sparc64
| `-- src
|-- libstdc++
| |-- Android.mk
| |-- MODULE_LICENSE_BSD
| |-- NOTICE
| |-- include
| `-- src
|-- libthread_db
| |-- Android.mk
| |-- MODULE_LICENSE_BSD
| |-- NOTICE
| |-- include
| `-- libthread_db.c
`-- linker
|-- Android.mk
|-- MODULE_LICENSE_APACHE2
|-- NOTICE
|-- README.TXT
|-- arch
|-- ba.c
|-- ba.h
|-- debugger.c
|-- dlfcn.c
|-- linker.c
|-- linker.h
|-- linker_debug.h
|-- linker_format.c
|-- linker_format.h
`-- rt.c
代码的实现包含了依赖于处理器架构的部分。
编译后的obj文件可以在
out/target/product/generic/obj/lib 找到
cuigang@cui:~/android/androidsrc/out/target/produc t/generic/obj/lib$ file ./libc.so
./libc.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped
2010年09月14日
不同于 GUN LIBC, android的c库,是google基于BSD C 库移植过来的,支持Linux 内核的重要实现,包括 系统调用, 动态链接,线程等等。
这些代码位于:
./bionic
目录结构如下:
cuigang@cui:~/android/androidsrc/bionic$ tree -L 2
.
|-- Android.mk
|-- CleanSpec.mk
|-- MAINTAINERS
|-- libc
| |-- Android.mk
| |-- CAVEATS
| |-- Jamfile
| |-- MODULE_LICENSE_BSD
| |-- NOTICE
| |-- README
| |-- SYSCALLS.TXT
| |-- arch-arm
| |-- arch-sh
| |-- arch-x86
| |-- bionic
| |-- docs
| |-- include
| |-- inet
| |-- kernel
| |-- netbsd
| |-- private
| |-- regex
| |-- stdio
| |-- stdlib
| |-- string
| |-- tools
| |-- tzcode
| |-- unistd
| `-- zoneinfo
|-- libdl
| |-- Android.mk
| |-- MODULE_LICENSE_BSD
| |-- NOTICE
| |-- arch-sh
| |-- dltest.c
| `-- libdl.c
|-- libm
| |-- Android.mk
| |-- MODULE_LICENSE_BSD_LIKE
| |-- Makefile-orig
| |-- NOTICE
| |-- alpha
| |-- amd64
| |-- arm
| |-- bsdsrc
| |-- fpclassify.c
| |-- i386
| |-- i387
| |-- ia64
| |-- include
| |-- isinf.c
| |-- man
| |-- powerpc
| |-- sh
| |-- sparc64
| `-- src
|-- libstdc++
| |-- Android.mk
| |-- MODULE_LICENSE_BSD
| |-- NOTICE
| |-- include
| `-- src
|-- libthread_db
| |-- Android.mk
| |-- MODULE_LICENSE_BSD
| |-- NOTICE
| |-- include
| `-- libthread_db.c
`-- linker
|-- Android.mk
|-- MODULE_LICENSE_APACHE2
|-- NOTICE
|-- README.TXT
|-- arch
|-- ba.c
|-- ba.h
|-- debugger.c
|-- dlfcn.c
|-- linker.c
|-- linker.h
|-- linker_debug.h
|-- linker_format.c
|-- linker_format.h
`-- rt.c
代码的实现包含了依赖于处理器架构的部分。
编译后的obj文件可以在
out/target/product/generic/obj/lib 找到
cuigang@cui:~/android/androidsrc/out/target/produc t/generic/obj/lib$ file ./libc.so
./libc.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, stripped