Android所用的Toolchain(即交叉编译工具链)可从下面的网址下载:

http://android.kernel.org/pub/android-toolchain-20081019.tar.bz2。如果下载了完整的Android项目的源代码,则可以在“/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin”目录下找到交叉编译工具,比如Android所用的arm-eabi-gcc-4.2.1

Android并没有采用glibc作为C库,而是采用了Google自己开发的Bionic Libc,它的官方Toolchain也是基于Bionic Libc而并非glibc的。这使得使用或移植其他Toolchain来用于Android要比较麻烦:在Google公布用于Android的官方Toolchain之前,多数的Android爱好者使用的Toolchain是在http://www.codesourcery.com/gnu_toolchains/arm/download.html 下载的一个通用的Toolchain,它用来编译和移植Android Linux内核是可行的,因为内核并不需要C库,但是开发Android的应用程序时,直接采用或者移植其他的Toolchain都比较麻烦,其他Toolchain编译的应用程序只能采用静态编译的方式才能运行于Android模拟器中,这显然是实际开发中所不能接受的方式。目前尚没有看到说明成功移植其他交叉编译器来编译Android应用程序的资料。

glibc相比,Bionic Libc有如下一些特点:

-          采用BSD License,而不是glibcGPL License

-          大小只有大约200k,比glibc差不多小一半,且比glibc更快;

-          实现了一个更小、更快的pthread

-          提供了一些Android所需要的重要函数,如”getprop”, “LOGI”等;

-          不完全支持POSIX标准,比如C++ exceptionswide chars等;

-          不提供libthread_db libm的实现

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

另外,Android中所用的其他一些二进制工具也比较特殊:

-          加载动态库时使用的是/system/bin/linker而不是常用的/lib/ld.so;

-          prelink工具不是常用的prelink而是apriori,其源代码位于/build/tools/apriori”

-          strip工具也没有采用常用的strip,即“/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin”目录下的arm-eabi-strip,而是位于/out/host/linux-x86/bin/soslim工具。

 

 

更多相关文章

  1. unsupported dynamic reloc R_ARM_REL32 AND hidden symbol '__d
  2. Android(安卓)Studio1.5 配置Android(安卓)annotations
  3. 【Android应用开发】Android(安卓)Studio 简介 (Android(安卓)St
  4. Windows平台上编译OpenCV的Android版本
  5. Android模块编译:m/mm/mmm命令
  6. WIFI移植手记
  7. android ramdisk
  8. android bluetooth 移植相关注意事项
  9. Android基础知识总结

随机推荐

  1. android ANR分析与如何处理
  2. Android 取得手机屏幕大小
  3. Wifi学习
  4. 【Android(安卓)系统开发】使用 Source I
  5. android OTA 升级优化之一: recovery支持
  6. Android的从Linux启动
  7. Android(安卓)数据库 大量插入 事务开启
  8. Gradle 修改 Maven 仓库地址
  9. android recovery.img定制之recovery.fst
  10. Android 5.0上动态布局层级覆盖问题