关于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • enterprise architect使用教程绘制用例图_用例图的箭头怎么画

    enterprise architect使用教程绘制用例图_用例图的箭头怎么画在《UML面向对象分析、建模与设计》中学到了用例图,用例图是指由参与者(Actor)、用例(UseCase),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图(UserCase)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图中的主要元素包括参与者、用例以及元素之间的关系(这三个应该很好理解,一啪啦的废话不多说了,有什么不懂的直接留言或者私信)。我们可以看一个用EA绘制餐馆管理系统的用例图接下来讲解怎么用EnterpriseArchitect(以下简称EA)工具来画步

    2022年9月6日
    1
  • O泡果奶-APK反编译-Lua脚本

    O泡果奶-APK反编译-Lua脚本O泡果奶-APK反编译-Lua脚本反编译出的代码(有注释)–main.lua–require(“import”)import(“android.app.*”)import(“android.os.*”)import(“android.widget.*”)import(“android.view.*”)import(“android.view.View”)import(“android.content.Context”)import(“android.media.MediaPlay

    2022年9月18日
    0
  • Oracle Sequence Cache 参数说明[通俗易懂]

    Oracle Sequence Cache 参数说明[通俗易懂]之前整理的一篇文章:   ORACLESEQUENCE介绍http://blog.csdn.net/tianlesoftware/archive/2009/10/30/4745039.aspx 之前整理的一篇文章。那是还是写blog初期的作品。2009年10月份的。转眼一年,写Blog也比以前成熟了很多。 一.理论知识先看一个创建Sequence的语句:SQL>creates

    2022年10月9日
    0
  • phpstrom2021激活码_在线激活

    (phpstrom2021激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    81
  • Intellij IDEA 2021 Maven 配置指南「建议收藏」

    Intellij IDEA 2021 Maven 配置指南「建议收藏」Maven是Java一个不错的项目管理工具,但在IntellijIDEA软件中配置它却并非一件省心的事情,不少小萌新会配置失败。所以,我打算分享这篇教程,帮助萌新们在IntellijIDEA中配置好Maven~

    2022年5月28日
    175
  • 图像文字识别(三):Tesseract4.0训练字库,提高正确识别率

    图像文字识别(三):Tesseract4.0训练字库,提高正确识别率

    2021年9月26日
    71

发表回复

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

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