Prosty TextView.setText powoduje 40% wykorzystanie procesora
Uruchomienie mojej aplikacji powoduje ~ 40% wykorzystania procesora w moim telefonie:
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);
...
KomentującUstaw tekst metoda Wykorzystanie procesora spada do oczekiwanego poziomu ~ 4%. Metoda jest wywoływana co sekundę i odświeża ImageViews, CustomViews ... bez powodowania tego samego nadmiaru obciążenia. Oprócz wykorzystania procesora dalvik nieustannie zgłasza zbieranie śmieci około 10-1000 obiektów tylko przez wywołanieUstaw tekst().
Tworzenie pliku śledzenia w ten sposób:
Debug.startMethodTracing("setText");
c.mTxtPosition.setText(position);
Debug.stopMethodTracing();
traceview wymienia następujące metody jako Top 5 według ich wyłącznego% CPU:
ViewParent.invalidateChildInParent (16%)View.requestLayout (11%)ViewGroup.invalidateChild (9%)TextView.setText (7%)najwyższy poziom (6%)Czy ktoś to tłumaczy?