gpt4 book ai didi

android - 在 Android 上,什么决定了用于构建的 abi

转载 作者:行者123 更新时间:2023-11-29 19:45:28 25 4
gpt4 key购买 nike

所以我有一个 .so,它包含在某些构建中,但不包含在其他构建中。

我的预构建脚本删除了 .so,关联的 .jar 从 build.gradle 中删除了库。

该库来自第 3 方,我无法控制请求 x86 或 arm-v7。它仅在 ARM 上提供给我。

当我在没有库支持的情况下进行构建时,我在 Xamarin 测试中遇到错误,指出 apk 不支持 x86。

什么实际上控制了 apk 支持什么 abi。

最佳答案

Using Native Libraries Xamarin 开发人员门户上的文档解释了其中的一半:

https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/

Android 应用程序支持的 ABI 取决于 APK 中是否存在 .so 文件,位于 lib/<ABI> 下ABI可以是armeabi, armeabi-v7a, arm64-v8a, mips, mips64, x86, x86_64(目前的7个ABI)中的一个或多个文件夹。

我个人使用 Google Play 商店中的一个应用程序来帮助部署哪些文件:

https://play.google.com/store/apps/details?id=com.xh.nativelibsmonitor.app

那么大多数设备通常都支持多个 ABI。因此,您将获得受支持的 ABI 列表,Android 包管理器使用这些 ABI 来安装设备喜欢的 .so 文件。

基本上,这里的最佳做法是确保将优化的库放入每个 <ABI> 中。上面列出的文件夹。只要知道当应用程序安装到设备上时,只会安装一种受支持的架构。

非常感谢http://ph0b.com/android-abis-and-so-files/作为人类可读的资源。

否则更多技术资源:https://developer.android.com/ndk/guides/abis.html

关于android - 在 Android 上,什么决定了用于构建的 abi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37819330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com