3

ARM CPU でのみ動作する Android アプリケーションがあります。これは、APK に ARM 実行可能ファイルが含まれているためです。ただし、かなりの検索を行った後、アプリケーションが他のアーキテクチャでは実行されないことを (マニフェスト ファイルなどで) 示す方法を見つけることができませんでした。

通常、ネイティブ コードを含めるアプリケーションには、共有ライブラリが含まれます。この場合、アプリは、互換性のある CPU を持つユーザーの Play ストアにのみ表示されます。ただし、共有ライブラリを使用することは、私のアプリのオプションではありません。

アプリがサポートする CPU アーキテクチャを明示的に示すことができるプロジェクトのマニフェスト ファイルまたは別の場所はありますか?

4

2 に答える 2

2

ただし、共有ライブラリを使用することは、私のアプリのオプションではありません。

理論的には、そうあるべきです。NDK で何もしない小さな JNI 互換ライブラリを作成し、パッケージ化されたバイナリがサポートするアーキテクチャ (ARMv5 や ARMv7 など) 用にのみビルドします。おそらく、ライブラリを使用する必要さえありません (ただし、少なくとも最初のテストでは、安全のためにライブラリを参照する Java クラスをセットアップします)。実行時にコードを実際に呼び出さなくても、Play ストア フィルタをトリガーするにこれで十分です。

IOW、フィルタリングのためだけにNDKのものを使用してください。

個人的には、パフォーマンス上の理由から、コマンドライン バイナリを NDK で構築された JNI 互換ライブラリに書き換えたいと思いますが、それは私だけの話です。

于 2013-05-14T20:49:07.470 に答える
0

これはあなたが探しているものかもしれません

TextView tv_showArch_View = (TextView)findViewById(R.id.ShowCPUArch);
        String CPU_ABI = Build.CPU_ABI;

        tv_showArch_View.setText(CPU_ABI);

それは私に戻った

ARMeabi で実行されているエミュレータ用ARM processor

X86で実行されているエミュレータ用Intel processor

詳細については、Google の公式ドキュメントを参照してください。

于 2013-05-14T19:22:42.620 に答える