前
Google的策略是不会加入Native
C++这样的本地语言开发,除了安全性考虑似乎这样可以有效的保证平台的控制权限,很多性能敏感的程序只有通过和Google合作加入到系统底层才可以,
用户最终只能在Dalvik层做开发。虽然完全开源,但最终的APK文件必需经过签名才可以安装到Android手机上,这样可以有效的排挤竞争对手,目
前很多浏览器厂商已经发现这个严重的问题,比如Firefox、Opera已经无法在Android平台上发展了,无论Java代码优化、算法再精炼只能
在Dalvik VM上运行,而Android自带的浏览器Chrome
Lite使用的webkit内核是C++编写的库文件,提供Java接口上层调用,所以最终这个平台的限制还是很大的。
Android所用的Toolchain(即交叉编译工具链)可从下面的网址下载:
http://android.kernel.org/pub/android-toolchain-20081019.tar.bz2
。
如果下载了完整的Android项目的源代码,则可以在“<your_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,而不是glibc的GPL License;
- 大小只有大约200k,比glibc差不多小一半,且比glibc更快;
- 实现了一个更小、更快的pthread;
- 提供了一些Android所需要的重要函数,如”getprop”, “LOGI”等;
- 不完全支持POSIX标准,比如C++ exceptions,wide chars等;
- 不提供libthread_db 和 libm的实现
另外,Android中所用的其他一些二进制工具也比较特殊:
- 加载动态库时使用的是/system/bin/linker而不是常用的/lib/ld.so;
- prelink工具不是常用的prelink而是apriori,其源代码位于” <your_android>/build/tools/apriori”
- strip
工具也没有采用常用的strip,即“<your_android>/prebuilt/linux-x86/toolchain/arm-
eabi-4.2.1/bin”目录下的arm-eabi-strip,而是位于<your_android>/out/host
/linux-x86/bin/的soslim工具。
相关推荐
二进制数组转换为二进制字符串 将二进制数组转换为十六进制字符串 将十六进制转换为二进制字节数组 将十六进制转换为二进制字符串
AXMLPrinter2 反编译AndroidManifest.xml二进制文件工具 AXMLEditor 修改AndroidManifest.xml二进制文件工具 ManifestEditor 修改AndroidManifest.xml二进制文件工具 baksmali dex转smali工具 smali smali转dex工具 ...
本文件用来修改二进制文件AndroidManifest.xml的内容!!!
Socket,蓝牙等二进制数据处理工具,可以把Object里的所有字段值转化成二进制值,然后拼起 来,形成一个二进制数据包,并且可以把二进制数据流填充到实体对象进,形成了序列化与反序列化的工具集
android 实现root 需要的su,su.pie 二进制文件,android 开发过程中程序很多时候免不了需要对系统目录下的内容进行操作,虽然android的内核是linux系统,但是在linux中却换到root下的方式是sudo root的方式,但是在...
su&busybox;二进制文件 AndroidRoot工具
此工具用于修改AndroidManifest二进制文件。比如,更改Manifest文件中的app包名,版本号,更改或新增app入口Application的类名,更改或新增debuggable的属性,增加usesPermission标签,增加meta-data标签等。 同时,...
NULL 博文链接:https://flycatdeng.iteye.com/blog/2125081
用于逆向工程第三方,封闭,二进制Android应用程序的工具。它可以将资源解码为几乎原始的形式,并在进行一些修改后重建它们。它还使使用应用程序更容易,因为文件结构和一些重复性任务(如构建apk等)的自动化等项目...
这个工程里提供了一个工具类,是提供BCD码与String的互相转换的,有需要的可以下载
本地二进制用于测试Android电话的Rowhammer bug
android 读写文件的工具类,对读写操作进行了封装。
安卓系统的su二进制源代码和root工具用的su二进制源码。主要可以用来对比学习,了解原生的和ROOTed二者的授权机制是怎样的具体实现。
Androidmanifest二进制文件修改工具C语言源码,可在Windows、Linux下编译使用,可批量修改同名tag的统一属性值等
该脚本在Termux中安装和配置有用的二进制文件和工具。 安装二进制文件: 包装:tmux 说明:终端多路复用器 包装:wget 说明:用于使用HTTP,HTTPS和FTP检索文件的命令行工具 包:文件 说明:命令行工具,可通过...
Android代码仲裁器介绍根据查找安全漏洞: ://find-sec-bugs.github.io/改写,删除其中跟Android突破无关的漏洞,保留与Android相关的,同时增加其他一些检测项,从而形成针对Android的源码审计工具。同时将检测结果...
读者阅读器 用于读取和创建扩展文件的Java工具(Android不透明二进制Blob OBB)。 该工具可以在Android项目内部使用。
ffmpeg_for_android a toolkit to build customize ffmpeg binary for android with ndk-r10 ##Author ##使用指南 下载ndk-r10 配置build-android.sh中的NDK_ROOT变量 执行脚本build-android.sh 在ffmpeg_for_...
新版本的RottenPotato作为C DLL和独立的C 二进制文件 - 不需要meterpreter或其他工具。
android dx工具 备用 dx工具(android将jar包转成dex格式二进制jar包工具)