`
aigo
  • 浏览: 2537859 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

[Android]armeabi和armeabi-v7a 解释

阅读更多

 

原文:http://my.oschina.net/huangsz/blog/176344

 

ABI=Application Binary Interface

在我们android APK的根目录有一个 libs文件夹,此文件夹下包含了armeabi 和armeabi-v7a两个文件夹,我们的c代码编译成的本地库(各种.so)就会放在这两个文件夹其中的一个。那armeabi-v7a 与 armeabi有什么区别,都是什么意思呢?

armeabi和armeabi-v7a是表示cpu的类型,我们知道一般的手机或平板都是用arm的cpu(mips的就悲催的被忽视了),不同的cpu的特性不一样,armeabi就是针对普通的或旧的arm v5 cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。 
在android.mk里可配置以下宏:

TARGET_CPU_API := armeabi
APP_ABI := armeabi

当你编译时出现一些链接动态库的undefine错误,或你的apk运行时出现装载.so动态库错误时,不妨看一下这个cpu类型的配置是否有误。

现在还有x86的了,其实armeabi 、armeabi-v7a 和x86是编译 NDK 库时,可以使用三种支持的应用二进制接口(ABI):

  • ‘armeabi’ – 默认选项,将创建以基于 ARM v5TE 的设备为目标的库。 具有这种目标的浮点运算使用软件浮点运算。 使用此 ABI 创建的二进制代码将可以在所有 ARM 设备上运行。
  • ‘armeabi-v7a’ – 创建支持基于 ARM* v7 的设备的库,并将使用硬件 FPU 指令。
  • ‘x86’ – 生成的二进制代码可支持包含基于硬件的浮点运算的 IA-32 指令集。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics