Android开发中jni目录中arm-v64,armeabi-v7a,armeabi,x86,x86_64文件夹的意义

本文介绍了Android系统支持的不同CPU架构及其对应的ABI,如armeabi、armeabi-v7a、arm64-v8a、x86、x86_64。说明了每个ABI的兼容性,并指出如何减少APK体积,同时保持兼容性和性能。通常,只保留armeabi-v7a即可兼容大多数现代设备,但需注意缺少其他ABI支持可能导致的应用崩溃问题。解决方案是在build.gradle中明确指定保留的ABI类型。
摘要由CSDN通过智能技术生成

我们在开发应用的时候,尤其是加密算法,音视频编解码等时,会需要引入so库,文档上就会让我们创建arm-v64,armeabi-v7a,armeabi等文件夹,如下:

这里写图片描述

目前Android系统主持7种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年起),MIPs(从2012年起),ARMv8,MIPs64和x86-64(从2014年起),每一种都关联着一个相应的ABI。应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集、内存对齐到可用的系统函数库。ABI和CPU的关系

  • 很多设备都支持多于一种的ABI
  • 当一个应用安装到设备上,只有该设备支持的CPU架构对应的.so文件会被安装

你应该尽可能的提供专为每个ABI优化过的.so文件,这种情况下运行时就少了一个模拟层(例如x86设备上模拟arm的模拟层),从而得到更好的性能。也就是我们需要创建上面图片上所有的文件夹,每个文件夹都对应一种相应的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值