Android: есть ли преимущества использования @id по сравнению с @ + id с точки зрения производительности? - PullRequest
3 голосов
/ 30 ноября 2010

Я знаю, что + in @ + id говорит компилятору добавить id к ресурсам (R.id. ???). Однако мне было интересно, можно ли получить выигрыш в производительности, если не ставить +?

Возможно, например, при работе со сложными макетами представления списка?

Ответы [ 4 ]

3 голосов
/ 30 ноября 2010

Это не разница.Если вы используете android:id, это всегда должно быть @+id (я думаю).Это означает, что вы присваиваете ему идентификатор.В противном случае, как сказал Рейбриттон, вы ссылаетесь на идентификатор.

Но также и R генерируется еще до компиляции.Мало того, что преимущества будут незначительными, но они появятся во время компиляции, а не во время выполнения, так что это не имеет значения.

3 голосов
/ 30 ноября 2010

+ означает добавление в список R без ссылки на уже существующий элемент пользовательского интерфейса, другими словами @ + id /! = @ Id /

2 голосов
/ 30 ноября 2010

Нет никаких различий в производительности. Для идентификаторов единственная причина не использовать «+» - это если вы явно объявляете идентификатор и хотите ссылаться на него, убедившись, что все ссылки относятся к этому конкретному идентификатору. Например, если вы не используете «+» и в вашем имени ID есть опечатка, вы получите ошибку во время компиляции, в то время как с «+» будет создана новая запись для ID опечатки.

1 голос
/ 30 ноября 2010

Используя @ + id, вы добавляете ссылку на R, используя @id, вы повторно используете уже существующую ссылку в сгенерированном классе R.Это может быть сделано, например, для информирования вашей деятельности о том, где найти определенный виджет в макете, как это происходит при использовании пользовательского макета с ListActivity.Затем вы назначите вашему ListView уже существующий идентификатор @ id / android: list, который является предопределенным.То же самое относится и к TabHost и TabWidget.

В остальном, разницы в производительности, я думаю ...

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