В этом документе описывается настройка производительности, которую вы можете выполнить, чтобы получить максимальную отдачу от вашего оборудования.
Свойства OpenGLRenderer (libhwui)
В этом документе перечислены все свойства, которые можно использовать для управления конвейером 2D-рендеринга с аппаратным ускорением Android. Установите эти свойства в device.mk
как PRODUCT_PROPERTY_OVERRIDES
.
Свойства для всех версий Android
Имущество | Тип | Значение по умолчанию | Описание |
---|---|---|---|
ro.zygote.disable_gl_preload | boolean | false | Используется для включения/отключения предварительной загрузки драйверов EGL/GL в Zygote во время загрузки. Если для этого свойства установлено значение false, Zygote предварительно загрузит драйверы GL, вызвав eglGetDisplay(EGL_DEFAULT_DISPLAY). Цель состоит в том, чтобы загрузить код динамических библиотек в Zygote, чтобы поделиться им со всеми другими процессами. Если драйвер не поддерживает совместное использование, установите для этого свойства значение true. |
Свойства для Android 8.0 и ниже
Имущество | Тип | Значение по умолчанию | Описание |
---|---|---|---|
ro.hwui.disable_scissor_opt | boolean | false | Используется для включения или отключения ножничной оптимизации. Принятые значения являются истинными и ложными. Когда оптимизация ножниц включена, OpenGLRenderer пытается свести к минимуму использование ножниц, выборочно включая и отключая тест ножниц GL. Когда оптимизация отключена, OpenGLRenderer сохраняет включенным тест ножниц GL и при необходимости изменяет прямоугольник ножниц. Некоторые графические процессоры (например, SGX 540) работают лучше при более частом изменении прямоугольника с ножницами, чем при частом включении или отключении теста с ножницами. |
ro.hwui.texture_cache_size | float | 24 | Определяет размер в мегабайтах кэша текстуры для каждого процесса. Мы рекомендуем использовать кеш, достаточно большой, чтобы вместить несколько экранов с 32-битными текстурами (например, на дисплее с разрешением 1280x800 полноэкранный буфер занимает около 4 МБ, поэтому размер кеша должен быть не менее 20 МБ). |
ro.hwui.layer_cache_size | float | 16 | Определяет размер в мегабайтах кэша слоев процесса. Мы рекомендуем использовать кеш, достаточно большой, чтобы вместить в 4 раза больше экрана в 32 бита. Например, на дисплее с разрешением 1280x800 полноэкранный буфер использует около 4 МБ, поэтому кэш должен быть не менее 16 МБ. |
ro.hwui.gradient_cache_size | 0.5 | float | Определяет размер в мегабайтах кэша градиентов для каждого процесса. Один градиент обычно занимает от 1 до 4 КБ памяти. Рекомендуется использовать достаточно большой кэш, чтобы вместить не менее двенадцати градиентов. |
ro.hwui.patch_cache_size | integer | 128 | Определяет размер в килобайтах кэша с 9 исправлениями для каждого процесса. Этот кэш содержит только данные вершин и поэтому может быть небольшим. Каждая вершина состоит из 4 чисел с плавающей запятой или 16 байтов. |
ro.hwui.path_cache_size | float | 4 | Определяет размер в мегабайтах кэша путей процесса. Мы рекомендуем использовать кеш, достаточно большой, чтобы вместить хотя бы один экран с 32-битными текстурами. Например, на дисплее с разрешением 1280x800 полноэкранный буфер использует около 4 МБ, поэтому кэш должен быть не менее 4 МБ. |
ro.hwui.shape_cache_size | float | 1 | Определяет размер в мегабайтах кэшей форм для каждого процесса. Это значение используется несколькими кэшами, такими как круги и прямоугольники со скругленными углами. Мы рекомендуем использовать кеш достаточно большой, чтобы вместить хотя бы один 8-битный экран. Например, на дисплее с разрешением 1280x800 полноэкранный буфер использует около 1 МБ, поэтому кэш должен быть не менее 1 МБ. |
ro.hwui.drop_shadow_cache_size | float | 2 | Определяет размер в мегабайтах кэша теней текста для каждого процесса. Мы рекомендуем использовать кеш, достаточно большой, чтобы вместить два экрана с 8-битными текстурами. Например, на дисплее с разрешением 1280x800 полноэкранный буфер использует около 1 МБ, поэтому кэш должен быть не менее 2 МБ. |
ro.hwui.r_buffer_cache_size | float | 2 | Определяет размер в мегабайтах кэша буферов рендеринга для каждого процесса. Рекомендуется использовать кеш, достаточно большой, чтобы вместить в два раза больше экрана в 8 бит. Например, на дисплее с разрешением 1280x800 полноэкранный буфер использует около 1 МБ, поэтому кэш должен быть не менее 2 МБ. Кэш может быть меньше, если устройство поддерживает 4-битные или 1-битные буферы трафарета. |
ro.hwui.texture_cache_flush_rate | float | 0.6 | Определяет процент кэша текстур, который будет сохраняться после сброса памяти. Очистка памяти запускается, когда системе необходимо освободить память для всех приложений. Мы рекомендуем освобождать около 50% кеша в таких ситуациях. |
ro.hwui.text_small_cache_width | integer | 1024 | Определяет ширину в пикселях кэша шрифтов по умолчанию. Верхняя граница зависит от того, насколько быстро GPU может загружать текстуры. Мы рекомендуем использовать не менее 1024 пикселей, но не более 2048 пикселей. Вы также должны использовать степень двойки. |
ro.hwui.text_small_cache_height | integer | 256 | Определяет высоту в пикселях кэша шрифтов по умолчанию. Верхняя граница зависит от того, насколько быстро GPU может загружать текстуры. Мы рекомендуем использовать не менее 256 пикселей, но не более 1024 пикселей. |
ro.hwui.text_large_cache_width | integer | 2048 | Определяет ширину кэша больших шрифтов в пикселях. Этот кеш используется для глифов, которые слишком велики, чтобы поместиться в кеш шрифтов по умолчанию. Верхняя граница зависит от того, насколько быстро GPU может загружать текстуры. Мы рекомендуем использовать не менее 2048 пикселей, но не более 4096 пикселей. Вы также должны использовать степень двойки. |
ro.hwui.text_large_cache_height | integer | 512 | Определяет высоту кэша больших шрифтов в пикселях. Кэш больших шрифтов используется для глифов, слишком больших для размещения в кеше шрифтов по умолчанию. Верхняя граница зависит от того, насколько быстро GPU может загружать текстуры. Мы рекомендуем использовать не менее 512 пикселей, но не более 2048 пикселей. Вы также должны использовать степень двойки. |
hwui.text_gamma_correction | string | lookup | Выбирает технику гамма-коррекции текста. Возможны четыре варианта:
lookup по умолчанию, который предлагает хороший компромисс с точки зрения качества, скорости и использования памяти. |
hwui.text_gamma | float | 1.4 | Определяет значение гаммы, используемое для коррекции гаммы текста. Это значение можно настроить в зависимости от дисплея, используемого устройством. |
hwui.text_gamma.black_threshold | integer | 64 | Определяет порог яркости, ниже которого применяется гамма-коррекция черного. Значение должно быть определено в диапазоне 0..255. |
hwui.text_gamma.white_threshold | integer | 192 | Определяет порог яркости, выше которого применяется гамма-коррекция белого. Значение должно быть определено в диапазоне 0..255. |
hwui.use_gpu_pixel_buffers | boolean | true | Используется для включения или отключения использования PBO на оборудовании OpenGL ES 3.0. PBO используются средством визуализации для выполнения асинхронной загрузки текстур, особенно для кеша шрифтов. Это свойство всегда должно оставаться включенным, но его можно отключить во время запуска или разработки, если использование PBO вызывает повреждения или ужасную производительность. Вот почему свойство не доступно только для чтения. |