Трассировка системы показывает информацию о процессах только на системном уровне, поэтому иногда сложно узнать, какой из методов вашего приложения или игры выполняется в данный момент времени относительно системных событий.
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 для собственного кода см. в разделе Пользовательские события трассировки в машинном коде .
{% дословно %}Пока рекомендаций нет.
Попытайтесь войти в свой аккаунт Google.