专栏首页乱码三千Android系统目前支持CPU架构都有哪些

Android系统目前支持CPU架构都有哪些

7种CPU架构

  • armeabi (ARM v5):32位cpu 属于 第5代、第6代早期的ARM处理器
  • armeabi-v7a (ARM v7):32位cpu 属于 第7代的 ARM 处理器 从2010年起
  • arm64-v8a (ARM v8): 第8代、64位ARM处理器
  • x86 : 32位处理器 从2011年起
  • x86_64 : 64位处理器 从2014年起
  • MIPS : 32位处理器 从2012年起
  • MIPS64 : 64位处理器 从2014年起

兼容和文件读取顺序

arm64-v8a是可以向下兼容的,其下有armeabi-v7a,armeabi armeabi-v7a向下兼容armeabi

对于一个cpu是arm64-v8a架构的手机,它运行app时,进入jnilibs去读取库文件时,先看有没有arm64-v8a文件夹:

如果没有该文件夹,去找armeabi-v7a文件夹,如果没有,再去找armeabi文件夹,如果连这个文件夹也没有,就抛出异常 如果有arm64-v8a文件夹,那么就去找特定名称的.so文件,注意:如果没有找到,不会再往下(armeabi-v7a文件夹)找了,而是直接抛出异常

由于向下兼容的特性 高版本的设备可以使用低版本armeabi的so库, 但是低版本不支持高版本库, 这也就是为什么很多开发商包括微信只保留了armeabi的so库,从而兼容市面上所有的设备

只保留armeabi存在的问题

所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,因此似乎移除其他ABIs的.so文件是一个减少APK大小的好技巧。但事实上并不是:这不只影响到函数库的性能和兼容性

64位设备(arm64-v8a, x86_64, mips64)能够运行32位的函数库,但是以32位模式运行,在64位平台上运行32位版本的ART和Android组件,将丢失专为64位优化过的性能(ART,webview,media等等)

本文分享自微信公众号 - 乱码三千(infree6),作者:有瓣知识

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android NN API,谷歌意在收编各路诸侯?

    在过去的几年中,诸如智能手机和平板电脑之类的移动设备的计算能力得到了飞速增长,接近几年前主流台式机的水平。如果仅仅是运行普通的应用程序,那的确存在性能过剩。于是...

    云水木石
  • 测试开发工程师需要知道的 Android和iOS CPU架构基础知识

    CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型的CPU,下面是几个常见的类型:

    岛哥的质量效能笔记
  • Android之NDK开发初体验

    记得前年开始自己在项目中使用第三方so库的时候就接触NDK编程开发了,只不过哪个时候自己是输出了"Hello Wrold~!"。如今一年多的时间过去了,回头拾起...

    静默加载
  • 深入探索 Android 包瘦身(下)——终篇

    作者:jsonchao 链接:https://juejin.im/post/5e7ad1c0e51d450edc0cf053

    陈宇明
  • 【腾讯优图首度开源深度学习框架ncnn】主打手机端,同类cpu框架最快

    【新智元导读】 腾讯 AI 三大支柱之一的腾讯优图实验室公布了成立以来的第一个开源项目ncnn,这是一个为手机端极致优化的高性能神经网络前向计算框架,无第三方依...

    新智元
  • 全民k歌适配arm64-v8a方案

    导语 近年来,随着计算机硬件的不断发展,32位的旧架构程序的性能瓶颈越来越明显了,适配64位已经是业内公认的大势所趋,从工业化的大型商用软件到移动平台上的ap...

    QQ音乐技术团队
  • android Ndk JNI 入门

    相信很多人对于NDK 开发都是懵逼的,比如都知道把加密的逻辑以及密钥放在so文件中,但是你知道怎么生成so文件吗?你知道开发jni吗?你熟悉jni语法吗?怎么配...

    Anymarvel
  • Android的.so文件你需要知道那些知识

    .so文件的前世今生 早期的Android系统几乎只支持ARMv5的CPU架构,而现在它可以支持7种,几乎涵盖了市面上大部分的CPU架构。 Android系统目...

    xiangzhihong
  • FPGA Xilinx Zynq 系列(三十四)Zynq 上的操作系统介绍

    今天给大侠带来 FPGA Xilinx Zynq 系列 第三部分 Part C 操作系统 & 系统集成,第三部分是关于 Zynq SoC 开发的操作系统的,回顾...

    FPGA技术江湖
  • 深度学习框架机器学习的开源库TensorFlow

    程序你好
  • Android启动流程——1序言、bootloader引导与Linux启动

    前面讲解的很多内容都很抽象,所以本次系列决定"接点地气",准备开始讲解大家熟悉的Activity了,为了让我以及大家更好的理解Activity,我决定本系列...

    隔壁老李头
  • 说说Android项目中的armeabi,armeabi-v7a和x86

       这三者都表示的是CPU类型,早期的Android系统几乎只支持ARMv5的CPU架构,但是现在已经有7种了。ARMv5,ARMv7 (从2010年起),x...

    Zachary46
  • Android 中arm64-v8a、armeabi-v7a、armeabi、x86简介~

    LZ是一名96年Android小生,从14年9月培训出来到现在,差不多俩年多的时间,由于一些原因,没能好好把技术提升一下,实乃不该啊。

    HLQ_Struggle
  • 再谈Android动态链接库

    前不久,我们准备将自己开发的视频播放sdk提供给公司其他部门,在打包的时候,同事问了我一个问题,为什么我们打sdk的时候需要分别提供armeabi和arm64-...

    xiangzhihong
  • Android 引用第三方so文件

    应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内...

    剑行者
  • 【Go 语言社区】七牛首席布道师:Go不是在颠覆,就是在逆袭-转

    七牛首席布道师:Go不是在颠覆,就是在逆袭--转 文章来源:http://www.csdn.net/article/2014-07-21/2820743 七牛...

    李海彬
  • Android电源管理基础知识整理

    要理解第一个问题,得先从ACPI(高级配置与电源接口)说起,ACPI是一种规范(包含软件与硬件),用来供操作系统应用程序管理所有电源接口。

    233333
  • 杨老师课堂_安卓教程第一篇之入门

    杨校
  • 太强了!Android开发4年网易三面后拿下offer定薪25k*14.5,涨薪50%

    本人很愚笨,坚持梦想才是最重要的,最后你会得到应有的回报。 之前面经中的大神说道“重要的事情说三遍,心态最重要,心态最重要,心态最重要”。

    Android技术干货分享

扫码关注云+社区

领取腾讯云代金券