• 从小米14安装不上应用说起【适配64位】


    一、原因

    某天早上,同事突然对我说我换了小米14pro手机但是安装不了公司的打卡软件,怎么办呀。一时间,我也不知道原因,看到给我发的安装不上的截图陷入了沉思。随即打开在git仓库里找到这个项目,到本地编译打开,开始思考解决办法。

    二、解决思路

    从网上查询了一番,小米14pro 只支持安装64位的应用,可能是老项目没有做64位的适配。等到项目编译好,打开模块下的build.gradle文件,果然如此,没有做64位的适配。

    ndk {
        abiFilters 'armeabi', "x86", "x86_64"
    }
    
    • 1
    • 2
    • 3

    针对64位做适配,一般都是适配so库,一般来说,如果你的项目中没有使用到so库或者C,C++代码,都是支持64位的。
    这里再做下说明,ABI是Application Binary Interface(应用程序二进制接口)的缩写,在Android中,它指的是Android操作系统与设备硬件供应商提供的库之间的接口。ABI定义了程序各个组件在二进制级别上的交互方式,其中一个重要的方面是处理器使用的指令集架构。Android支持多种ABI以适应具有不同硬件架构的设备。

    • ARM(Advanced RISC Machine):
      • ARM是移动设备中常见的架构。
      • 变体:armv5、armv7-A、armv8-A(64位)等。
    • x86:
      • x86是台式机和笔记本电脑中常见的架构。
      • 变体:x86、x86_64(64位)。
    • MIPS(Microprocessor without Interlocked Pipeline Stages):
      • MIPS架构在过去在一些Android设备中被广泛使用,但近年来变得不那么常见。

    好了,回归到正题,就要针对项目中这种情况处理so库了,因为这个老项目是从其他项目演变过来的,用不到这些so库,所以我的解决办法就是全部删除掉(当然要对项目中的源代码进行处理),再进行打包处理。
    如果你们处理项目中的没有兼容的so库,推荐一个检测插件EasyPrivacy,接入这个就可以方便查看那些so库没有做适配了。
    找到没有适配的so库之后,需要找到提供者获取最新兼容的so库或者找到相关官网看是否提供64位的so库。当然代码中还需要进行处理。

    ndk {
        abiFilters 'armeabi-v7a', 'arm64-v8a', "x86", "x86_64"
    }
    
    • 1
    • 2
    • 3

    这样子打包的时候,在apk中的libs文件夹下就会出现四个对应的文件夹,里面就是对应的so库了。但是这样会增大包的体积。在android{}中配置如下代码,这样子打包之后就会出现四种包对应不同架构的包,这样子包的体积也会减小。

    splits {
        abi {
            enable true
            reset()
            include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' //select ABIs to build APKs for
            universalApk true //generate an additional APK that contains all the ABIs
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    回归正题,当我把打好的包发给同事的时候,同事告诉我还是不行。思来想去,排除64位的问题,那么剩下的只有Android版本的问题了。新出的手机肯定是搭载最新的Android版本,目前Android 14 有什么新变动还没有了解到。
    image.png
    从官网看到,映入眼前的第一条就是这个,检查项目中的代码,发现targetSdkVersion 还是16,怪不得安装不上,至此所有问题解决。

  • 相关阅读:
    containerd配置HTTP私仓
    《安富莱嵌入式周报》第326期:航空航天级CANopen协议栈,开源USB PD电源和功耗分析,开源EtherCAT伺服驱动板,时序绘制软件,现代机器人设计
    怒刷LeetCode的第19天(Java版)
    文档明明在桌面上却不显示?5个方法轻松解决!
    2024 MCM数学建模美赛2024年A题复盘,思路与经验分享:资源可用性与性别比例 | 七鳃鳗的性别比例变化对生态系统稳定性的影响(四)
    web3去中心化身份可验证凭证
    js实现pdf、word、excel、图片、html文件预览及下载
    06 OpenCV增加图像的对比度
    释放机器人潜力,INDEMIND深耕底层技术
    6.Flask-APScheduler定时任务框架
  • 原文地址:https://blog.csdn.net/qq_41677326/article/details/134536234