Android 设备的CPU类型(通常称为"ABIs")
- armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年12月以后的生产的大部分Android设备都使用它.
- arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
- armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
- x86: 平板、模拟器用得比较多。
- x86_64: 64位的平板。
更多可以查看链接 https://developer.android.google.cn/ndk/guides/abis
一、 问题描述
今天测试人员测试集成版本时除了一个bug:关于华为 Mate 8手机Android 6.0系统运行刚刚提测的版本时,出现闪退的bug,而小米 4 手机Android 6.0系统却没有出现任何bug,运行良好。后来查看本人相关模块的代码,发现本人集成版本相关模块的代码和分支版本相关模块的代码是一模一样的,那就是说本人把分支代码合并到主干代码是没有问题的,所以去查看主干代码的问题。
经过一番查看提交日志,发现有位同事再我合并代码之前,提交了一个关于友盟推送的so文件的记录,原来他加入了一个arm64-v8a文件夹,里面有友盟推送的arm64-v8a的so库文件。而其他的so库文本却没有arm64-v8a对应的版本

本文详细探讨了Android应用在不同CPU架构(如arm64-v8a、armeabi-v7a、armeabi、x86)下的.so文件兼容问题。问题起因是华为Mate 8手机在运行含有arm64-v8a文件夹但缺少相应.so文件的应用时出现闪退。解决方法是提供完整ABIs的.so文件,并确保所有目录下so文件一致。此外,文章强调了正确处理.so文件的重要性,包括避免混合不同ABI的.so文件,提供所有支持架构的.so文件,以及注意.so文件的编译平台和C++运行时版本。最后,讨论了Google关于64位架构的新规定,提醒开发者必须为已支持的32位架构提供64位版本。
订阅专栏 解锁全文
1594

被折叠的 条评论
为什么被折叠?



