Android 3.0用のアプリケーションを開発しました。これは完全に動作しますが、クライアントは2.2デバイスとの互換性を主張しています。
Android互換性パッケージ、NIOバックポートサポート(タスクとエグゼキューター用)、およびViewメソッドのいくつかの再実装を使用してハードウェアアクセラレーションを無効にするAndroid 2.2で、非常にうまく機能しますが、このapkを新しいデバイスで実行すると、パフォーマンスが非常に遅くなるため、ハードウェアアクセラレーションをオンにする方法を知りたいのですが、2.2APKを使用しています。
追加 Android:hardwareAccelerated="true"
マニフェストに、<activity>
または <application>
。
この属性は古いバージョンのAndroidでは無視されますが、Android 3.0+では適用されます。
これには、ビルドターゲットをAPIレベル11以上に設定する必要がありますが、おそらくすでにそれを持っています。
マニフェストに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以前では呼び出しエラーではありません。
ここ を見て、Androidバージョンに基づいて機能を有効にする方法を確認できます。リフレクションでも実行できますが、不格好です。