У меня есть класс, который расширяет View
и переопределяет метод onDraw(Canvas canvas)
. Это представление запускает анимацию, поэтому onDraw
будет вызываться много раз в секунду. Рассмотрим следующий пример...
@Override
protected void onDraw(Canvas canvas) {
final int width = getWidth();
final int height = getHeight();
final int padLeft = getPaddingLeft();
final int padTop = getPaddingTop();
final int padRight = getPaddingRight();
final int padBottom = getPaddingBottom();
final RectF oval = new RectF(padLeft, padTop, width - padRight, height - padBottom);
...
}
Должен ли я беспокоиться о том, что при каждом вызове onDraw
происходит так много вызовов функций? Говорит ли final
компилятору, что ему не нужно каждый раз вызывать эти функции? Будет ли лучше использовать эти переменные как member variables
, чтобы функции вызывались только один раз?
P.S. Я знаю из запуска моей программы, что производительность не пострадала. Я задаю этот вопрос с точки зрения обучения. Мне становится легче, когда я точно знаю, что делаю.