Запуск моего приложения вызывает загрузку ЦП моего телефона на ~40%:
final String position = String.format("%02d:%02d:%02d", time.getHours(), time.getMinutes(),
time.getSeconds());
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
c.mTxtPosition.setText(position);
...
Закомментировав метод setText, загрузка ЦП падает до ожидаемого уровня ~4%. . Метод вызывается каждую секунду и обновляет ImageViews, CustomViews..., не вызывая такой же избыточной нагрузки. Помимо использования ЦП, dalvik постоянно сообщает о сборке мусора около 10-1000 объектов, просто вызывая setText().
Создание файла трассировки следующим образом:
Debug.startMethodTracing("setText");
c.mTxtPosition.setText(position);
Debug.stopMethodTracing();
traceview перечисляет следующие методы как первые 5 по их соответствующему эксклюзивному % ЦП:
Есть ли у кого-нибудь объяснение этому?