2015-04-23 2 views
1

Я обнаружил, что в некоторых из моих приложений для Android есть отставание или задержка, и я проверил the Android website, чтобы узнать, как я могу улучшить производительность. Тем не менее, упомянутая статья избегает использования внутренних геттеров и сеттеров. Могут ли внешние геттеры и сеттеры замедлять скорость работы приложения?Как улучшить производительность при использовании объектов в Android

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

ответ

2

В общем, нет ничего плохого в создании пользовательских классов и необходимо в любом приложении. Прежде чем делать предположение, что внутренние геттеры/сеттеры являются источником задержки, которую вы видите, я бы предложил профилировать ваше приложение, используя Traceview и Systrace. Это поможет вам определить узкое место в вашем приложении, а не гадать, что может быть причиной.

Обсуждение геттеров/сеттеров строго для внутренних геттеров/сеттеров. Другими словами, если у вас есть защищенное/приватное поле с именем mMyField в вашем объекте, просто ссылайтесь на него непосредственно в коде, а не на использование частного получателя/сеттера.

2

Вы неправильно интерпретируете подсказку оптимизации. Разумно следовать обычным методам объектно-ориентированного программирования и иметь геттеры и сеттеры в общедоступном интерфейсе , но в пределах класса вы должны всегда обращаться к полям непосредственно.

+0

Если вы используете proguard, производительность будет такой же, как он будет оптимизировать ваш код для прямых вызовов. –

Смежные вопросы