Pojęcia i implementacja w Jetpack Compose
Śledzenie systemu pokazuje informacje o procesach tylko na poziomie systemu, dlatego czasami trudno jest określić, które metody aplikacji lub gry są wykonywane w danym momencie w stosunku do zdarzeń systemowych.
Jetpack udostępnia interfejs API do śledzenia, którego możesz używać do oznaczania określonej sekcji kodu. Te informacje są następnie raportowane w śladach przechwyconych na urządzeniu. Macrobenchmark automatycznie przechwytuje ślady z niestandardowymi punktami śledzenia.
Gdy używasz narzędzia wiersza poleceń systrace do przechwytywania śladów, wymagana jest opcja -a. Bez tej opcji metody aplikacji nie będą widoczne w raporcie śledzenia systemu.
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); } ); } ); } }
Zalecamy używanie funkcji rozszerzającej Kotlin, nawet w kodzie Java, ponieważ automatycznie kończy ona śledzenie po zakończeniu lambdy. Eliminuje to ryzyko zapomnienia o zakończeniu śledzenia.
Możesz też użyć interfejsu NDK API do niestandardowych zdarzeń śledzenia. Więcej informacji o korzystaniu z tego interfejsu API w kodzie natywnym znajdziesz w artykule Niestandardowe zdarzenia śledzenia w kodzie natywnym.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Czas uruchomienia aplikacji
- Powolne renderowanie