您现在的位置是:首页 >技术教程 >arm32位应用兼容arm64位记录网站首页技术教程
arm32位应用兼容arm64位记录
简介arm32位应用兼容arm64位记录
目录
4.比较lib/armeabi-v7a和lib/arm64-v8a两个文件夹下的so库文件
6.确定完所属依赖后,要么升级依赖、要么直接引入对应的64位so文件
背景
主要就是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
等待分析完毕
4.比较lib/armeabi-v7a和lib/arm64-v8a两个文件夹下的so库文件
看看lib/arm64-v8a中缺少哪些so库文件
5.确定缺少的so库文件属于哪些三方依赖
此外,有些手动引入的so文件,通过上面文章的方法找不到所属依赖,则你需要通过git中文件引入的历史记录,确定是在实现什么功能时引入的,然后基本就知道是哪个依赖的了
6.确定完所属依赖后,要么升级依赖、要么直接引入对应的64位so文件
升级依赖:比如我遇到的Fresco依赖,我直接由1.10.0升级到1.13.0,为什么不升级更高的,因为更高的版本是androidx的,我的旧项目很遗憾,还是support的,暂时没计划迁移
7.进行测试验证
补充
如果你的应用运行在双屏收银机(比如商米x2)上,设备是64位的,需要用到银联mis键盘(32位)收款,那你需要确定调用mis键盘的sdk是否支持64位,不然应用不要兼容64位
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。