- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在测试包含一些 native 库的应用程序。到目前为止,这些库仅适用于 armeabi arch。用于测试目的的设备是Asus Zenfone 4 .它是基于 Intel 的设备,所以我预计运行该应用程序会出现问题,因为没有没有 x86 版本的库。
令人惊讶的是,应用程序运行良好。问题是为什么?是因为某种 ARM 仿真吗?这种仿真是否适用于所有英特尔 Android 设备?
/proc/cpuinfo 包含以下内容:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 53
model name : Intel(R) Atom(TM) CPU Z2520 @ 1.20GHz
stepping : 1
microcode : 0x110
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts nonstop_tsc aperfmperf nonstop_tsc_s3 pni dtes64 monitor ds_cpl vmx est tm2 ssse3 xtpr pdcm movbe lahf_lm arat dtherm tpr_shadow vnmi flexpriority
bogomips : 2396.16
clflush size : 64
cache_alignment : 64
address sizes : 32 bits physical, 32 bits virtual
power management:
最佳答案
Is it because of some kind of ARM emulation?
是的。它被称为 libhoudini
。引用 myself :
libhoudini
is a proprietary ARM translation layer for x86-powered Android devices. It allows an app that has NDK binaries for ARM, but not x86, to still run on x86 hardware, albeit not as quickly as it would with native x86 binaries.
请注意,libhoudini
仅适用于 NDK。纯基于 Java 的应用应该可以在任何受支持的 CPU 架构上正常运行。
Is this emulation the case for all Intel Android devices?
“全部”是一个强词。我将对冲并说“来自主要制造商的大多数采用英特尔技术的 Android 设备”。
关于Android:在 Intel 设备上运行仅 armeabi 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31047552/
我上次在 Android Studio 中将 NDK 版本升级到最新版本后遇到了这个问题。我还找到了解决此问题的解决方案。如果有人有这个问题,我希望这是对你最好的问题和答案。请检查我的答案。 最佳答案
我正在开发一个 Android 项目,我正在使用 NDK 调用本地方法。我有两个库(.so 文件),一个位于 libs/armeabi 文件夹中,另一个位于 libs/armeabi-v7a lib
据我所知,Android NDK 中两种支持的 ARM 架构风格之间的区别仅在于支持的 CPU 指令集。真的是这样吗?调用约定、系统调用顺序或其他方面没有区别吗? 我想知道如果我将模块编译为 ARM
我在我的项目中使用一个库来播放视频。该库提供了一个演示项目。演示项目工作正常。 库有几个.Jar文件,一些库类,还有很多.so文件。演示项目将 Jar 文件放在 lib 文件夹中,将 .so 文件放在
在我当前的项目中,我使用了多个 .so 文件。它们位于 armeabi 和 armeabi-v7a 文件夹中。不幸的是,其中一个 .so 文件是 6MB,我需要减小文件大小。我不想使用胖 APK 文件
Xamarin documentation对此有点不清楚。如果我在构建首选项中仅勾选 armeabi 构建我的应用程序,我的应用程序会: 可以在 Play 商店中使用 v7a 设备吗? 在 v7a 设
我正在一个裸项目中使用 eclipse 中的 ndk 构建应用程序的 native 部分。我稍后将 libs/armeabi/中生成的 libmylib.so 复制到另一个使用它的项目。 我注意到 o
我认为所有支持 armeabi-v7a 的设备都应该能够支持 armeabi-v7a-hard。如果是这样,为什么我们不放弃 armeabi-v7a 或者只是使用 armeabi-v7a-hard 替
我一直在使用新的 APK splits Android 0.13 插件的功能,我设法将大部分构建脚本的大小减半,并将构建速度提高了 4 倍。我的应用程序在每个平台上都有超过 20MB 的库,因此优先考
我有一个由第三方供应商提供的 .so 文件,该文件将包含在我的 Android 应用程序中。我无法访问源代码,也无法(轻松)联系供应商。 有没有办法让我通过检查 .so 文件来确定它是否是针对 arm
我的应用程序使用 2 个 native 库,我们称它们为 LibA.so 和 LibB.so。以前,我的应用程序在 kitkat OS 下运行良好,没有任何问题。 现在它在带有 OS 5.0(loll
我有一个依赖于 lib 项目的 android 项目。而lib项目在“libs”目录下有“armeabi”和“armeabi-v7a”目录,这两个目录里面都有一个.so文件。而我自己的项目在libs目
如果没有,Application.mk 文件中的 arm 架构还有哪些其他选项? 最佳答案 另外两个选项是 x86 和 mips。我相信这 4 个是唯一的选择。 关于android - `armeab
我为 Android 6 及更高版本创建了一个旧版应用。我需要包含一些为“armeabi”架构构建的 .so 文件。我没有这些共享对象的源代码,所以我无法为其他架构构建它们。 目标设备的架构是“arm
我正在使用 openTok 库进行视频聊天,libopentok.so 文件将被放入“libs”下的“armeabi”文件夹中。我的项目已经有 jni,它在编译后将自己的文件夹(如 armeabi、a
eclipse /Cygwin NDK 8c 构建共享库 切换到 armeabi-v7a 后,我无法再启动 gdbserver。我在网上搜索了几个小时,但找不到专门处理 armeabi-v7a 调试问
我在探索开源时多次看到这个库 (armeabi)。 我在网上搜索了它的解释,但我发现的所有结果都在谈论它而不是定义它。 这个 armeabi 是什么?他们为什么在 Android 应用程序中使用它?
Google 最近通知开发者,应用必须兼容 64 位。 我们必须检查包是否包含 arm64-v8a 和 x86_64 文件夹。 在我的应用程序中,我有 arm64-v8a 文件夹,还有“简单”“arm
我成功地为 Android 编译了 PJSIP 库。当我为默认架构 armeabi 构建时,示例项目可以正常工作。现在我尝试为 arch 编译库,例如 armeabi-v7a 和 arm64-v8a。
我正在使用一些预构建的 android 库,将它们粘贴到我的 jni 文件夹中并将其放入 Android.mk # Add prebuilt libgdx include $(CLEAR_VARS)
我是一名优秀的程序员,十分优秀!