Android - создание объектов / распределение памяти и производительность - PullRequest
1 голос
/ 14 июня 2010

Это, вероятно, легко.У меня есть около 20 TextViews / ImageViews в моем текущем проекте, к которым я обращаюсь следующим образом:

((TextView)multiLayout.findViewById(R.id.GameBoard_Multi_Answer1_Text)).setText("");

//or

((ImageView)multiLayout.findViewById(R.id.GameBoard_Multi_Answer1_Right)).setVisibility(View.INVISIBLE);

Мой вопрос заключается в следующем: лучше ли мне с точки зрения производительности просто назначать эти переменные объекта?Кроме того, теряю ли я некоторую производительность из-за постоянного процесса «поиска», который происходит как часть метода findViewById (...)?(т. е. использует ли findViewById (...) какую-либо хеш-таблицу / хэш-карту для поиска или он выполняет итеративный поиск по иерархии представлений?)

В настоящее время моя программа никогда не использует более 2,5 МБоперативной памяти, так сильно ли это повлияет на 20 или более переменных объекта?Я так не думаю, но я решил спросить.

Спасибо.

1 Ответ

1 голос
/ 14 июня 2010

Да, это было бы правильно для кэширования ссылок на представления.Вот о чем ListView Tag/Holder говорит о производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...