arm32位应用兼容arm64位记录

这篇具有很好参考价值的文章主要介绍了arm32位应用兼容arm64位记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

背景

兼容64位步骤

1.配置ndk支持arm64

2.进行build构建

3.构建完之后,进行apk包的分析

 4.比较lib/armeabi-v7a和lib/arm64-v8a两个文件夹下的so库文件

5.确定缺少的so库文件属于哪些三方依赖

6.确定完所属依赖后,要么升级依赖、要么直接引入对应的64位so文件

7.进行测试验证

补充


背景

金标联盟64位适配时间节点重要通知(三)金标联盟 | ITGSA | 移动智能终端生态联盟是国内领先的行业非盈利性组织,由领先的智能终端厂商联合发起和建立,旨在推动全行业应用生态标准化、规范化、合规化、高效化,提升全行业应用服务水平和能力,促进行业共赢、共发展。https://www.itgsa.com/home/news/info?newsId=5256238539162624

 arm32位应用兼容arm64位记录

主要就是Arm架构新机不再支持32位应用的安装与使用,所以必须对旧应用进行兼容64位处理

兼容64位步骤

谷歌官方参考文档:https://developer.android.com/distribute/best-practices/develop/64-bit?hl=zh-cn#guidelines-ndk

1.配置ndk支持arm64

armeabi-v7a要保留,后续有用,而且你兼容了新机,旧机也得兼容啊,有些旧机只支持32位(说的就是银联的pda设备,优博讯I9000S)

ndk { abiFilters "armeabi-v7a", "arm64-v8a" }

2.进行build构建

3.构建完之后,进行apk包的分析

【build - Analyze APK...】选择项目目录下 ~/app/build/outputs/apk/debug/app-debug.apk

arm32位应用兼容arm64位记录

等待分析完毕

arm32位应用兼容arm64位记录

 4.比较lib/armeabi-v7a和lib/arm64-v8a两个文件夹下的so库文件

看看lib/arm64-v8a中缺少哪些so库文件

5.确定缺少的so库文件属于哪些三方依赖

参考:【Android开发】如何快速知道某个so来源于哪个库_android查看so来源_又吹风_Bassy的博客-CSDN博客有时候需要查找某些 so文件是来源于哪个库的,方便删除。以下是一个小技巧:在 app模块的 build.gradle中,追加以下代码://列出所有包含有so文件的库信息tasks.whenTaskAdded { task -> if (task.name=='mergeBiDebugNativeLibs') { //如果是有多个flavor,则用 mergeFlavorDebugNativeLibs的形式 task.doFirst { ...https://blog.csdn.net/eieihihi/article/details/109289312

此外,有些手动引入的so文件,通过上面文章的方法找不到所属依赖,则你需要通过git中文件引入的历史记录,确定是在实现什么功能时引入的,然后基本就知道是哪个依赖的了

6.确定完所属依赖后,要么升级依赖、要么直接引入对应的64位so文件

升级依赖:比如我遇到的Fresco依赖,我直接由1.10.0升级到1.13.0,为什么不升级更高的,因为更高的版本是androidx的,我的旧项目很遗憾,还是support的,暂时没计划迁移

7.进行测试验证

补充

如果你的应用运行在双屏收银机(比如商米x2)上,设备是64位的,需要用到银联mis键盘(32位)收款,那你需要确定调用mis键盘的sdk是否支持64位,不然应用不要兼容64位文章来源地址https://www.toymoban.com/news/detail-491490.html

到了这里,关于arm32位应用兼容arm64位记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记录MacOS M1芯片(ARM64架构)使用docker-compose方式部署Kafka

    amd架构的镜像非常好找,但由于博主是arm64架构的机器,所以一些开发环境非常的难找,所以在这里记录一下arm64环境部署Kafka。 准备 docker-compose.yml 文件: 博主的虚拟机IP是192.168.153.131,注意替换你的服务器IP。 这个文件部署了zookeeper、kakfa以及kafkaUI 在docker-compose.yml目录下,

    2024年02月15日
    浏览(57)
  • 基于Linux平台交叉编译 flutter arm64应用

        操作系统ubuntu 20.04,开发工具Android Studio + Flutter,运行平台RK3566 Linux。截止现在Flutter官方尚未正式对Linux arm64进行支持,仅有flutter-elinux可用。开发环境的搭建过程遇到了很多的坑,幸运的是最终完成了。为避免后来者再次浪费时间,特撰此文以飨读者。     本文仅记

    2024年02月06日
    浏览(81)
  • Linux系统查看版本、位数(32位或64位)、架构(arm或amd)的命令

    这里是Ubuntu linux系统; 输入命令: 显示: 输入命令: 显示: 输入命令: 显示: 补充:amd (intelx86架构)和arm版本区别。 x86和arm架构定位不同: arm基于精简指令(RISC),本身定位于嵌入式平台,简化了硬件逻辑的设计,减少了晶体管,从而降低功耗,流水线等控制并不复杂

    2024年02月16日
    浏览(51)
  • D2000 debian 11 arm64 aarch64 wine-ce编译安装,运行win32程序 笔记 【失败】

    下载源码 yeqiang@debian:~/Downloads$ git clone https://gitee.com/wine-ce/wine-ce Cloning into \\\'wine-ce\\\'... remote: Enumerating objects: 102, done. remote: Counting objects: 100% (89/89), done. remote: Compressing objects: 100% (83/83), done. remote: Total 102 (delta 54), reused 1 (delta 1), pack-reused 13 Receiving objects: 100% (102/102), 32.75 KiB | 56

    2024年01月18日
    浏览(45)
  • x86 32 64 Arm这些听过但不懂,都是什么?是架构还是系统?一文梳理

    x86 听过吗? 64位操作系统知道吧 和x86什么关系 32和64都是什么东西? 曾经的我也一头雾水,今天我才来整理一下,惭愧惭愧! 今天带着沉重的心情来梳理一下学习内容吧 如果你很熟悉很了解计算机的话,应该知道,处理器、操作系统、驱动、软件都有32位和64位之分,只不

    2024年04月29日
    浏览(59)
  • iOS问题记录 - Building for iOS Simulator, but linking in dylib built for iOS, for architecture arm64

    最近用了一个第三方的Flutter插件,刚开始用项目运行到iOS模拟器就失败了。这个报错在老早以前出现的比较频繁,但是现在还出现属实不应该。 Flutter: 3.7.11 Xcode: 14.3 Flutter项目引入第三方插件后,在iOS模拟器运行项目报错: 通过第三方插件 ios 目录下的 xxx.podspec 文件可知,

    2024年02月15日
    浏览(49)
  • MySql启动错误(Mac系统 安装 mysql-8.0.32-macos13-arm64 后每次点击启动 无法启动) --- 已解决

    MySql启动的时候: 立即变红! 查看日志如下: 2023-03-04T14:18:01.089671Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.32) MySQL Community Server - GPL. 2023-03-04T14:18:10.304169Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.32) starting as process 90802 2023-03-04T14:18:10.3

    2023年04月19日
    浏览(52)
  • Qt5.9 Ubuntu18.04-64位交叉编译目标机为Ubuntu18.04-arm-32位基于RK3288

    文章目录 一、需要准备的材料 二、操作步骤 1.更新软件源 2.安装环境依赖 3.搭建交叉编译环境 4.编译QT 5.安装Qt creator 6.配置Qt kit 三.测试 前言 本文使用VMware虚拟机作为Ubuntu系统载体,采用Ubuntu18.04-64位镜像作为QT编译环境,采用RK3288搭载Ubuntu18.04-arm-32作为QT执行环境。 ① 交

    2024年02月17日
    浏览(49)
  • Android /android_vendor.32_arm64_armv8-a_shared/libtinyals a.so.abidiff报错

    Android /android_vendor.32_arm64_armv8-a_shared/libtinyals a.so.abidiff报错 解决方法:

    2024年02月07日
    浏览(43)
  • 问题记录:MFC使用ADO在32位和64位下分别连接ACCESS数据库碰到的问题

    题外话:近期收到个任务,给合作的公司弄一个静态库,库的功能需要加载文件夹中的ACCESS数据库,合作方希望同时有32位的 和 64位的。 进入正题把,首先声明,我的ACCESS数据库文件后缀是.mdb的 在x86下导入msado15.dll,我是这样写的 我按网上说的#import \\\"C:Program FilesCommon Fil

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包