目前Google的策略是不会加入Native C++这样的本地语言开发,除了安全性考虑似乎这样可以有效的保证平台的控制权限,很多性能敏感的程序只有通过和Google合作加入到系统底层才可以,用户最终只能在Dalvik层做开发。虽然完全开源,但最终的APK文件必需经过签名才可以安装到Android手机上,这样可以有效的排挤竞争对手,目前很多浏览器厂商已经发现这个严重的问题,比如Firefox、Opera已经无法在Android平台上发展了,无论Java代码优化、算法再精炼只能在Dalvik VM上运行,而Android自带的浏览器Chrome Lite使用的webkit内核是C++编写的库文件,提供Java接口上层调用,所以最终这个平台的限制还是很大的。
Android所用的Toolchain(即交叉编译工具链)可从下面的网址下载:
。如果下载了完整的Android项目的源代码,则可以在“
Android并没有采用glibc作为C库,而是采用了Google自己开发的Bionic Libc,它的官方Toolchain也是基于Bionic Libc而并非glibc的。这使得使用或移植其他Toolchain来用于Android要比较麻烦:在Google公布用于Android的官方Toolchain之前,多数的Android爱好者使用的Toolchain是在 下载的一个通用的Toolchain,它用来编译和移植Android 的Linux内核是可行的,因为内核并不需要C库,但是开发Android的应用程序时,直接采用或者移植其他的Toolchain都比较麻烦,其他Toolchain编译的应用程序只能采用静态编译的方式才能运行于Android模拟器中,这显然是实际开发中所不能接受的方式。目前尚没有看到说明成功移植其他交叉编译器来编译Android应用程序的资料。
与glibc相比,Bionic Libc有如下一些特点:
-
-
-
-
-
-
另外,Android中所用的其他一些二进制工具也比较特殊:
-
-
-