私はAndroidアプリのいくつかの異なるビルドを持っています:FPUサポートの有無、NEONサポートの有無。
Google Playマーケットでそのようなアプリを提出するための最良の方法は何ですか?NEON ir FPUの可用性に応じて、ターゲットデバイスをフィルタリングすることはできますか?そうでない場合は、すべてのデバイスをサポートするために何をすべきですか(これらのハードウェア機能なし)?
私はAndroidアプリのいくつかの異なるビルドを持っています:FPUサポートの有無、NEONサポートの有無。
Google Playマーケットでそのようなアプリを提出するための最良の方法は何ですか?NEON ir FPUの可用性に応じて、ターゲットデバイスをフィルタリングすることはできますか?そうでない場合は、すべてのデバイスをサポートするために何をすべきですか(これらのハードウェア機能なし)?
AFAIK、GoogleはAndroid用のARMABIの2つのセットのみを定義しています:ARMv5とARMv7a。ARMv5(古いAndroidデバイス)では、FPUとNEONをサポートしないことが保証されています。ARMv7aデバイスでは、FPUとNEONのサポートはオプションです。市場は、これら2つのABIで適格なデバイスをフィルタリングします。各ABIに固有のネイティブコードライブラリを含む「ファットバイナリ」を構築できます。FPUおよびNEON機能の場合、実行時にそれらの存在をテストする必要があります。NEON命令が利用可能かどうかを確認するためのコードは次のとおりです。
#include "cpu-features.h"
bHasNEON = FALSE;
if (android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM &&
(android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0)
{
// use NEON-optimized routines
bHasNEON = TRUE;
}
ARMV7サポート(ANDROID_CPU_ARM_FEATURE_ARMv7)およびVFPサポート(ANDROID_CPU_ARM_FEATURE_VFPv3)をテストすることもできます