回答:
これらは開発者向けのオプションであり、役に立たないか、デバイスのパフォーマンスに悪影響を与える可能性があることに注意してください。
GPUはグラフィックスプロセッシングユニットです。CPUに非常によく似ていますが、GPUは数字を計算し、オペレーティングシステムとハードウェアのタスクを処理する代わりに、グラフィカル情報をレンダリングして画面に表示します。
CPUはグラフィカルな命令をうまく処理できますが、そうすることで他の計算を行うのに時間がかかり、グラフィカルな命令が処理されている間に遅延が発生する可能性があります
Ice Cream Sandwich以降では、開発者(またはパワーユーザー)に、アプリのマニフェストでビットがオンかオフかにかかわらず、アプリにGPUレンダリングを強制的に使用するオプションが与えられます。これは必ずしもアプリを高速にするわけではなく、問題を引き起こす可能性があります。
これは非常に技術的であるため、詳細に説明することはできません。基本的に、描画には「キャンバス」が使用されます。Androidのソースコードには次のものが含まれています。
/**
* Turn on to **debug non-rectangular clip operations**.
*
* Possible values:
* "hide", to disable this debug mode
* "highlight", highlight drawing commands tested against a non-rectangular clip
* "stencil", renders the clip region on screen when set
*
* @hide
*/
public static final String DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY =
"debug.hwui.show_non_rect_clip";
これをオフにして、異常な(非長方形の)キャンバス領域を作成できます。詳細についてはこちらをご覧ください
@ IanNi-Lewisが彼のコメントで指摘しているように:
「非長方形のクリップ領域」は少し誤解を招く可能性があることを指摘する価値があるでしょう。「スクリーンに揃えられた長方形ではないクリップ領域」である必要があります。90の非倍数だけ回転した長方形のクリップ領域がある場合、ドーナツのような形のクリップ領域と同じ低速パスをたどります。(「低速パス」はステンシルバッファを使用し、おそらく低速である必要はありません。将来の最適化に適した領域です。)
Force 4x MSAAはルート化されたデバイスを必要としません。このオプションは、PCゲームのアンチエイリアシングフィルターと同じです-すべてのピクセル化を滑らかにし、より良いレンダリングを提供します。この機能は、ネイティブMSAAサポートが可能なGPUを搭載したデバイスにのみ推奨されることをユーザーは知っておく必要があります。
ウィキペディアから:
信号処理および関連する分野では、エイリアシングは、サンプリング時に異なる信号を区別できない(または互いのエイリアス)ようにする効果です。また、サンプルから再構築された信号が元の連続信号と異なる場合に生じる歪みまたはアーチファクトも指します。
ハードウェアオーバーレイを使用しないと、画面に表示しているすべてのアプリケーションはビデオメモリを共有し、適切な画像をレンダリングするために衝突とクリッピングを常にチェックする必要があります。これにより、多くの処理能力が必要になります。ハードウェアオーバーレイを使用すると、各アプリケーションはビデオメモリの独自の部分を取得するため、衝突やクリッピングをチェックする必要がなくなります。
@DanHulmeが言ったように、Androidのウィンドウは共有ビデオメモリにレンダリングされるのではなく、常に合成されます。通常、SurfaceFlinger
構成にはGPUを使用しますが、可能であればハードウェアオーバーレイを使用します。オーバーレイを無効にすると、常にGPUレンダリングが使用されます。これは、システム統合またはHWビデオデコードのデバッグにのみ役立ちます。アプリ開発者でさえ、このオプションをオンにする必要はありません。
SurfaceFlinger
構成にはGPUを使用しますが、可能であればハードウェアオーバーレイを使用します。オーバーレイを無効にすると、常にGPUレンダリングが使用されます。これは、システム統合またはHWビデオデコードのデバッグにのみ役立ちます。アプリ開発者でさえ、このオプションをオンにする必要はありません。