如何将安卓静态库与不同的ABI相结合



我已经构建了4次android静态库,每一次都有不同的ABI。所以我有这个文件:

someLib_armeabi-v7a.a
someLib_arm64-v8a.a 
someLib_x86.a 
someLib_x86_64.a  

如何(如果可能的话(将它们组合到一个库中,该库将包含所有ABI

提前谢谢。

您不能。

这些文件包含机器代码,每个文件用于不同的CPU体系结构,并且没有任何文件格式允许您将它们打包在一起,并让加载程序决定加载什么。

另外,请注意,*.a文件是静态库,不能直接使用。您需要将它们链接到动态库(*.so文件(,然后才能将它们添加到您的应用程序中。

在Android上,当构建APK时,原生库被打包在APK(实际上是一个ZIP(内的单独文件夹中,APK以ABI命名,比如:/lib/arm64-v8a/someLib.so/lib/armeabi-v7a/someLib.so

如果您正确配置了项目,并且设备上的操作系统有必要查找和使用库,则此打包将由构建系统自动完成。

然而,谷歌建议使用";应用程序捆绑包";它将自动将您的APK拆分为几个不同的APK,这些APK根据设备架构进行了优化,以减少用户的存储和下载带宽。

https://developer.android.com/guide/app-bundle

相关内容

  • 没有找到相关文章