简而言之:armeabi 和 armeabi-v7a是针对不同CPU而建立的文件夹,armeabi是指的该so库用于ARM的通用CPU,而v7a的CPU支持硬件浮点运算。因此armeabi通用性强,但速度慢,而v7a能充分发挥cpu的性能,armeabi-v7a 应该是与AIR限定支持android2.2以上的条件有关。android2.2以上能让硬件发挥更大的作用,所以建议现在都可以选择将SO文件放到armeabi-v7a 文件夹下。

下面有篇详细的介绍:感谢原作者:http://www.shadowkong.com/archives/1530#comment-1358。

在ANE中如果SDK调用了so库,则需要把so库放到ANE下Android-ARM/lib/armeabi (调试模式)或者 armeabi-v7a(发行模式)下。

可以贴个ADT代码说明问题:

1
2
3
4
5
6
7
8
9
10
//m_configType.equals("apk") 是否是发行模式
//(hasCaptiveRuntime() 是否带运行时
 if((m_configType.equals("apk")) || (hasCaptiveRuntime()))
    {
      destApkDirectory = "lib/armeabi-v7a/";
    }
    else
    {
      destApkDirectory = "lib/armeabi/";
    }

而这个armeabi和armeabi-v7a究竟是什么意思?

有什么深意么?

为什么调试模式和发行模式adobe会选择不同的文件夹?

我在这篇记录下我对于这个小问题的理解。

  • armeabi与armeabi-v7a表示支持不同的CPU类型

armeabi是指的该so库用于ARM的通用CPU,而v7a的CPU支持硬件浮点运算。因此armeabi通用性强,但速度慢,而v7a能充分发挥v7a CPU的能力,在AIR打包APK调试模式adobe选择的是通用性强的armeabi模式。

  • android支持不同CPU的深层含义

首先从硬件支持方便来看,我们的adnroid设备目前为止大部分都是支持ARM芯片,(当然市面上此刻最新的android机器还支持intel等另外的几个芯片,例如intel最新的凌动项目芯片,就获得了android4.1的青睐)。从android版本与支持ARM硬件编码的程度来看:

起初android1.6:只支持armv4与armv5te指令集。

到了android2.0:增加了支持arm-vfp,armv6,armv6t2指令集。

到了android2.2:增加支持armv7-a指令集。

所以armeabi-v7a 应该是与AIR限定支持android2.2以上的条件有关。android2.2以上能让硬件发挥更大的作用。

  • 我项目中使用armeabi还是armeabi-v7a

对于AIR项目来说性能问题是最大的瓶颈,能优化一点就一点,所以如果接平台方SDK或者写ANE的时候使用到SO库,个人推荐全部放到armeabi-v7a下,而不要为了兼容放到armeabi。

关于Android中的armeabi 和armeabi-v7a相关推荐

  1. Android中libs目录下armeabi和armeabi-v7a的区别

    armeabi默认选项, 支持基于 ARM* v5TE 的设备 支持软浮点运算(不支持硬件辅助的浮点计算) 支持所有 ARM* 设备 armeabi-v7a 支持基于 ARM* v7 的设备 支持硬件 ...

  2. 如何查看Android手机CPU类型是armeabi,armeabi-v7a,还是arm64-v8a

    目录 1.查询手机cpu命令行: 2.架构介绍 1.查询手机cpu命令行: adb shell getprop ro.product.cpu.abi 2.架构介绍 早期的Android系统几乎只支持A ...

  3. Android中处理崩溃异常

    2019独角兽企业重金招聘Python工程师标准>>> 大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象 ...

  4. Android中的ABI

    Android中的ABI ABI是Application Binary Interface的缩写. ABI常表示两个程序模块之间的接口,且其中一个模块常为机器码级别的library或操作系统. ABI ...

  5. 【Android 安装包优化】p7zip 源码交叉编译 Android 平台可执行程序 ( 下载 p7zip 源码 | 交叉编译 Android 中使用 7z 可执行程序 )

    文章目录 一.下载 p7zip 源码 二.交叉编译 Android 中使用 7z 可执行程序 三.参考资料 一.下载 p7zip 源码 下载 7zip 源码 , 下载页面 https://source ...

  6. Android中集成Jpush实现推送消息通知与根据别名指定推送附示例代码下载

    场景 经常会有后台服务向Android推送消息通知的情况. 实现 首先在Android Studio中新建一个Android应用 在Project根目录的build.gradle中配置了jcenter ...

  7. Android中处理崩溃异常 (转)

    大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了 ...

  8. Android中JNI的使用方法

    Android中JNI的使用方法 首先看一下Android平台的框架图: 可以看到Android上层的Application和ApplicationFramework都是使用Java编写, 底层包括系 ...

  9. (转)Android中JNI编程的那些事儿

    Android中JNI编程的那些事儿 首先说明,Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++--即通过JNI的方式来使用本地(Na ...

  10. Android中集成第三方库的方法和问题

    Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...

最新文章

  1. 移动端网页乱象怎么破?搜狗搜索正在为行业建言
  2. 如何部署云服务器,保证应用高可用性,永不停机
  3. synchronousqueue场景_java并发队列之SynchronousQueue
  4. mysql创建读写账号_mysql创建读写账号及服务相关优化配置
  5. c++-内存管理-array allocator
  6. javascript --- [jsonp] script标签的妙用(绕过同源限制)
  7. xbox360fsd更新游戏封面_游戏类短视频创作指南
  8. 计算机网络面试知识点
  9. 网络TCp数据的传输设计(黏包处理)
  10. 福利 | 简历模板大放送
  11. java rpg对战_java实现模拟RPG格斗
  12. 【T3】将“恢复记账前状态”按钮放置到工作台,一直显示。
  13. win7旗舰版升级win10
  14. informix操作
  15. Fatal signal 11 (SIGSEGV) at 0x00000048 (code=1)
  16. 2017年中国软件业务收入报告新鲜出炉,华为以2178亿元连续16年蝉联榜首
  17. 关于Spring框架(官方文档)
  18. (三)Perl_列表与数组(元素访问、特殊索引$#、qw简写、列表赋值等)
  19. C语言占位符 格式占位符
  20. 汽车启动档位,份4个

热门文章

  1. Office2013邮件合并简单案例——批量生成导出PDF和Word
  2. 英雄联盟哪个服务器最稳定,LOL新人进哪个服务器比较好?当然最后一个啦!个个人善嘴又甜...
  3. Android Studio 新版本 Logcat 速查
  4. SolidWorks 突然不显示零件
  5. 基于springboot layui二手书交易平台源码
  6. 读书 |《金矿III:精益领导者的软实力》Lead with Respect: A Novel of Lean Practice
  7. 币圈牛熊你穿越了几个?这些都get到了吗?
  8. 新建了一个高质量技术交流群
  9. Mac浏览器无法上网但可以用微信等
  10. html手机单选框,手机移动网页制作:表单输入框、单选框、复选框