это официальное руководство для Android. Попробуйте эти шаги, чтобы выяснить проблемы рендеринга GPU.
я есть приложение, которое указано в нижних 25% в новом разделе Google Play Console - Android vitals для медленной визуализации. Я обеспокоен этим из-затакие статьи Похоже, что Google Play может оштрафовать ваше приложение в рейтинге Play Store, если вы упадете в нижние 25%.
Тем не менее, кажется, невозможно улучшить этот показатель для моего приложения. Он воспроизводит музыку и имеет SeekBar и TextView, которые обновляются каждые 250 мсек, как любой музыкальный проигрыватель. Я сделал минимальную базовую программу, чтобы продемонстрировать:
public class MainActivity extends AppCompatActivity {
int count;
SeekBar seekBar;
TextView textView;
Runnable runnable =
new Runnable() {
@Override
public void run() {
textView.setText(Integer.toString(count));
seekBar.setProgress(count);
++count;
seekBar.postDelayed(runnable, 250);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar = (SeekBar) findViewById(R.id.seek);
textView = (TextView) findViewById(R.id.text);
seekBar.post(runnable);
}
}
Полный проект здесь:https://github.com/svenoaks/SlowRendering.git
Когда я запускаю эту программу на оборудовании, аналогичном устройствам Nexus, я получаю эти результаты дляadb shell dumpsys gfxinfo com.example.xyz.slowrendering
команда:
Stats since: 19222191084749ns
Total frames rendered: 308
Janky frames: 290 (94.16%)
90th percentile: 32ms
95th percentile: 36ms
99th percentile: 44ms
Number Missed Vsync: 2
Number High input latency: 0
Number Slow UI thread: 139
Number Slow bitmap uploads: 0
Number Slow issue draw commands: 283
Я думаю, это будет означать, что почти все мои кадры отрисовываются> 16 мс из-за периодического характера обновления. Насколько я вижу, все другие приложения для воспроизведения музыки, которые я тестировал, также имеют проблему медленного рендеринга. Боюсь, что алгоритм Google разрушает рейтинг моего приложения. Можно ли как-нибудь улучшить свой результат?