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 フォルダーの下に 3 つのライブラリーが取得されます。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 に答える