关于Android的.so文件

本文详细介绍了Android系统中的.so文件,包括CPU架构、ABI、查看apk中的.so方法、设备支持的ABI检测、SO库的安装加载以及优化策略。强调了支持64位架构的重要性,并建议提供CPU支持的最优SO库,避免因减少某些类型SO库导致性能下降或兼容性问题。同时提出了分包处理来减小APK体积。
摘要由CSDN通过智能技术生成

关于CPU架构

CPU有MIPS、ARM、X86三大架构。其中包括:
1、armeabi系列:属于ARM (A7、A9、A15、A53、A57) 包含:高通、麒麟(华为海思)、澎湃(小米)、联发科、猎户座(三星Exynos)
2、mips系列:属于MIPS ,多用在网关、猫、机顶盒等。代表:中国“龙芯”
3、x86系列:pc模拟器、Intel Atom系列处理器(英特尔放弃应用于手机、PC、平板以及可穿戴设备的Atom处理器)

Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起)。可以用命令cat /proc/cpuinfo查看手机CPU信息。

关于ABI

Android系统目前支持以下七种不同的ABI:armeabi,armeabi-v7a,x86,mips,arm64-v8a,mips64,x86_64。应用程序二进制接口(Application Binary Interface即ABI)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。

CPU架构与ABI的关系

在Android系统上,每一个CPU架构对应一个ABI,我们可以简单的理解为:

一种CPU架构 = 一种对应的ABI类型 =  一种对应类型的SO库

CPU架构与ABI的对应关系如下表所示:

CPU架构 对应ABI 厂商 位数 开始时间 SUPPORTED_ABIS 适用设备
ARMv5 armeabi AMR 32 2010以前 armeabi 早期的手机用的比较多
ARMv7 armeabi-v7a AMR 32 2010 armeabi-v7a,armeabi 2011年12月以后生产的大部分Android设备都使用它
x86 x86 Intel 32 2011 x86,armeabi-v7a,armeabi 平板、模拟器用得比较多
MIPS mips MIPS 32 2012 极少用于手机,忽略 极少用于手机,多用于网关、猫,可以忽略
ARMv8 arm64-v8a AMR 64 2014 arm64-v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值