web-dev-qa-db-ja.com

<activity>または<application>でAndroid:hardwareAccelerated = "true"を設定する

GPUに大きく依存しているアプリでハードウェアアクセラレーションを使用する必要があります。いくつかのフォーラムで、Android:hardwareAccelerated="true"内部<application>および他のフォーラムと同じ属性<activity>私の内部AndroidManifest.xml。以下は、それがどのように見えるかの表現です:

<application
    ...
    Android:hardwareAccelerated="true"
    ...>
    <activity
        ...
        Android:hardwareAccelerated="true"
        ...>
    </activity>
</application>

私は両方で設定することになりましたが、どちらが正しい方法で、どのような違いがありますか?

8
Serj Ardovic

ハードウェアアクセラレーションはデフォルトで有効になっているため、無効にする必要がない限り、設定する必要はありません。 ドキュメント で述べたように:

ターゲットAPIレベルが14以上の場合、ハードウェアアクセラレーションはデフォルトで有効になっていますが、明示的に有効にすることもできます。

あなたの質問に答えるために。アプリケーションタグで設定すると、アプリケーション全体に影響し、アクティビティタグで設定すると、そのアクティビティに影響します。

アプリケーションレベル

Androidマニフェストファイルで、タグに次の属性を追加して、アプリケーション全体のハードウェアアクセラレーションを有効にします。

<application Android:hardwareAccelerated="true" ...>

活動レベル

ハードウェアアクセラレーションがグローバルにオンになっている状態でアプリケーションが適切に動作しない場合は、個々のアクティビティに対しても制御できます。アクティビティレベルでハードウェアアクセラレーションを有効または無効にするには、要素にAndroid:hardwareAccelerated属性を使用できます。次の例では、アプリケーション全体に対してハードウェアアクセラレーションを有効にしますが、1つのアクティビティに対しては無効にします。

<application Android:hardwareAccelerated="true">
    <activity ... />
    <activity Android:hardwareAccelerated="false" />
</application>
14
Alex.F

<application>を設定すると、アプリ全体にhardwareAccelerated機能があり、<activity>で再度設定する必要はありませんが、アプリケーションがハードウェアアクセラレーションはグローバルにオンになり、<activity>に設定できます。これは、アプリ全体ではなく、特定のアクティビティにhardwareAccelerated機能があることを意味します。あなたの場合、<application>タグでのみ設定できると思います。

詳細はこちらをご覧ください。 https://developer.Android.com/guide/topics/graphics/hardware-accel

3
Tepits