Пользовательские виды или раздутые макеты? - PullRequest
1 голос
/ 01 января 2012

Справочная информация:

Я работаю над небольшим приложением для себя и нескольких друзей, и оно содержит несколько ListViews с элементами, основанными на пользовательских макетах XML.Макеты несколько тяжелые - несколько ImageViews, TextViews, LinearLayout и RelativeLayout - поэтому я начал думать о производительности.Лично у меня нет проблем с производительностью, но я знаю, что у некоторых из моих друзей, которые будут использовать приложение, нет телефонов высокого класса, и что у них могут быть проблемы с этими макетами.

Я помню, как смотрел видео-презентацию о производительности в Android, и я вспоминаю, как Ромен Гай упомянул кое-что о том, что пользовательский Views лучше для производительности, чем постоянно раздувает пользовательские макеты XML.Я полагаю, что контекстом была ранняя разработка приложения Gmail (я думаю, что вокруг Android 1.5), где каждый элемент Listview был довольно сложным.

Вероятно, стоит отметить, что я повторно использую Views в моем приложении, и что я использую принцип ViewHolder, рекомендованный Google.

Мой вопрос: Лучше ли для производительности использовать пользовательский Views илинормально ли раздувать пользовательские макеты XML?

Ответы [ 2 ]

2 голосов
/ 01 января 2012

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

0 голосов
/ 07 февраля 2012

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

...