Android 的7种CPU架构

简介:

目前android支持如下7中CPU架构:

  • armeabi 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢(只支持armeabi)

  • armeabi-v7a 第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能(支持 armeabi 和 armeabi-v7a,目前大部分手机都是这个架构

  • arm64-v8a 第8代,64位,包含AArch32、AArch64两个执行状态对应32、64bit(支持 armeabi-v7a、armeabi 和 arm64-v8a)

  • *x86 intel 32位,一般用于平板(支持 armeabi(性能有所损耗) 和 x86)

  • x86_64 intel 64位,一般用于平板(支持 x86 和 x86_64)

  • mips 基本没见过(支持 mips)

  • mips64 基本没见过(支持 mips 和 mips_64)

Android是如何加载So库的

  • 程序对当前手机cpu架构(比如 armeabi-v7a)做了适配,那手机跑程序时候就直接在这个目录下找对应的so库,如果找不到就直接报错

  • 如果只对armeabi的手机cpu做适配,那么支持armeabi的手机都会去armeabi目录下找对应的so库

项目中如何适配

  • 如果适配不止一个cpu架构,比如armeabi、 armeabi-v7a 、arm64-v8a这三个,那么一定要确保三个目录中的so库数目一样;第三方库如果支持者提供这三个cpu架构的so库,那非常理想,对应放到目录就可以;

  • 如果适配的上面三个cpu架构,第三方库只提供了两个cpu(比如armeabi、 armeabi-v7a)的库,那也要提供的armeabi的so库,复制一份(armeabi或者armeabi-v7a的so库,因为arm64-v8a兼容armeabi 和 armeabi-v7a)到没有提供的arm64-v8a这个架构目录下;如果不这么做,当应用跑到arm64-v8a架构的手机上时,找不到对应的so库就会报错

  • 具体自己项目适配几种cpu架构,得看app性质,比如微信,主要考虑到兼容,让几乎所有手机都可以适配,另外也相对减少了apk的大小;而另外一个app,比如游戏或者一些对手机性能有要求的app,这种app就挑用户了,只适配到armeabi-v7a,因为目前主流手机都支持armeabi-v7a,就算app支持到只支持armeabi这种架构的手机,app也未必能运行的起来,体验也未必好,算是app放弃也这些用户吧,再说使用只支持armeabi这种架构的手机估计年纪也大了,也不会使用到这个app;

  • 如果只适配一种cpu架构,armeabi(都兼容,但性能有所损耗,如微信和qq)或者armeabi-v7a(目前大部分手机都支持这种cpu架构(王者荣耀));目前手头的app目前只支持armeabi,armeabi-v7a,但是现在apk包越来越大,后面也会考虑只支持一个cpu架构的方案(可以减少10M);

  • 如果app适配了armeabi、 armeabi-v7a 、arm64-v8a三种cpu架构,以我的手机mate9为例, mate9支持 armeabi、 armeabi-v7a 、arm64-v8a,那么app在找so文件时会从最新的一代的cpu 架构(arm64-v8a)找so文件,如果找不到会直接报错,不会再去armeabi-v7a 和armeabi里面找,一定要确保三个目录中的so库数目一样;如果适配armeabi、 armeabi-v7a,mate9手机上app在找so文件时会从armeabi-v7a找对应so,没有就报错;如果只适配一种,那么手机只要支持这种cpu架构,就会去这个文件夹下找对应的so,找不到就报错,如果手机不支持这种cpu架构就报错

具体适配的cpu架构,以gradle 里设置的支持的 ndk 为准:

 

ndk { abiFilters ‘armeabi,armeabi-v7a// , ‘arm64-v8a’, ‘x86’, ‘x86_64’ }

如何查看手机支持的cpu架构和app适配的cpu架构

下载App:Native Libs Monitor(豌豆荚上可以下载)

5f176df39438fe6d7576196ea9216c9c82ce4546

大公司如何适配的

微信(只适配armeabi)、qq(只适配armeabi)、王者荣耀(只适配armeabi-v7a)、百度地图(只适配armeabi)、大众点评(只适配armeabi)等,详细见下面Native Libs Monitor的截图 

b63b4359e2ad60c98a6efd7bae1d707181979411

如果本文对你有帮助的话,麻烦在左侧点个赞,谢谢支持!


原文发布时间为:2018-09-19

本文来自云栖社区合作伙伴“Android开发中文站”,了解相关信息可以关注“Android开发中文站”。


相关文章
|
3月前
|
安全 Android开发 iOS开发
深入探索Android与iOS的差异:从系统架构到用户体验
在当今的智能手机市场中,Android和iOS无疑是最受欢迎的两大操作系统。本文旨在探讨这两个平台之间的主要差异,包括它们的系统架构、开发环境、安全性、以及用户体验等方面。通过对比分析,我们可以更好地理解为何不同的用户群体可能会偏好其中一个平台,以及这些偏好背后的技术原因。
|
3月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
4月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
176 2
|
4月前
|
存储 前端开发 Java
Android MVVM架构模式下如何避免内存泄漏
Android采用MVVM架构开发项目,如何避免内存泄漏风险?怎样避免内存泄漏?
144 1
|
2月前
|
网络协议 Linux Android开发
深入探索Android系统架构与性能优化
本文旨在为读者提供一个全面的视角,以理解Android系统的架构及其关键组件。我们将探讨Android的发展历程、核心特性以及如何通过有效的策略来提升应用的性能和用户体验。本文不包含常规的技术细节,而是聚焦于系统架构层面的深入分析,以及针对开发者的实际优化建议。
119 21
|
2月前
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。
|
2月前
|
安全 Android开发 iOS开发
深入探索iOS与Android系统架构差异及其对开发者的影响
本文旨在通过对比分析iOS和Android两大移动操作系统的系统架构,探讨它们在设计理念、技术实现及开发者生态方面的差异。不同于常规摘要仅概述内容要点,本摘要将简要触及核心议题,为读者提供对两大平台架构特点的宏观理解,铺垫
|
3月前
|
存储 人工智能 编译器
【AI系统】CPU 指令集架构
本文介绍了指令集架构(ISA)的基本概念,探讨了CISC与RISC两种主要的指令集架构设计思路,分析了它们的优缺点及应用场景。文章还简述了ISA的历史发展,包括x86、ARM、MIPS、Alpha和RISC-V等常见架构的特点。最后,文章讨论了CPU的并行处理架构,如SISD、SIMD、MISD、MIMD和SIMT,并概述了这些架构在服务器、PC及嵌入式领域的应用情况。
238 5
|
3月前
|
IDE 安全 Android开发
深入探索Android与iOS操作系统的架构差异
本文旨在对比分析Android和iOS两大主流移动操作系统在架构设计上的根本差异。通过详细解读两者的系统架构、开发环境、以及安全性等方面,揭示它们各自的特点及优势,为开发者选择合适的平台提供参考。
|
3月前
|
Java Linux Android开发
深入探索Android系统架构:从Linux内核到应用层
本文将带领读者深入了解Android操作系统的复杂架构,从其基于Linux的内核到丰富多彩的应用层。我们将探讨Android的各个关键组件,包括硬件抽象层(HAL)、运行时环境、以及核心库等,揭示它们如何协同工作以支持广泛的设备和应用。通过本文,您将对Android系统的工作原理有一个全面的认识,理解其如何平衡开放性与安全性,以及如何在多样化的设备上提供一致的用户体验。

热门文章

最新文章

  • 1
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
    21
  • 2
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    27
  • 3
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    29
  • 4
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    40
  • 5
    Android历史版本与APK文件结构
    126
  • 6
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    33
  • 7
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    27
  • 8
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
    60
  • 9
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    37
  • 10
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    73