Установка android: hardwareAccelerated = "true" в <activity>или в <application> - PullRequest
0 голосов
/ 30 августа 2018

Я хочу, чтобы мое приложение, которое сильно зависит от графического процессора, использовало аппаратное ускорение. На некоторых форумах мне предлагалось установить android:hardwareAccelerated="true" внутри <application>, а на других форумах такой же атрибут внутри <activity> внутри моего AndroidManifest.xml. Ниже приведено представление о том, как это выглядит:

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

Я закончил настройкой обоих, но мне интересно, какой из них правильный, и в чем разница?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Аппаратное ускорение включено по умолчанию, поэтому вам не нужно устанавливать его, если вам не нужно его отключать. Как сказано в документации :

Аппаратное ускорение включено по умолчанию, если ваш уровень целевого API> = 14, но также может быть явно включено.

Чтобы ответить на ваш вопрос. Установка его в тег приложения влияет на все ваше приложение, а установка в тег активности влияет на это действие.

Уровень применения

В файле манифеста Android добавьте в тег следующий атрибут, чтобы включить аппаратное ускорение для всего приложения:

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

Уровень активности

Если ваше приложение не работает должным образом с аппаратным ускорением, включенным во всем мире, вы также можете управлять им для отдельных действий. Чтобы включить или отключить аппаратное ускорение на уровне активности, вы можете использовать атрибут android: hardwareAccelerated для элемента. В следующем примере включается аппаратное ускорение для всего приложения, но отключается его для одного действия:

<application android:hardwareAccelerated="true">
    <activity ... />
    <activity android:hardwareAccelerated="false" />
</application>
0 голосов
/ 30 августа 2018

Если вы установили <application>, это означает, что все приложение имеет функцию hardwareAccelerated, и вам не нужно устанавливать ее снова на <activity>, но если ваше приложение не работает должным образом с включенным аппаратным ускорением в глобальном масштабе вы можете установить его на <activity>, и это означает, что только конкретное действие имеет функцию hardwareAccelerated, а не все приложение. Поэтому я думаю, что в вашем случае вы можете установить его только на тег <application>.

Подробнее здесь. https://developer.android.com/guide/topics/graphics/hardware-accel

...