web-dev-qa-db-ja.com

Android NDK:APP_ABIのApplication.mkで何を設定する必要がありますか?

AndroidゲームのApplication.mkファイルにどのアーキテクチャを配置する必要があるのか​​疑問に思っています。

GooglePlayやその他の種類のAndroidストアでゲームをダウンロードできるすべての可能なプラットフォームをサポートしたいと思います。

私は設定する必要があると思います:

APP_ABI := armeabi x86 (as many x86 devices are coming soon as far as I know)

しかし、私は設定すべきではないかと思います:

APP_ABI := armeabi armeabi-v7a x86

または

APP_ABI := all

どうか明らかにしてください。

13
Regis_AG

mipsを指定することもできます。これはallを使用するときに含まれます。

armeabiコードはarmeabi-v7aデバイスで実行できますが、その逆はできません。したがって、armeabiがある場合はneedarmeabi-v7aは必要ありませんが、一部のデバイスでハードウェア浮動小数点演算を利用できます。

また、含めるアーキテクチャが多いほど、結果のAPKが大きくなることにも注意してください。また、すべてのプラットフォームで定期的にコンパイルしている場合は、ビルドに時間がかかります。

さまざまなアーキテクチャの詳細については、NDKインストールのdocs /CPU-Arch-ABIS.htmlをご覧ください。

13
krsteeve

少なくとも、armeabi-v7aとx86を設定することをお勧めします。

armeabi-v7aは、最新のarmデバイスのほとんど、場合によってはすべてをカバーし、ハードウェア浮動小数点サポートを提供します。

x86は、現在のx86デバイスのすべてをカバーしています(最大のものはSamsung Galaxy Tab 3です)。さらに、Intelは今年以降、Push for Tabletの市場シェアを大きく、非常に公開しており、将来的にはさらに人気が高まる可能性があります。

これには多くの影響があります。 krsteveは正しいです。これにより、ビルドが少し遅くなり(ゲームを2回効果的にビルドしているため)、APKが大きくなります(x86とARMバイナリを一緒に含めるため) )ただし、これらのバイナリのサイズはアセットによって小さくなる可能性があります。そうでない場合、ゲームはGoogle PlayAPKのサイズ制限を超えるほど大きくない可能性があります。

要約すると:

  1. Armeabi-v7aおよびx86を使用するか、すべてを使用します
  2. 追加のapkサイズは、関連性がないか、アセットサイズによって小さくなります
  3. ビルド時間は長くなりますが、ヒットできるデバイスの数が増えるため、公正なトレードオフのようです。
6
ShriekBob