O rastreamento do sistema mostra informações sobre processos apenas no nível do sistema. Por isso, às vezes é difícil saber quais métodos do app ou jogo estão sendo executados em relação aos eventos do sistema.
O Jetpack oferece uma API de rastreamento que pode ser usada para rotular uma seção de código. Essas informações são relatadas nos rastros capturados no dispositivo. A biblioteca Macrobenchmark captura rastros com pontos personalizados automaticamente.
Ao usar a ferramenta de linha de comando Systrace para capturar rastros, a opção -a
é
obrigatória. Sem ela, os métodos do app não aparecem em um relatório de
rastreamento do sistema.
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);
}
);
}
);
}
}
Recomendamos o uso da função de extensão do Kotlin, mesmo em código Java, porque ela encerra automaticamente o rastreamento quando a lambda é concluída. Isso elimina o risco de esquecer de encerrar o rastreamento.
Também é possível usar uma API NDK para eventos de rastreamento personalizados. Para saber mais sobre como usar essa API no código nativo, consulte Eventos de rastreamento personalizado em código nativo.
Nenhuma recomendação no momento.
Tente fazer login na sua Conta do Google.