Может кто-нибудь объяснить все эти параметры разработчика?

15

Кто-нибудь может объяснить эти варианты разработчика?

  • Принудительный рендеринг на GPU
  • Отключить непрямоугольные операции с клипами
  • Force 4X MSAA
  • Отключить наложения HW

Каковы возможные эффекты, которые можно увидеть на моем устройстве, отключив / включив их? [ Примечание: я нашел другие варианты от Google, но не эти. ]

Влияют ли настройки разработчика на время автономной работы, используя более низкие скорости анимации (все в 2 раза больше) или более высокие скорости анимации (0,5 раза точно) за счет пользовательского опыта?

МАНИ
источник

Ответы:

18

Помните, что это опции разработчика , которые могут быть бесполезны или отрицательно повлиять на производительность вашего устройства.

Принудительный рендеринг на GPU

GPU является графическим процессором. Это очень похоже на процессор, но вместо того, чтобы обрабатывать цифры и заботиться о задачах для операционной системы и оборудования, графический процессор отображает графическую информацию и выводит ее на экран для вас.

Процессор может отлично обрабатывать графические инструкции, но это отнимает время на выполнение других вычислений и может привести к задержке при обработке графических инструкций

Начиная с Ice Cream Sandwich разработчикам (или опытным пользователям) предоставляется возможность принудительно заставлять приложения использовать рендеринг с помощью графического процессора, независимо от того, включен этот бит или нет в манифесте приложения. Это не обязательно делает приложение быстрее и может вызвать проблемы.


Отключить непрямоугольные операции с клипами

Это слишком техническая вещь для меня, чтобы объяснить в деталях. В основном "холст" используется для рисования. Исходный код для 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

Force 4x MSAA не требует рутованного устройства. Этот параметр работает так же, как и любой фильтр сглаживания в играх для ПК, - сглаживает всю пикселизацию и обеспечивает лучший рендеринг, что означает более привлекательную графику. Пользователи должны знать, что эта функция рекомендуется только для устройств с графическим процессором, поддерживающим встроенную поддержку MSAA.

Из Википедии :

В обработке сигналов и смежных дисциплинах псевдонимы - это эффект, который заставляет различные сигналы становиться неразличимыми (или псевдонимами друг друга) при выборке. Это также относится к искажению или артефакту, которые возникают, когда сигнал, восстановленный по выборкам, отличается от исходного непрерывного сигнала.


Отключить наложения HW

Без аппаратного наложения каждое приложение, отображающее объекты на экране, будет совместно использовать видеопамять и будет вынуждено постоянно проверять наличие коллизий и отсечек, чтобы отобразить правильное изображение, это может потребовать значительных вычислительных ресурсов. С аппаратным оверлеем каждое приложение получает свою часть видеопамяти, избавляя от необходимости проверять наличие коллизий и отсечения.

Как сказал @DanHulme: Windows в Android всегда составляется, а не отображается в общей видеопамяти. Обычно SurfaceFlingerдля компоновки используется графический процессор, но он будет использовать аппаратное наложение, когда это возможно, что быстрее и потребляет меньше батареи. Отключение оверлеев означает, что он всегда будет использовать графический процессор. Это полезно только для отладки системной интеграции или декодирования видео HW: даже разработчикам приложений не нужно включать эту опцию

RossC
источник
2
4xMSAA на самом деле не может быть медленнее. На некоторых графических процессорах, таких как Mali-400, разница в скорости между 4xMSAA и отсутствием сглаживания незначительна из-за того, как выполняются фрагментные шейдеры. Стоит также отметить, что это влияет только на приложения GLES и не делает текст и значки в обычных приложениях более четкими.
Дэн Халм
3
Я не думаю, что ваше описание наложения HW является правильным. Windows в Android всегда составляется, а не отображается в общей видеопамяти. Обычно SurfaceFlingerдля компоновки используется графический процессор, но он будет использовать аппаратное наложение, когда это возможно, что быстрее и потребляет меньше батареи. Отключение оверлеев означает, что он всегда будет использовать графический процессор. Это полезно только для отладки системной интеграции или HW-декодирования видео: даже разработчикам приложений не нужно включать эту опцию.
Дэн Халм,
Я вдали от своего компьютера, я буду редактировать, как только смогу, немного запутался. Или не стесняйтесь редактировать
RossC
Обновление для использования обработки gpu заставило само приложение не падать в этом вопросе :-)
Канадец Люк
1
@ Росс Я не думаю, что это оказывает огромное влияние на батарею, только на некоторое энергосбережение, как в Windows, где мы отключаем прозрачную графику (т.е. тему Aero рекомендуется отключать для улучшения времени работы от батареи)
user285oo6