在我們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

現在還有x86的了,其實armeabi 、armeabi-v7a 和x86是編譯 NDK 庫時,可以使用三種支持的應用二進制接口(ABI):

‘armeabi’ – 默認選項,將創建以基於 ARM* v5TE 的設備為目標的庫。 具有這種目標的浮點運算使用軟件浮點運算。 使用此 ABI 創建的二進制代碼將可以在所有 ARM* 設備上運行。

‘armeabi-v7a’ – 創建支持基於 ARM* v7 的設備的庫,並將使用硬件 FPU 指令。

‘x86’ – 生成的二進制代碼可支持包含基於硬件的浮點運算的 IA-32 指令集。

什么是 NEON?

NEON* 是一種 ARM* 技術,主要用於多媒體(智能手機和高清電視等)應用。 ARM* 表示其基於 128 位 SIMD 引擎的技術 – ARM* Cortex*(一種串行擴展)—可提供比 ARM* v5 http://www.arm.com/products/processors/technologies/neon.php

此處的關鍵理念為,各寄存器被“堆積”成一個矢量,其中每一個寄存器均為一個元素,並與其它元素的數據類型相匹配。 在此基礎之上,運算在管道內執行,因而這一方法被稱作 Packed SIMD。

SSE: 英特爾推出的類似 NEON 的工具

SSE 指面向英特爾架構(IA)的SIMD 流指令擴展。 目前,英特爾® 凌動™ 最高支持 SSSE3(補充 SIMD 流指令擴展 3)。 凌動™ 暫不支持 SSE4.x。后者也是一個 128 位引擎,用於打包浮點數據。 這一執行模式開始於 MMX 技術。SSx 是較新的技術,取代了 MMX。。 如欲了解詳細信息,請參閱英特爾《IA-32 和 IA-64 軟件開發人員手冊》中的“第一卷: 基礎架構”部分。網址為:http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html。 目前,SSE 概述部分在 5.5 節。 它提供 SSE、SSE2、SSE3 和 SSSE3 的操作碼。注意,數據運算通常會涉及到處理基於精度的打包浮點數值;並且需要在 XMM 寄存器之間,或在這些寄存器與內存之間批量傳輸數據。 XMM 寄存器主要用於取代 MMX 寄存器。

android armeabi和x86,Android下不同CPU類型:armeabi和armeabi-v7a以及mips和x86相关推荐

  1. X86 android r7 z3735,安卓工业平板电脑android系统下各大主流CPU性能大对比分析

    原标题:安卓工业平板电脑android系统下各大主流CPU性能大对比分析 针对工控领域客户在选择工业平板电脑时的困惑,南京研维组织多位业内专家,为大家连续推出10期工业平板电脑的选型要点分析,本文作为 ...

  2. 【Android 安装包优化】动态库打包配置 ( “armeabi-v7a“, “arm64-v8a“, “x86“, “x86_64“ APK 打包 CPU 指令集配置 | NDK 完整配置参考 )

    文章目录 一.动态库打包配置 二.NDK 完整配置参考 三.参考资料 一.动态库打包配置 在 build.gradle 构建脚本中 , 配置 ndk 编译的动态库 CPU 架构类型 ; 在 " ...

  3. Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)

    默认情况下,Android和Flutter打包出来的Apk都是包含了所有架构的,这样打出来的apk体积相对于单架构的apk有点大. 这时,我们就需要分别打出不同的架构包. 架构 一般来说,x86代表3 ...

  4. Android下设置CPU核心数和频率

    现在的Android手机双核.四核变得非常普遍,同时CPU频率经常轻松上2G,功耗肯定会显著增加.而大多数的ARM架构的CPU采用的是对称多处理(SMP)的方式处理多CPU.这就意味着每个CPU核心是 ...

  5. android vlc eclipse,在Eclipse下导入vlc-android并编译

    在Ubuntu14.04下载好了VLC的源代码后,VLC的Eclipseproject存放在"vlc-android"文件夹 root@dzt-VirtualBox:/home/d ...

  6. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

  7. android源码中的ndk,如何在不需要Android操作系统源代码的情况下在Android NDK中创建新的NativeWindow?...

    我想编译一个Android OpenGL控制台应用程序,您可以直接从控制台启动Android x86或从Android x86 GUI中的Android终端应用程序运行.如何在不需要Android操作 ...

  8. 面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像许可协议

    英特尔公司面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像的内部评估许可协议 此<内部评估许可协议>(以下简称"协议") 的订立双方为 ...

  9. 英特尔公司面向 Android 软件开发套件(SDK)4.3 的 x86 Android* 系统映像的内部评估许可协议...

    此<内部评估许可协议>(以下简称"协议") 的订立双方为英特尔与贵方(作为开发人员个人或法律实体 - 下文认定为"接收方"). 英特尔应根据< ...

最新文章

  1. Linux系统下命令行连接蓝牙设备
  2. kafka window 启动_Apache Flink结合Kafka构建端到端的Exactly-Once处理
  3. “Lephone.Data.DbEntry”的类型初始值设定项引发异常。(DbEntry.net3.9)
  4. 字符串,那些你不知道的事 1
  5. 【CUDA学习】计时方法
  6. 学计算机用多大的u盘合适,u盘装系统需要多大的u盘|装系统需要多大的U盘
  7. Linux_ubuntu16.04 无线/Wifi 上网速度慢的解决方法
  8. seo入门必备[转载]
  9. 计算机通信系统分哪两类,通信系统的组成(数字通信系统由哪几部分组成)
  10. Qt安装与使用(小白专用教程)
  11. 市场调研中的定性/定量分析
  12. 简单一步解决网页内容无法复制
  13. 金融科技——预测银行贷款
  14. 【Java例题】3.6 计算arcsin(x)的值
  15. 微信绑定的卡服务器,微信将迎来重大更新,微信绑定银行卡的用户请注意!建议进行使用...
  16. 让对方计算机死机的代码,微信让对方死机代码是什么?一串代码卡死微信
  17. docker 简单教程
  18. 新手程序员首份工作月薪三千,网友:3000元?你是在丢码农的脸吗
  19. namenode和datanode工作机制_NameNode与DataNode的工作原理剖析
  20. 整车模型系列之变速器模型的建立

热门文章

  1. Linux批量加连续端口映射,批量端口映射
  2. B. 智能运维 --- 质量保障 --- 根因分析
  3. java 删除服务器文件(linux)
  4. mysql my.init
  5. 记录winform 点击单元格自动切换英文输入法的问题
  6. [毕业设计]2022-2023年最新最全计算机专业毕设选题推荐汇总
  7. elementui form表单校验不通过问题
  8. kepware怎么读modbus/tcp数据_kepware怎么选择驱动?它是怎么与下位机进行通讯的?...
  9. Android平台GB28181设备接入端语音广播支持PS格式
  10. js-实现微信聊天界面