誰でもこれらのすべての開発者オプションを説明できますか?


14

誰でもこれらの開発者オプションを説明できますか?

  • GPUレンダリングを強制する
  • 非長方形のクリップ操作を無効にする
  • 4X MSAAを強制する
  • HWオーバーレイを無効にする

デバイスを無効/有効にすることで、デバイスに表示される可能性のある効果は何ですか?[ 注:Google-ingには他のオプションがありますが、これらはありません。]

開発者の設定は、ユーザーエクスペリエンスを犠牲にして低速のアニメーション速度(すべて2倍に正確に)または高速のアニメーション速度(正確に0.5 倍に)を使用することにより、バッテリー寿命に影響しますか?

回答:


17

これらは開発者向けのオプションであり、役に立たないか、デバイスのパフォーマンスに悪影響を与える可能性があることに注意してください。

GPUレンダリングを強制する

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の非倍数だけ回転した長方形のクリップ領域がある場合、ドーナツのような形のクリップ領域と同じ低速パスをたどります。(「低速パス」はステンシルバッファを使用し、おそらく低速である必要はありません。将来の最適化に適した領域です。)


4X MSAAを強制する

Force 4x MSAAはルート化されたデバイスを必要としません。このオプションは、PCゲームのアンチエイリアシングフィルターと同じです-すべてのピクセル化を滑らかにし、より良いレンダリングを提供します。この機能は、ネイティブMSAAサポートが可能なGPUを搭載したデバイスにのみ推奨されることをユーザーは知っておく必要があります。

ウィキペディアから:

信号処理および関連する分野では、エイリアシングは、サンプリング時に異なる信号を区別できない(または互いのエイリアス)ようにする効果です。また、サンプルから再構築された信号が元の連続信号と異なる場合に生じる歪みまたはアーチファクトも指します。


HWオーバーレイを無効にする

ハードウェアオーバーレイを使用しないと、画面に表示しているすべてのアプリケーションはビデオメモリを共有し、適切な画像をレンダリングするために衝突とクリッピングを常にチェックする必要があります。これにより、多くの処理能力が必要になります。ハードウェアオーバーレイを使用すると、各アプリケーションはビデオメモリの独自の部分を取得するため、衝突やクリッピングをチェックする必要がなくなります。

@DanHulmeが言ったように、Androidのウィンドウは共有ビデオメモリにレンダリングされるのではなく、常に合成されます。通常、SurfaceFlinger構成にはGPUを使用しますが、可能であればハードウェアオーバーレイを使用します。オーバーレイを無効にすると、常にGPUレンダリングが使用されます。これは、システム統合またはHWビデオデコードのデバッグにのみ役立ちます。アプリ開発者でさえ、このオプションをオンにする必要はありません。


2
4xMSAAは実際には遅くないかもしれません。Mali-400などの特定のGPUでは、フラグメントシェーダーの実行方法により、4xMSAAとアンチエイリアスなしの速度差は無視できます。また、これはGLESアプリケーションにのみ影響し、通常のアプリのテキストやアイコンがより鮮明になることはありません。
ダンハルム

3
HWオーバーレイの説明が正しいとは思わない。AndroidのWindowsは、共有ビデオメモリにレンダリングされるのではなく、常に合成されます。通常、SurfaceFlinger構成にはGPUを使用しますが、可能であればハードウェアオーバーレイを使用します。オーバーレイを無効にすると、常にGPUレンダリングが使用されます。これは、システム統合またはHWビデオデコードのデバッグにのみ役立ちます。アプリ開発者でさえ、このオプションをオンにする必要はありません。
ダンヒューム14

PCから離れているので、できるだけ早く編集しますが、少し混乱します。または自由に編集してください
RossC 14

GPU処理を使用するように更新すると、この質問でseアプリがクラッシュしなくなりました:-)
カナダのルーク14

1
@Ross透明なグラフィックスを無効にするWindowsのようなバッテリー節約だけでバッテリーに大きな影響を与えるとは思わない(つまり、Aeroテーマは、バッテリー時間を改善するために無効にすることをお勧めします)
user285oo6
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.