Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пери перевод.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
103.17 Кб
Скачать

Оптимизация разметки

Наполнение Активностей экземплярами разметки довольно ресурсоем-

кий процесс. Каждая новая вложенная разметка (или Представление) может

кардинальным образом повлиять на производительность и целостность

приложений.

Рекомендуется использовать как можно более простые менеджеры ком-

поновки. Избегайте создания полностью новой разметки только лишь для

того, чтобы внести небольшие изменения в уже существующую.

Приведем рекомендации и нормативы по созданию эффективной раз-

метки, но имейте в виду, что они не исчерпывающие.

Избегайте излишней вложенности. Не помещайте одну разметку

внутрь другой без необходимости. Помещая LinearLayout внутрь

FrameLayout и присваивая обоим атрибут FILL_PARENT, вы не по-

лучите ничего, кроме лишних затрат на заполнение. Обращайте

внимание на избыточность разметки, особенно при внесении в нее

существенных изменений.

Старайтесь не использовать слишком много Представлений. Каждое

дополнительное Представление в разметке отнимает время и ресурсы

на создание. Разметка никогда не должна содержать более 80 Пред-

ставлений, иначе на ее заполнение уйдет слишком много времени.

Избегайте глубокой вложенности. Поскольку разметка поддерживает

произвольный уровень вложенности, можно легко создавать слож-

ные, глубоко разветвленные иерархии. И хотя нет никаких жестких

ограничений на этот счет, рекомендуется ограничивать вложенность

максимум десятью уровнями.

Важно, чтобы вы оптимизировали разметку, повышая эффективность

и избавляясь от избыточной вложенности.

Помогает в этом Android SDK, который содержит инструмент командной

строки layoutopt. Чтобы проанализировать разметку и получить рекоменда-

ции по ее исправлению и улучшению, вызовите команду layoutopt, передав

ей в качестве параметров имя ресурса, содержащего разметку (или каталог

с ресурсами).

Создание новых Представлений

Расширение существующих Представлений, комбинирование составных

элементов и создание уникальных виджетов позволяют реализовывать хоро-

шо выглядящие пользовательские интерфейсы, оптимизированные под за-

дачи вашего приложения. Android предоставляет возможность наследовать

набор стандартных Представлений или создавать собственные. Вы получаете

139 бет

полную свободу и можете адаптировать пользовательские интерфейсы,

улучшая впечатление от использования своих программ.

ВНИМАНИЕ

При разработке пользовательских интерфейсов важно найти золотую

середину между эстетикой и практичностью. Вместе с возможностью

создавать собственные нестандартные Представления приходит соблазн

полностью переписать все элементы интерфейса с нуля. Подавите это же-

лание. Стандартные Представления знакомы пользователям по другим

приложениям и будут обновляться с выходом новых версий платформы.

Учитывая небольшие размеры экрана и довольно ограниченное внима-

ние со стороны пользователя, нужно понимать, что выбор стандартных

элементов часто может быть более практичным, нежели создание новых.

Выбор наиболее подходящего метода для создания нового Представления

зависит от того, какие цели вы преследуете.

• Изменяйте или расширяйте внешний вид и/или поведение суще-

ствующего элемента, если он уже поддерживает базовую функцио-

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

и метод onDraw, но используя при этом возможности родительского

класса, вы можете изменять Представление, не реализовывая заново

его функции. К примеру, можно изменить TextView таким образом,

чтобы он отображал заданное количество цифр после десятичного

разделителя.

• Объединяйте Представления, чтобы создавать независимые, пригод-

ные для многократного использования элементы, которые сочетают

функции нескольких взаимосвязанных компонентов. Например, вы

можете создать выпадающий список, объединив элементы TextView

и Button, при нажатии которых отображается всплывающее Пред-

ставление ListView.

• Создавайте полностью новые элементы, если вам нужен особенный

интерфейс, который невозможно получить при изменении или со-

вмещении уже существующих Представлений.