0

未来许多 Android 设备将使用 Atom 处理器。这意味着当创建一个可以部署到 Atom 处理器设备上的应用程序时,有必要包括一个用于 atom 和 x86 处理器的本机库。所以我的问题是如何在决定加载哪个本机库之前检测设备上的处理器?选择要加载的库的最佳方法是什么?

4

1 回答 1

2

您无需手动检测任何内容。只需通过在 Application.mk 文件中指定正确的 APP_ABI 来构建针对 x86 的库(从 ndk 分发中读取 docs\Application-mk.html 文件):

APP_ABI := armeabi armeabi-v7a x86

使用它,您将在 libs 文件夹下获得三个库。Android 会在运行时自动选择正确的一个。

如果需要在运行时检测,可以使用 NDK 分发的 cpufeatures 库。它提供以下功能:

typedef enum {
    ANDROID_CPU_FAMILY_UNKNOWN = 0,
    ANDROID_CPU_FAMILY_ARM,
    ANDROID_CPU_FAMILY_X86,
    ANDROID_CPU_FAMILY_MAX  /* do not remove */
} AndroidCpuFamily;

/* Return family of the device's CPU */
extern AndroidCpuFamily   android_getCpuFamily(void);

如果您需要在 Java 端执行相同的功能,您应该阅读 /proc/cpuinfo 文件并分析其内容。

于 2012-04-10T18:47:05.683 回答