Трассировка системы показывает информацию о процессах только на системном уровне, поэтому иногда сложно узнать, какой из методов вашего приложения или игры выполняется в данный момент времени относительно системных событий.
Jetpack предоставляет API трассировки, который можно использовать для маркировки определенного раздела кода. Эта информация затем отображается в трассировках, записанных на устройстве. Macrobenchmark автоматически записывает трассировки с помощью пользовательских точек трассировки.
При использовании инструмента командной строки systrace для сбора трассировок требуется опция -a
. Без этого параметра методы вашего приложения не отображаются в отчете о трассировке системы.
Котлин
class MyAdapter : RecyclerView.Adapter<MyViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { trace("MyAdapter.onCreateViewHolder") { MyViewHolder.newInstance(parent) } } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { trace("MyAdapter.onBindViewHolder") { trace("MyAdapter.queryDatabase") val rowItem = queryDatabase(position) dataset.add(rowItem) } holder.bind(dataset[position]) } } }
Ява
public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> { @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return TraceKt.trace( "MyAdapter.onCreateViewHolder", () -> MyViewHolder.newInstance(parent) ); } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { TraceKt.trace( "MyAdapter.onBindViewHolder", () -> { TraceKt.trace( "MyAdapter.queryDatabase", () -> { Item rowItem = queryDatabase(position); dataset.add(rowItem); } ); } ); } }
Мы рекомендуем использовать функцию расширения Kotlin даже в коде Java, поскольку она автоматически завершает трассировку после завершения лямбда-выражения. Это исключает риск забыть завершить трассировку.
Вы также можете использовать API NDK для пользовательских событий трассировки. Дополнительные сведения об использовании этого API для собственного кода см. в разделе Пользовательские события трассировки в машинном коде .
{% дословно %}Рекомендуется для вас
- Примечание. Текст ссылки отображается, когда JavaScript отключен.
- Время запуска приложения
- Медленный рендеринг