在Android项目中,我们可能经常会使用到动态库文件(.so)。
通常,我们会在jniLibs下,放动态库文件,首先会有一个或者几个文件夹。
比如:armeabi、armeabi-v7a、arm64-v8a。这些文件夹名称是固定的,
那么这些名称分别代表什么意思呢?
其实这些是ABI(应用程序二进制接口),它们定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上。

armeabi—>ARM V5的CPU架构
armeabi-v7a—>ARM V7的CPU架构(支持硬件浮点运算)
arm64-v8a—>64位的ARM处理器

其中,armeabi和armeabi-v7a都是对应32位处理器的手机,而arm64-v8a是对应64位处理器的手机。

arm64-v8a向下兼容armeabi-v7a和armeabi。armeabi-v7a向下兼容armeabi。
对于一个CPU是64ARM架构的手机,它运行APP时,进入jniLibs去读取动态库文件时,先看有没有arm64-v8a文件夹,如果没有,就去找armeabi-v7a文件夹,如果还没有,就去找armeabi文件夹,如果连这个文件夹也没有,就抛出异常。如果有arm64-v8a文件夹,那么就去该文件夹下找对应的动态库文件,如果没有找到,不会再往下(armeabi-v7a)找了,而是抛出异常。

放动态库文件时,两个考虑因素:
一、兼容性和性能
二、APK体积

Android的armeabi、armeabi-v7a和arm64-v8a相关推荐

  1. armeabi v5 v7a v8a x86对应的so库详解

    ABI:应用程序二进制接口,Application Binary Interface. armeabi-v7a: 针对有浮点运算或高级扩展功能的arm v7 cpu,32位ARM设备.第7代及以上的 ...

  2. 关于Android中的armeabi 和armeabi-v7a

    简而言之:armeabi 和 armeabi-v7a是针对不同CPU而建立的文件夹,armeabi是指的该so库用于ARM的通用CPU,而v7a的CPU支持硬件浮点运算.因此armeabi通用性强,但 ...

  3. Android的Crash崩溃解决方案-Bugly的使用

    我们在开发过程中,经常会遇到程序闪退,但是Eclipse的Consle和Logcat又没有错误提示,或者是只有用的时间长了才会出现的偶然崩溃,这种就很难修复bug,也严重影响用户体验,用户分分钟卸载. ...

  4. Android 适配 64 位架构

    Android 适配 64 位架构 原文地址 https://juejin.cn/post/6964737926617890853 背景 64位的应用性能更好,也能运行在未来仅支持 64 位架构的设备 ...

  5. Android 的7种CPU架构

    目前android支持如下7中CPU架构: armeabi 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢(只支持armeabi) armeabi-v7a 第7代 A ...

  6. ARM32/ARM64函数调用规则

    1.ARM32函数调用约定 http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042f/IHI0042F_aapcs.pdf 2.ARM64函数 ...

  7. 将公司的主要项目从eclipse迁移到android studio for mac环境(1)

    上星期,我决定要解决这个问题.理由如下: 3个月之前,我已经投入一段时间要做好这个迁移工作,直到最后,我发现能够安装了,但是运行不了,这个过程也看不到bugly上传,在找不到原因的情况下,我放弃了. ...

  8. Android踩坑之 couldnt find libClingSDK.so

    Android踩坑之couldn't find "libClingSDK.so" 在android开发中一些涉及到硬件级的API需要引入第三方的sdk,通常都是一个jar包搭配一个 ...

  9. 科学收集并分析Android用户敏感信息实战

    前言 作为一名Android开发者,经常会接到项目经理提出的收集用户信息的需求,而且对于普通开发者来说,也需要收集一些真实用户的信息来辅助开发或者进行优化.在这里简单的记录一下我在做开发的过程中做过的 ...

  10. 【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( Application.mk | APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 下载 7zip 源码 , 下载页面 https://sourceforge.net/projects/p7zip/files/ , 解压源码 , 进 ...

最新文章

  1. Spring Boot数据库操作原理及整合druid数据源和mybatis
  2. leecode-8字符串转化为整数C版
  3. DBCC--SQLPERF
  4. python+pygame 最强大脑联动归位游戏
  5. 对于高等代数一下比较基础的概念的认识
  6. 【163】VS2022调试通过海康明眸门禁报警事件中的报警布防C++示例代码
  7. Mybatis 自定义自动分页
  8. android手机紧急快捷键,常用手机指令(手机快捷键)及呼叫转移快捷指令
  9. StructedStreaming Kafka 排错(AbstractCoordinator: Marking the coordinator *dead for grou
  10. c语言中 241错误式什么意思,Qt error: stray '\241' in program
  11. 爬虫英雄联盟官网的全英雄介绍和技能介绍
  12. 计算机前置usb应用,usb前面不能用,详细教您解决电脑前置USB接口不能使用
  13. matlab 识别一维条形码 代码,matlab一维条形码码字识别程序.doc
  14. 给水管网漏损控制策略国内外差异与思考
  15. 将SQL导入JAVA的后续操作
  16. 怎么去面试测试工程师?
  17. php 查询数据表第2条,PHP 连接 MySQL 数据库的连接函数 mysql_connect 的第二个参数是( )。...
  18. android桌面悬浮窗,Android桌面悬浮窗
  19. proteus仿真-单片机-超声波测距报警
  20. string/string.h/cstring头文件的区别摘要

热门文章

  1. 页面渲染之回流与重绘讲解
  2. No qualifying bean of type ‘com.alibaba.dubbo.config.ApplicationConfig‘ available: expected at least
  3. Knockoutjs——checkbox全选
  4. excel文档关闭时不小心点了不保存???老铁别扎心以下方法可以恢复!!!
  5. fastdfs nginx 文件跨域访问
  6. 【论文写作】如何表示比较关系, compare to OR compare with?
  7. Fiddler实现iPhone手机抓包
  8. 刘勇智:一码通缺陷分析与架构设计方案丨声网开发者创业讲堂 Vol.02
  9. QTableView 代码选择高亮某行
  10. Java第五课:类和对象