守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 765|回复: 0

[Android] android的armeabi和armeabi-v7a

[复制链接]
  • TA的每日心情
    擦汗
    2018-4-10 15:18
  • 签到天数: 447 天

    [LV.9]以坛为家II

    1742

    主题

    2094

    帖子

    13万

    积分

    超级版主

    Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

    威望
    562
    贡献
    29
    金币
    51723
    钢镚
    1422

    开源英雄守望者

    发表于 2015-1-19 10:32:58 | 显示全部楼层 |阅读模式

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

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

    1. //m_configType.equals("apk") 是否是发行模式
    2. //(hasCaptiveRuntime() 是否带运行时
    3. if ((m_configType.equals("apk")) || (hasCaptiveRuntime()))
    4.     {
    5.       destApkDirectory = "lib/armeabi-v7a/";
    6.     }
    7.     else
    8.     {
    9.       destApkDirectory = "lib/armeabi/";
    10.     }
    复制代码
    而这个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。-EOF-


    本文来自:http://shadowkong.com/archives/1530


    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-9-24 16:38 , Processed in 0.043001 second(s), 37 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表