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.
Kotlin
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]) } } }
Java
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.
Recomendados para você
- Observação: o texto do link aparece quando o JavaScript está desativado.
- Tempo de inicialização do app
- Renderização lenta