关于abiFilters的使用「建议收藏」

关于abiFilters的使用「建议收藏」关于abi兼容的选择。abiFilters在app的使用

大家好,又见面了,我是你们的朋友全栈君。

前言

最近项目中遇到了要使用opencv的情况,涉及到了abi兼容的选择。因为如果全部都适配的话,包很大,这样兼容那些用户数极少的cpu就很不划算,所以我只适配了armeabi-v7a这一个。但是今天在x64-v8a的模拟器上看的时候,提示我的library.so文件找不到,我记得这个应该是向下兼容的,但是出现这种情况很奇怪,于是我就在网上找了找答案。

解决方法:abiFilters

在app的gradle的defaultConfig里面加上这么一句

ndk {
    abiFilters  "armeabi-v7a"  // 指定要ndk需要兼容的架构(这样其他依赖包里mips,x86,armeabi,arm-v8之类的so会被过滤掉)
}

这句话的意思就是指定ndk需要兼容的架构,把除了v7a以外的兼容包都过滤掉,只剩下一个v7a的文件夹。用了这个方法之后,确实解决了问题。这就是解决方法。

具体分析

其实这个方法我开始是很奇怪的,我明明没有指定其他的兼容框架,为什么会需要一个过滤。我打来了apk的包,找到了里面的lib目录,发现里面有很多的兼容目录,然后看到里面目录里面的是一个fresco的.so文件。也就是说,fresco做了各个平台的兼容,所以它创建了各个兼容平台的目录。因为只要出现了这个目录,系统就只会在这个目录里找.so文件而不会遍历其他的目录,所以就出现了之前找不到.so文件的情况(因为其他目录没有我的.so文件)。

总结

为了决定最后适配的abi版本,我下载了排行前几名的app,然后打开之后发现,他们基本上只适配了一个armeabi,少数会再加上v7a。我了解到的情况是armeabi性能较差,但是兼容性最好,v7a对于浮点计算的cpu来说性能更好,不兼容不支持浮点运算的cpu。我想到的是目前的手机cpu绝大多数应该是支持浮点运算的,而且安卓从2.2开始就支持v7a,所以v7a的兼容性应该也不是问题。(不知道对不对,谁能明确一下的,恳请指正)
无论如何,abiFilters还是应该添加的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143490.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月21日 下午4:00
下一篇 2022年5月21日 下午4:20


相关推荐

  • [AVAudioIONodeImpl.mm:1158:SetOutputFormat: (format.sampleRate == hwFormat.s[通俗易懂]

    [AVAudioIONodeImpl.mm:1158:SetOutputFormat: (format.sampleRate == hwFormat.s[通俗易懂]AVAudioInputNode闪退问题[AVAudioIONodeImpl.mm:1158:SetOutputFormat:(format.sampleRate==hwFormat.sCrashedatinstallTapOnBus…//Configurethemicrophoneinput.AVAudioInputNode*inputNode=self.audioEngine.inputNode;//[inputNoderemoveTapOnBus:0];AV.

    2022年10月10日
    7
  • exec_command 详解_linux exec命令

    exec_command 详解_linux exec命令2D-Position允许通过拖曳移动绝对定位的对象。AbsolutePosition设定元素的position属性为“absolute”(绝对)。BackColor设置或获取当前选中区的背景颜色。BlockDirLTR目前尚未支持。BlockDirRTL目前尚未支持。Bold切换当前选中区的粗体显示与否。BrowseMode目前尚未支持。

    2025年6月29日
    5
  • 莫忽视数据中心的可靠性

    莫忽视数据中心的可靠性

    2022年3月6日
    46
  • 电力电子技术 学习总结1

    第二章PPT91以前电力电子器件(PowerElectronicDevice)—可直接用于处理电能的主电路中,实现电能的变换或控制的电子器件。主电路(MainPowerCircuit)—电力电子设备或系统中,直接完成电能变换或控制的电路。广义上电力电子器件可分为电真空器件和半导体器件两类。自20世纪50年代以来,真空管(VacuumValve)仅在频率很高(如微波,数GHz)的大功率高频电源中还在使用,而在大多数电能变换领域,电力半导体器件已取代了汞弧整流器、闸流管等电真空器件

    2022年4月14日
    95
  • 全球首个AI全景智能体!卡萨帝AWE发布指挥家套系

    全球首个AI全景智能体!卡萨帝AWE发布指挥家套系

    2026年3月15日
    2
  • IDEA运行JavaWeb服务器图片无法加载

    IDEA运行JavaWeb服务器图片无法加载IDEA 运行服务器 图片无法加载 首先打开 Editconfigur nbsp 选择 deployment nbsp 点击 号 选择 externalsour nbsp 如果你和我类似 直接在 web 目录下建一个 image 文件夹 那么在弹出的文件夹选择框选择这个 image 即可 当然 你可以随意选择 这个只是针对 IDEA 放到服务器上是可以直接用路径访问的 nbsp nbsp 我

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号