我有一些使用本机组件的库,这些库是使用NDK构建的,用于32位Arm架构。
现在我们在现代设备上有64位处理器,所以我想知道这些库是否可行。在我的情况下,我没有本机库的源代码文件,只有SO文件,我无法为64位构建它们。
32位库是否也能在64位处理器上运行?或者我必须重建它们?
**
修改
** 在我的场景中,我有以下内容:
1-我手动分发APK,尚未发布到Google Play。
2-该项目有两个本地库,一个是64&支持32位,另一种仅支持32位。
有没有办法让应用程序在64位设备上运行而不必立即发布到Google Play?我可以删除64位库以强制包管理器加载32位的库吗?
答案 0 :(得分:2)
32位库在64位处理器上可以正常工作。
只要以正确/官方方式安装库(即,不是从APK中的某些非标准部分手动下载或提取,而是在APK中正确打包),包管理器将检测到该进程使用32位库,应该以32位模式启动进程。如果不是,则进程将以64位模式启动,之后将无法加载32位库。 (如果您的APK包含一些.so文件,但不是全部,在64位模式下,它只会安装它们,并且该过程将以64位模式启动。所以除非所有.so文件都可用于特定的ABI,不包括其中任何一个。)
因此,如果您有一个64位版本的本机库,只需将其删除并仅发送32位版本,直到您拥有所有这些版本的64位版本。