Android 支持的Build.CPU\u ABI vs Build.CPU\u ABI2 vs Build.Supported\u ABIS
关于这一点,我理解如果Build.CPU_ABI和Build.CPU_ABI2中的一个或多个与特定APK的目标体系结构相同,那么在这个特定设备上运行这个APK应该是可行的 实际上,当我做实验时发生的事情让我很困惑: 我拿了一台运行安卓4.4的Azus设备,检查它返回的属性:Android 支持的Build.CPU\u ABI vs Build.CPU\u ABI2 vs Build.Supported\u ABIS,android,android-ndk,cpu-architecture,abi,Android,Android Ndk,Cpu Architecture,Abi,关于这一点,我理解如果Build.CPU_ABI和Build.CPU_ABI2中的一个或多个与特定APK的目标体系结构相同,那么在这个特定设备上运行这个APK应该是可行的 实际上,当我做实验时发生的事情让我很困惑: 我拿了一台运行安卓4.4的Azus设备,检查它返回的属性: Build.CPU\u ABI=X86 Build.CPU\u ABI2=armeabi-v7a 但实际上,该设备似乎不支持armeabi-v7a。 我之所以知道这一点,是因为我试图在这个设备上安装一个,但它失败了,日志显示
Build.CPU\u ABI
=X86
Build.CPU\u ABI2
=armeabi-v7a
但实际上,该设备似乎不支持armeabi-v7a。
我之所以知道这一点,是因为我试图在这个设备上安装一个,但它失败了,日志显示ABI不受支持。
我还使用apk上的adb dump标记验证了这一点,它返回:
'native-code': 'armeabi-v7a'
我的问题是:
- 为什么声明CPU_ABI2=armeabi-v7a的设备不能真正运行Facebook版本的目标armeabi-v7a 这对我了解到底发生了什么非常重要,因为我正在开发一个与google play完全一样的应用程序,并将其交付和安装到设备应用程序中,我试图找出什么设备属性将为我提供关于基于它的APK的指示
armeabi-v7a
。该设备上可能有一个库同时支持lib/[armeabi-v7a]和lib/[x86],而该库正是框架所关注的。提供更多关于该设备的信息,Azus,不是华硕吗?@t0mm13b该设备是Azus Zenfone型号华硕_Z002它更多用于NDK C/C++构建,其中绑定本机库代码与apk共享,而不是其他任何东西大多数intel atom处理器(如果不是全部)都附带库(houdini),可以在fly arm中转换为x86,这就是为什么您可以将armeabi-v7a
视为CPU\u ABI2
。我自己也有带Atom的华硕Zenfone 5和相同的CPU_ABI。我的手机正常运行arm应用程序,没有问题。另外一点:当我有安卓4.4时,手机上有禁用/启用houdini的脚本(可通过adb访问),在升级到安卓5.0后我找不到它们。我建议只安装一个只有armv-7a的小APK:也许,那个奇怪的facebook APK出了什么问题?如果您不想自己弄乱NDK示例,您可以尝试以下链接