web-dev-qa-db-ja.com

可能な場合はハードウェアアクセラレーションをオンにします(Android 3+)with Android APK 2.2

Android 3.0用のアプリケーションを開発しました。これは完全に動作しますが、クライアントは2.2デバイスとの互換性を主張しています。

Android互換性パッケージ、NIOバックポートサポート(タスクとエグゼキューター用)、およびViewメソッドのいくつかの再実装を使用してハードウェアアクセラレーションを無効にするAndroid 2.2で、非常にうまく機能しますが、このapkを新しいデバイスで実行すると、パフォーマンスが非常に遅くなるため、ハードウェアアクセラレーションをオンにする方法を知りたいのですが、2.2APKを使用しています。

17

追加 Android:hardwareAccelerated="true"マニフェストに、<activity> または <application>

この属性は古いバージョンのAndroidでは無視されますが、Android 3.0+では適用されます。

これには、ビルドターゲットをAPIレベル11以上に設定する必要がありますが、おそらくすでにそれを持っています。

30
CommonsWare

マニフェストにAndroid:hardwareAccelerated="true"を追加するのではなく、古いOS(2.3.X以前)バージョンのサポートデバイスが必要な場合は、Javaに次のコードを追加してみてください。

try { if( Build.VERSION.SDK_INT >= 11) getWindow().setFlags( 16777216, 16777216); } catch( Exception e) {} // FLAG_HARDWARE_ACCELERATED == 16777216 (0x01000000)

これはOS3.0 ++で機能し、2.3.X以前では呼び出しエラーではありません。

3
Tapa Save

ここ を見て、Androidバージョンに基づいて機能を有効にする方法を確認できます。リフレクションでも実行できますが、不格好です。

2
omermuhammed