Циферблат Wear OS работает непрерывно, поэтому он должен эффективно использовать энергию.
Максимально оптимизируйте работу циферблата. На этой странице представлены рекомендации по общей оптимизации циферблата, а также рекомендации по анимации и изображениям.
Базовая оптимизация
В этом разделе представлены рекомендации по повышению общей эффективности циферблата.
Цвет и яркость циферблата часов
Использование темных цветов на циферблате потребляет меньше энергии от часов пользователя. Ниже приведены рекомендации по настройке фона циферблата для оптимизации использования батареи циферблата:
- Цвет: по возможности используйте черный фон.
- Яркость: если черный фон невозможен, поддерживайте яркость цвета фона на уровне 25 % или ниже по шкале оттенка, насыщенности, значения (HSV) или оттенка, насыщенности, яркости (HSB). Например, если вы используете класс
Color
для установки цвета фона, определенного по шкале HSV, используйте значение 25 или ниже для настройки значения, которое управляет яркостью.
Используйте динамические возможности для взаимодействия с телефоном
Если циферблат требует выполнения операции на телефоне, выполняйте код только тогда, когда циферблат активен. Рекомендуемый метод, позволяющий приложению на телефоне узнать, что соответствующий циферблат активен, — API CapabilityClient .
Мониторинг энергопотребления
Приложение-компаньон Wear OS позволяет разработчикам и пользователям видеть, сколько заряда батареи расходуется различными процессами на носимом устройстве. Чтобы увидеть это, перейдите в «Настройки» > «Следить за аккумулятором» .
Зарегистрируйте циферблаты с поддержкой шифрования
Android 7.0 и более поздние версии включают поддержку шифрования файлов и позволяют запускать приложения, поддерживающие шифрование , до того, как пользователь введет пароль для расшифровки при загрузке. Это может сократить продолжительность перехода от анимации загрузки к циферблату до 30 секунд.
Чтобы ускорить загрузку, добавьте android:directBootAware="true"
в манифест циферблата.
Примечание. Используйте эту функцию с циферблатами, которые не используют хранилище с шифрованием учетных данных.
Лучшие практики для анимации
Рекомендации из этого раздела помогают снизить энергопотребление, связанное с анимацией.
Уменьшите частоту кадров анимации
Анимации часто требуют больших вычислительных затрат и потребляют значительное количество энергии. Большинство анимаций выглядят плавно при частоте 30 кадров в секунду, поэтому избегайте запуска анимации с более высокой частотой кадров. Вместо этого вы можете использовать динамическую частоту кадров. Для получения дополнительной информации см. пример циферблата Canvas .
Пусть процессор спит между анимациями
Чтобы продлить срок службы батареи, используйте анимацию экономно. Даже мигающее двоеточие расходует заряд батареи при каждом моргании.
Анимация и небольшие изменения содержимого циферблата пробуждают процессор. Позвольте процессору спать между анимациями, например, используя короткие всплески анимации каждую секунду в интерактивном режиме, а затем позволяя процессору спать до следующей секунды. Частый, даже кратковременный перевод процессора в режим сна может значительно снизить энергопотребление.
Рекомендации по работе с изображениями
Рекомендации из этого раздела помогают снизить энергопотребление, связанное с изображениями.
Уменьшите размер ваших растровых ресурсов
Многие циферблаты состоят из фонового изображения и других графических ресурсов, которые преобразуются и накладываются на фоновое изображение, например стрелки часов и другие элементы, которые перемещаются во времени. Чем больше эти графические ресурсы, тем дороже в вычислительном отношении их преобразование. Обычно эти графические элементы поворачиваются, а иногда и масштабируются внутри Render.CanvasRenderer.render()
каждый раз, когда система перерисовывает циферблат, как описано в разделе «Рисование циферблата» .
Уменьшение размера растровых ресурсов повышает производительность анимации и экономит электроэнергию. Следуйте этим советам, чтобы улучшить производительность циферблата:
- Не используйте графические элементы большего размера, чем вам нужно.
- Удалите лишние прозрачные пиксели по краям.
Например, размер изображения стрелки часов слева на рисунке 1 можно уменьшить на 97 %, удалив лишние прозрачные пиксели, как показано в правой части рисунка.
Объединение растровых ресурсов
Если у вас есть растровые изображения, которые часто рисуются вместе, рассмотрите возможность объединения их в один графический ресурс. Например, вы часто можете комбинировать фоновое изображение в интерактивном режиме с делениями, чтобы избежать рисования двух полноэкранных растровых изображений каждый раз, когда система перерисовывает циферблат.
Отключить сглаживание при рисовании масштабированных растровых изображений.
Когда вы рисуете масштабированное растровое изображение на объекте Canvas
с помощью метода Canvas.drawBitmap()
, вы можете предоставить экземпляр Paint
для настройки нескольких параметров. Чтобы повысить производительность, отключите сглаживание с помощью метода setAntiAlias()
, поскольку этот параметр не влияет на растровые изображения.
Используйте фильтрацию растровых изображений
Для растровых ресурсов, которые вы рисуете поверх других элементов, включите фильтрацию растровых изображений в том же экземпляре Paint
с помощью метода setFilterBitmap()
. На рис. 2 показано увеличенное изображение стрелки часов с растровой фильтрацией и без нее.
Примечание. Когда активен окружающий режим, отключите фильтрацию растровых изображений. В низкобитовом окружающем режиме система не может надежно отображать цвета изображения для успешной обработки растровой фильтрацией.
Вынесите дорогостоящие операции за пределы метода рисования.
Система вызывает метод Render.CanvasRenderer.render()
каждый раз, когда перерисовывает циферблат. Чтобы повысить производительность, включайте в этот метод только те операции, которые строго необходимы для обновления циферблата.
По возможности избегайте выполнения следующих операций внутри метода Render.CanvasRenderer.render()
:
- Загрузка изображений и других ресурсов
- Изменение размера изображений
- Распределение объектов
- Вычисления, результаты которых не меняются между кадрами
Чтобы проанализировать производительность циферблата, используйте CPU Profiler. В частности, убедитесь, что время выполнения вашей реализации Render.CanvasRenderer.render()
короткое и единообразное для всех вызовов. Дополнительные сведения см. в разделе Проверка активности ЦП с помощью CPU Profiler .
Связанные ресурсы
Пример приложения циферблата демонстрирует рекомендации по настройке циферблата. ,
Циферблат Wear OS работает непрерывно, поэтому он должен эффективно использовать энергию.
Максимально оптимизируйте работу циферблата. На этой странице представлены рекомендации по общей оптимизации циферблата, а также рекомендации по анимации и изображениям.
Базовая оптимизация
В этом разделе представлены рекомендации по повышению общей эффективности циферблата.
Цвет и яркость циферблата часов
Использование темных цветов на циферблате потребляет меньше энергии от часов пользователя. Ниже приведены рекомендации по настройке фона циферблата для оптимизации использования батареи циферблата:
- Цвет: по возможности используйте черный фон.
- Яркость: если черный фон невозможен, поддерживайте яркость цвета фона на уровне 25 % или ниже по шкале оттенка, насыщенности, значения (HSV) или оттенка, насыщенности, яркости (HSB). Например, если вы используете класс
Color
для установки цвета фона, определенного по шкале HSV, используйте значение 25 или ниже для настройки значения, которое управляет яркостью.
Используйте динамические возможности для взаимодействия с телефоном
Если циферблат требует выполнения операции на телефоне, выполняйте код только тогда, когда циферблат активен. Рекомендуемый метод, позволяющий приложению на телефоне узнать, что соответствующий циферблат активен, — API CapabilityClient .
Мониторинг энергопотребления
Приложение-компаньон Wear OS позволяет разработчикам и пользователям видеть, сколько заряда батареи расходуется различными процессами на носимом устройстве. Чтобы увидеть это, перейдите в «Настройки» > «Следить за аккумулятором» .
Зарегистрируйте циферблаты с поддержкой шифрования
Android 7.0 и более поздние версии включают поддержку шифрования файлов и позволяют запускать приложения, поддерживающие шифрование , до того, как пользователь введет пароль для расшифровки при загрузке. Это может сократить продолжительность перехода от анимации загрузки к циферблату до 30 секунд.
Чтобы ускорить загрузку, добавьте android:directBootAware="true"
в манифест циферблата.
Примечание. Используйте эту функцию с циферблатами, которые не используют хранилище с шифрованием учетных данных.
Лучшие практики для анимации
Рекомендации из этого раздела помогают снизить энергопотребление, связанное с анимацией.
Уменьшите частоту кадров анимации
Анимации часто требуют больших вычислительных затрат и потребляют значительное количество энергии. Большинство анимаций выглядят плавно при частоте 30 кадров в секунду, поэтому избегайте запуска анимации с более высокой частотой кадров. Вместо этого вы можете использовать динамическую частоту кадров. Для получения дополнительной информации см. пример циферблата Canvas .
Пусть процессор спит между анимациями
Чтобы продлить срок службы батареи, используйте анимацию экономно. Даже мигающее двоеточие расходует заряд батареи при каждом моргании.
Анимация и небольшие изменения содержимого циферблата пробуждают процессор. Позвольте процессору спать между анимациями, например, используя короткие всплески анимации каждую секунду в интерактивном режиме, а затем позволяя процессору спать до следующей секунды. Частый, даже кратковременный переход процессора в режим сна может значительно снизить энергопотребление.
Рекомендации по работе с изображениями
Рекомендации из этого раздела помогают снизить энергопотребление, связанное с изображениями.
Уменьшите размер ваших растровых ресурсов
Многие циферблаты состоят из фонового изображения и других графических ресурсов, которые преобразуются и накладываются на фоновое изображение, например стрелки часов и другие элементы, которые перемещаются во времени. Чем больше эти графические ресурсы, тем дороже в вычислительном отношении их преобразование. Обычно эти графические элементы поворачиваются, а иногда и масштабируются внутри Render.CanvasRenderer.render()
каждый раз, когда система перерисовывает циферблат, как описано в разделе «Рисование циферблата» .
Уменьшение размера растровых ресурсов повышает производительность анимации и экономит электроэнергию. Следуйте этим советам, чтобы улучшить производительность циферблата:
- Не используйте графические элементы большего размера, чем вам нужно.
- Удалите лишние прозрачные пиксели по краям.
Например, размер изображения стрелки часов слева на рисунке 1 можно уменьшить на 97 %, удалив лишние прозрачные пиксели, как показано в правой части рисунка.
Объединение растровых ресурсов
Если у вас есть растровые изображения, которые часто рисуются вместе, рассмотрите возможность объединения их в один графический ресурс. Например, вы часто можете комбинировать фоновое изображение в интерактивном режиме с делениями, чтобы избежать рисования двух полноэкранных растровых изображений каждый раз, когда система перерисовывает циферблат.
Отключить сглаживание при рисовании масштабированных растровых изображений.
Когда вы рисуете масштабированное растровое изображение на объекте Canvas
с помощью метода Canvas.drawBitmap()
, вы можете предоставить экземпляр Paint
для настройки нескольких параметров. Чтобы повысить производительность, отключите сглаживание с помощью метода setAntiAlias()
, поскольку этот параметр не влияет на растровые изображения.
Используйте фильтрацию растровых изображений
Для растровых ресурсов, которые вы рисуете поверх других элементов, включите фильтрацию растровых изображений в том же экземпляре Paint
с помощью метода setFilterBitmap()
. На рис. 2 показано увеличенное изображение стрелки часов с растровой фильтрацией и без нее.
Примечание. Когда активен окружающий режим, отключите фильтрацию растровых изображений. В низкобитовом окружающем режиме система не может надежно отображать цвета изображения для успешной обработки растровой фильтрацией.
Вынесите дорогостоящие операции за пределы метода рисования.
Система вызывает метод Render.CanvasRenderer.render()
каждый раз, когда перерисовывает циферблат. Чтобы повысить производительность, включайте в этот метод только те операции, которые строго необходимы для обновления циферблата.
По возможности избегайте выполнения следующих операций внутри метода Render.CanvasRenderer.render()
:
- Загрузка изображений и других ресурсов
- Изменение размера изображений
- Распределение объектов
- Вычисления, результаты которых не меняются между кадрами
Чтобы проанализировать производительность циферблата, используйте CPU Profiler. В частности, убедитесь, что время выполнения вашей реализации Render.CanvasRenderer.render()
короткое и единообразное для всех вызовов. Дополнительные сведения см. в разделе Проверка активности ЦП с помощью CPU Profiler .
Связанные ресурсы
Пример приложения циферблата демонстрирует рекомендации по настройке циферблата. ,
Циферблат Wear OS работает непрерывно, поэтому он должен эффективно использовать энергию.
Максимально оптимизируйте работу циферблата. На этой странице представлены рекомендации по общей оптимизации циферблата, а также рекомендации по анимации и изображениям.
Базовая оптимизация
В этом разделе представлены рекомендации по повышению общей эффективности циферблата.
Цвет и яркость циферблата часов
Использование темных цветов на циферблате потребляет меньше энергии от часов пользователя. Ниже приведены рекомендации по настройке фона циферблата для оптимизации использования батареи циферблата:
- Цвет: по возможности используйте черный фон.
- Яркость: если черный фон невозможен, поддерживайте яркость цвета фона на уровне 25 % или ниже по шкале оттенка, насыщенности, значения (HSV) или оттенка, насыщенности, яркости (HSB). Например, если вы используете класс
Color
для установки цвета фона, определенного по шкале HSV, используйте значение 25 или ниже для настройки значения, которое управляет яркостью.
Используйте динамические возможности для взаимодействия с телефоном
Если циферблат требует выполнения операции на телефоне, выполняйте код только тогда, когда циферблат активен. Рекомендуемый метод, позволяющий приложению на телефоне узнать, что соответствующий циферблат активен, — API CapabilityClient .
Мониторинг энергопотребления
Приложение-компаньон Wear OS позволяет разработчикам и пользователям видеть, сколько заряда батареи расходуется различными процессами на носимом устройстве. Чтобы увидеть это, перейдите в «Настройки» > «Следить за аккумулятором» .
Зарегистрируйте циферблаты с поддержкой шифрования
Android 7.0 и более поздние версии включают поддержку шифрования файлов и позволяют запускать приложения, поддерживающие шифрование , до того, как пользователь введет пароль для расшифровки при загрузке. Это может сократить продолжительность перехода от анимации загрузки к циферблату до 30 секунд.
Чтобы ускорить загрузку, добавьте android:directBootAware="true"
в манифест циферблата.
Примечание. Используйте эту функцию с циферблатами, которые не используют хранилище с шифрованием учетных данных.
Лучшие практики для анимации
Рекомендации из этого раздела помогают снизить энергопотребление, связанное с анимацией.
Уменьшите частоту кадров анимации
Анимации часто требуют больших вычислительных затрат и потребляют значительное количество энергии. Большинство анимаций выглядят плавно при частоте 30 кадров в секунду, поэтому избегайте запуска анимации с более высокой частотой кадров. Вместо этого вы можете использовать динамическую частоту кадров. Для получения дополнительной информации см. пример циферблата Canvas .
Пусть процессор спит между анимациями
Чтобы продлить срок службы батареи, используйте анимацию экономно. Даже мигающее двоеточие расходует заряд батареи при каждом моргании.
Анимация и небольшие изменения содержимого циферблата пробуждают процессор. Позвольте процессору спать между анимациями, например, используя короткие всплески анимации каждую секунду в интерактивном режиме, а затем позволяя процессору спать до следующей секунды. Частый, даже кратковременный перевод процессора в режим сна может значительно снизить энергопотребление.
Рекомендации по работе с изображениями
Рекомендации из этого раздела помогают снизить энергопотребление, связанное с изображениями.
Уменьшите размер ваших растровых ресурсов
Многие циферблаты состоят из фонового изображения и других графических ресурсов, которые преобразуются и накладываются на фоновое изображение, например стрелки часов и другие элементы, которые перемещаются во времени. Чем больше эти графические ресурсы, тем дороже в вычислительном отношении их преобразование. Обычно эти графические элементы поворачиваются, а иногда и масштабируются внутри метода Render.CanvasRenderer.render()
каждый раз, когда система перерисовывает циферблат, как описано в разделе «Нарисование циферблата» .
Уменьшение размера растровых ресурсов повышает производительность анимации и экономит электроэнергию. Следуйте этим советам, чтобы улучшить производительность циферблата:
- Не используйте графические элементы большего размера, чем вам нужно.
- Удалите лишние прозрачные пиксели по краям.
Например, размер изображения стрелки часов слева на рисунке 1 можно уменьшить на 97 %, удалив лишние прозрачные пиксели, как показано в правой части рисунка.
Объединение растровых ресурсов
Если у вас есть растровые изображения, которые часто рисуются вместе, рассмотрите возможность объединения их в один графический ресурс. Например, вы часто можете комбинировать фоновое изображение в интерактивном режиме с делениями, чтобы избежать рисования двух полноэкранных растровых изображений каждый раз, когда система перерисовывает циферблат.
Отключить сглаживание при рисовании масштабированных растровых изображений.
Когда вы рисуете масштабированное растровое изображение на объекте Canvas
с помощью метода Canvas.drawBitmap()
, вы можете предоставить экземпляр Paint
для настройки нескольких параметров. Чтобы повысить производительность, отключите сглаживание с помощью метода setAntiAlias()
, поскольку этот параметр не влияет на растровые изображения.
Используйте фильтрацию растровых изображений
Для растровых ресурсов, которые вы рисуете поверх других элементов, включите фильтрацию растровых изображений в том же экземпляре Paint
с помощью метода setFilterBitmap()
. На рис. 2 показано увеличенное изображение стрелки часов с растровой фильтрацией и без нее.
Примечание. Когда активен окружающий режим, отключите фильтрацию растровых изображений. В низкобитовом окружающем режиме система не может надежно отображать цвета изображения для успешной обработки растровой фильтрацией.
Вынесите дорогостоящие операции за пределы метода рисования.
Система вызывает метод Render.CanvasRenderer.render()
каждый раз, когда перерисовывает циферблат. Чтобы повысить производительность, включайте в этот метод только те операции, которые строго необходимы для обновления циферблата.
По возможности избегайте выполнения следующих операций внутри метода Render.CanvasRenderer.render()
:
- Загрузка изображений и других ресурсов
- Изменение размера изображений
- Распределение объектов
- Вычисления, результаты которых не меняются между кадрами
Чтобы проанализировать производительность циферблата, используйте CPU Profiler. В частности, убедитесь, что время выполнения вашей реализации Render.CanvasRenderer.render()
короткое и единообразное для всех вызовов. Дополнительные сведения см. в разделе Проверка активности ЦП с помощью CPU Profiler .
Связанные ресурсы
Пример приложения циферблата демонстрирует рекомендации по настройке циферблата. ,
Циферблат Wear OS работает непрерывно, поэтому он должен эффективно использовать энергию.
Максимально оптимизируйте работу циферблата. На этой странице представлены рекомендации по общей оптимизации циферблата, а также рекомендации по анимации и изображениям.
Базовая оптимизация
В этом разделе представлены рекомендации по повышению общей эффективности циферблата.
Цвет и яркость циферблата часов
Использование темных цветов на циферблате потребляет меньше энергии от часов пользователя. Ниже приведены рекомендации по настройке фона циферблата для оптимизации использования батареи циферблата:
- Цвет: по возможности используйте черный фон.
- Яркость: если черный фон невозможен, поддерживайте яркость цвета фона на уровне 25 % или ниже по шкале оттенка, насыщенности, значения (HSV) или оттенка, насыщенности, яркости (HSB). Например, если вы используете класс
Color
для установки цвета фона, определенного по шкале HSV, используйте значение 25 или ниже для настройки значения, которое управляет яркостью.
Используйте динамические возможности для взаимодействия с телефоном
Если циферблат требует выполнения операции на телефоне, выполняйте код только тогда, когда циферблат активен. Рекомендуемый метод, позволяющий приложению на телефоне узнать, что соответствующий циферблат активен, — API CapabilityClient .
Мониторинг энергопотребления
Приложение-компаньон Wear OS позволяет разработчикам и пользователям видеть, сколько заряда батареи расходуется различными процессами на носимом устройстве. Чтобы увидеть это, перейдите в «Настройки» > «Батарея часов» .
Зарегистрируйте циферблаты с поддержкой шифрования
Android 7.0 и более поздние версии включают поддержку шифрования файлов и позволяют запускать приложения, поддерживающие шифрование , до того, как пользователь введет пароль для расшифровки при загрузке. Это может сократить продолжительность перехода от анимации загрузки к циферблату до 30 секунд.
Чтобы ускорить загрузку, добавьте android:directBootAware="true"
в манифест циферблата.
Примечание. Используйте эту функцию с циферблатами, которые не используют хранилище с шифрованием учетных данных.
Лучшие практики для анимации
Рекомендации из этого раздела помогают снизить энергопотребление, связанное с анимацией.
Уменьшите частоту кадров анимации
Анимации часто требуют больших вычислительных затрат и потребляют значительное количество энергии. Большинство анимаций выглядят плавно при частоте 30 кадров в секунду, поэтому избегайте запуска анимации с более высокой частотой кадров. Вместо этого вы можете использовать динамическую частоту кадров. Для получения дополнительной информации см. пример циферблата Canvas .
Пусть процессор спит между анимациями
Чтобы продлить срок службы батареи, используйте анимацию экономно. Даже мигающее двоеточие расходует заряд батареи при каждом моргании.
Анимация и небольшие изменения содержимого циферблата пробуждают процессор. Позвольте процессору спать между анимациями, например, используя короткие всплески анимации каждую секунду в интерактивном режиме, а затем позволяя процессору спать до следующей секунды. Частый, даже кратковременный перевод процессора в режим сна может значительно снизить энергопотребление.
Рекомендации по работе с изображениями
Рекомендации из этого раздела помогают снизить энергопотребление, связанное с изображениями.
Уменьшите размер ваших растровых ресурсов
Многие циферблаты состоят из фонового изображения и других графических ресурсов, которые преобразуются и накладываются на фоновое изображение, например стрелки часов и другие элементы, которые перемещаются во времени. Чем больше эти графические ресурсы, тем дороже в вычислительном отношении их преобразование. Обычно эти графические элементы поворачиваются, а иногда и масштабируются внутри Render.CanvasRenderer.render()
каждый раз, когда система перерисовывает циферблат, как описано в разделе «Рисование циферблата» .
Уменьшение размера растровых ресурсов повышает производительность анимации и экономит электроэнергию. Следуйте этим советам, чтобы улучшить производительность циферблата:
- Не используйте графические элементы большего размера, чем вам нужно.
- Удалите лишние прозрачные пиксели по краям.
Например, размер изображения стрелки часов слева на рисунке 1 можно уменьшить на 97 %, удалив лишние прозрачные пиксели, как показано в правой части рисунка.
Объединение растровых ресурсов
Если у вас есть растровые изображения, которые часто рисуются вместе, рассмотрите возможность объединения их в один графический ресурс. Например, вы часто можете комбинировать фоновое изображение в интерактивном режиме с делениями, чтобы избежать рисования двух полноэкранных растровых изображений каждый раз, когда система перерисовывает циферблат.
Отключить сглаживание при рисовании масштабированных растровых изображений.
Когда вы рисуете масштабированное растровое изображение на объекте Canvas
с помощью метода Canvas.drawBitmap()
, вы можете предоставить экземпляр Paint
для настройки нескольких параметров. Чтобы повысить производительность, отключите сглаживание с помощью метода setAntiAlias()
, поскольку этот параметр не влияет на растровые изображения.
Использовать растровую фильтрацию
Для растровых ресурсов, которые вы рисуете поверх других элементов, включите фильтрацию растровых изображений в том же экземпляре Paint
с помощью метода setFilterBitmap()
. На рис. 2 показано увеличенное изображение стрелки часов с растровой фильтрацией и без нее.
Примечание. Когда активен окружающий режим, отключите фильтрацию растровых изображений. В низкобитовом окружающем режиме система не может надежно отображать цвета изображения для успешной обработки растровой фильтрацией.
Вынесите дорогостоящие операции за пределы метода рисования.
Система вызывает метод Render.CanvasRenderer.render()
каждый раз, когда перерисовывает циферблат. Чтобы повысить производительность, включайте в этот метод только те операции, которые строго необходимы для обновления циферблата.
По возможности избегайте выполнения следующих операций внутри метода Render.CanvasRenderer.render()
:
- Загрузка изображений и других ресурсов
- Изменение размера изображений
- Распределение объектов
- Вычисления, результаты которых не меняются между кадрами
Чтобы проанализировать производительность циферблата, используйте CPU Profiler. В частности, убедитесь, что время выполнения вашей реализации Render.CanvasRenderer.render()
короткое и единообразное для всех вызовов. Дополнительные сведения см. в разделе Проверка активности ЦП с помощью CPU Profiler .
Связанные ресурсы
Пример приложения циферблата демонстрирует рекомендации по настройке циферблата.