Dezvoltatorul ar trebui să învețe cum să utilizeze în mod eficient unitatea de procesare grafică (GPU), astfel încât aplicația nu încetini sau de a efectua orice lucrare suplimentară.
Configurarea vizualizare GPU
Dacă cererea dumneavoastră este lent, atunci unele sau toate cadrele de actualizare a ecranului actualizat mai mult de 16 milisecunde. Pentru a vedea vizual rata de reîmprospătare a ecranului, dispozitivul poate include o opțiune specială Ajustați parametrii GPU-ului de vizualizare (Profil GPU Rendering).
Veți putea vedea rapid cât timp este nevoie de cadre de redare. Vă reamintesc că trebuie să păstrați în termen de 16 milisecunde.
După activare du-te la Instrumente de dezvoltare și de a găsi elementul Ajustați parametrii GPU-ului de vizualizare (Profil GPU de redare), care ar trebui incluse. În fereastra pop-up, selectați opțiunea de pe ecran sub formă de coloane (pe ecran ca bare). În acest caz, programul va fi afișat în partea de sus a cererii de rulare.
Puteți testa nu numai cererea dumneavoastră, ci și altele. Lansarea orice aplicație și începe să lucreze cu el. În timp ce lucrează în partea de jos a ecranului, veți vedea programul actualizat. Axa orizontală este responsabil pentru timpul scurs. Axa verticală arată timpul pentru fiecare cadru în milisecunde. Atunci când interacționează cu aplicația, dungi verticale sunt desenate pe ecran, care apare de la stânga la dreapta, care arată performanța personalului de ceva timp. Fiecare coloană reprezintă un cadru pentru redare ecran. Cu cât înălțimea barei, mai mult timp este cheltuit pe desen. O linie verde subțire este o referință și corespunde la 16 milisecunde per cadru. Prin urmare, ar trebui să depună eforturi pentru a se asigura că programul nu este bătut pentru această linie în studiul cererii dumneavoastră.
Luați în considerare o versiune mai mare a graficului.
Linia verde este responsabil de 16 milisecunde. Pentru a satisface cele 60 de cadre pe secundă, fiecare coloană a programului trebuie să fie trase sub linie. În unele momente ale coloanei este prea mare și ar fi mult deasupra liniei verzi. Acest lucru înseamnă că programul de frânare. Fiecare coloană are o culoare albastră, purpurie (Lollipop și de mai sus), rosu si culori portocalii.
Culoarea albastră este responsabil pentru timpul utilizat pentru crearea și actualizarea View.
parte Purple reprezintă timpul necesar pentru a transfera fluxul de redare a resurselor.
Roșu este timpul pentru a trage.
Orange arată cât de mult a luat procesorul să aștepte atunci când GPU finalizeze activitatea. El este sursa de probleme în cantități mari.
Există tehnici speciale, în scopul de a reduce sarcina pe GPU.
Debug indicele de suprapunere GPU
O altă setare vă permite să aflați cum revopsit de multe ori aceeași porțiune a ecranului (de exemplu, a efectuat o muncă suplimentară). Din nou, vom merge la opțiunile și pentru a găsi elementul Developer Debug Indicator de suprapunere GPU (Debug suprapunere GPU), care ar trebui să fie incluse. În fereastra pop-up, selectați Afișare acoperire Zona (Arată zonele supraexcita). Nu vă alarmați! articole Nkotoryh pe ecran se va schimba culoarea.
Du-te înapoi la orice aplicație și urmăriți-l lucreze. Culoarea va spune zonele cu probleme ale aplicației.
În cazul în care culoarea în cererea nu sa schimbat, atunci totul este în regulă. Nici o suprapunere de o culoare peste alta.
Culoarea albastră indică faptul că un strat este trasă peste stratul de jos. Bine.
Green - redesenat de două ori. Ai nevoie să se gândească la optimizare.
Culoarea roz - redesenata de trei ori. E foarte rău.
Roșu - redesenata de multe ori. Ceva a mers prost.
Puteți verifica manual aplicația pentru zonele cu probleme de căutare. Creați activitate și puneți-l pe componenta TextView. Atribuirea elementul rădăcină și eticheta de text unele de fundal în Android atribut: fundal. Vei primi următoarele: în primul rând pictat aceeași culoare cea mai mică activitate strat. Apoi, ea este trasă peste noul strat de TextView. Apropo, cu atât mai mult trase TextView și text.
În unele momente supratipar nu pot fi evitate. Dar imaginați-vă că sunteți în același mod de a seta lista de fundal ListView. care ocupă o suprafață de activitate. Sistemul va efectua o sarcină dublă, în timp ce stratul inferior de utilizatori activi nu vor vedea niciodată. Și dacă, în plus, vă va crea mai mult de marcare și proprii pentru fiecare element din listă cu fundal, veți primi, în general, prea mult.
Un sfat. Se introduce următoarea metodă apelată metoda setContentView (), care va elimina ecran tema de culoare peririsovku. Acest lucru va ajuta la eliminarea o suprapunere de culoare in plus: