スローレンダリング用の新しいGoogle Playコンソール - Android vitalsセクションの下位25%にリストされているアプリがあります。私はsuch articlesのため、Google Playが下位25%に該当する場合、Playストアのランキングであなたのアプリに不利益を被る可能性があると思われます。スローレンダリングの修正方法(Android vitals)
しかし、このメトリックを改善することはできないようです。それは音楽を演奏し、SeekBarとTextViewを持っていて、音楽プレーヤーのように250msごとに更新されます。
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
私はネクサスデバイスと同様のハードウェア上でこのプログラムを実行すると、私は
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のアルゴリズムがアプリランクを損ねるのではないかと心配していますが、スコアを改善する方法はありますか?
私は、Moto X PureとGalaxy S8 +の両方で、layout_widthをmatch_parentに設定しました。 X Pureでは、「スローUIスレッド」カテゴリはフレーム数が少なく、90〜99パーセンタイルフレームはわずか20msを超えています。 –
サンプルプロジェクトやプロダクションアプリについて話していますか? –
サンプルプロジェクトのJankyフレームmatch_parentでさえ –