Wear OS увеличивает срок службы батареи, отслеживая использование памяти. Циферблаты, использующие формат циферблата, имеют ограничения по памяти в соответствии с рекомендациями по обеспечению качества приложений Wear OS :
- Режим Ambient: максимальное использование памяти 10 МБ.
- Интерактивный режим: максимальное использование памяти 100 МБ.
Расчет использования памяти
Чтобы вычислить использование памяти для изображения или растрового шрифта на циферблате с использованием формата циферблата, система выполняет следующие действия:
- Распакуйте изображение или шрифт.
- Проверьте, применяются ли следующие оптимизации:
- Изменение размера для лучшего соответствия экрану
- Обрезка прозрачных пикселей
- Понижение разрешения до RGB565 без потери качества.
На основе полученной ограничивающей рамки размер вычисляется следующим образом:
- Для изображений и шрифтов, использующих RGBA8888 : 4 x ширина x высота.
- Для изображений и шрифтов, использующих RGB565: 2 x ширина x высота.
- Для изображений и шрифтов, использующих конфигурацию растрового изображения ALPHA_8: ширина x высота.
Интерактивный режим
Чтобы вычислить использование памяти для интерактивного режима, система суммирует следующие значения:
- Необработанный размер любых векторных шрифтов
- Предполагаемое использование системного шрифта по умолчанию
- Применяется общий размер изображений и растровых шрифтов после обрезки, изменения размера и переформатирования.
Конфигурации
Для циферблатов с конфигурациями система пытается вычислить общий размер ресурсов циферблата в различных конфигурациях. Если количество комбинаций очень велико, система может переоценить количество ресурсов, используемых одновременно.
Ambient-режим и слои
Система предполагает, что в окружающем режиме используется до трех полноэкранных слоев, два из которых являются статическими. Слои включают в себя:
- Фон циферблата. Система рассматривает это как одно изображение, независимо от того, сколько изображений содержит фон.
- Движущиеся части, такие как руки, цифровые дисплеи или динамические элементы.
- Остальные элементы из исходного XML-файла.
Большие растровые шрифты часто используют больше всего памяти в окружающем режиме.
Методы уменьшения использования памяти
Используйте следующие оптимизации, чтобы уменьшить использование памяти.
Обрезка и изменение размера растровых шрифтов
Обрезайте изображения и объекты BitmapFont
, чтобы они соответствовали размеру дисплея.
Wear OS рисует циферблаты со всеми распакованными изображениями. Практически пустое полноэкранное изображение может занимать 3 КБ на диске, но 750 КБ или более на экране с разрешением 450 x 450 пикселей.
Используйте одинаковую высоту растрового шрифта.
При использовании BitmapFont
убедитесь, что все изображения символа имеют одинаковую высоту. Аналогичным образом убедитесь, что все изображения слов имеют одинаковую высоту.
Используйте одинаковые размеры кадров в анимации.
Вместо перемещения изображения по циферблату обновите элементы изображения и сохраните фиксированное положение ограничительной рамки. Например, чтобы анимировать круг на циферблате, измените его цвет, а не вращайте.
Этот метод уменьшает размер вычисляемой ограничивающей рамки анимации.
Дедупликация изображений
Чтобы отобразить изображение несколько раз, включите только один ресурс изображения и ссылайтесь на него несколько раз.
Покажите прогресс с помощью дуг
Чтобы имитировать завершение индикатора выполнения через 1 минуту или 1 час, не используйте 60 изображений. Используйте объект Arc
с выражением, управляющим его длиной, как показано здесь:
<PartDraw angle="0" width="400" height="400" name="ProgressBar" pivotX="0.5" pivotY="0.5 x="40" y="40"> <Arc centerX="200" centerY="200" width="400" height="400" startAngle="0" endAngle="360"> <!-- Completes a "progress loop" every minute. --> <Transform target="endAngle" value="0 + (clamp([SECOND], 0, 60) - 0) * 6" /> <Stroke cap="ROUND" color="#123456" thickness="10" /> </Arc> </PartDraw>
Чтобы отобразить прерывистую линию, например, чтобы придать вид цифровым часам в стиле ретро, используйте свойство тире для объекта Stroke
или наложение полупрозрачного изображения-маски.
Поместите стрелки часов и осложнения в конец исходного файла.
Узлы XML рисуются в порядке, указанном в исходном XML. Поставив в конце стрелки часов и усложнения, вы позволяете системе исключить целый слой из расчета памяти в режиме окружающей среды.
Оцените использование памяти циферблата
Чтобы измерить использование памяти циферблатом, используйте инструмент оценки объема памяти, доступный в репозитории watchface
на GitHub.
Рекомендуется для вас
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Дуга
- Линия
- Прямоугольник