Śledzenie systemu pokazuje informacje o procesach tylko na poziomie systemu, dlatego czasem trudno jest określić, które metody aplikacji lub gry są wykonywane w danym czasie względem zdarzeń systemowych.
Jetpack udostępnia interfejs API śledzenia, którego możesz użyć do oznaczenia etykietą konkretnej sekcji kodu. Informacje te są następnie raportowane w śladach zarejestrowanych na urządzeniu. Analiza porównawcza w skali makro automatycznie rejestruje ślady z niestandardowymi punktami śledzenia.
Jeśli do przechwytywania logów czasu używasz narzędzia wiersza poleceń systrace, wymagana jest opcja -a
. Bez tej opcji metody aplikacji nie są wyświetlane 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 rozszerzenia Kotlin, nawet w kodzie Java, ponieważ automatycznie kończy ona ślad po zakończeniu lambda. Pozwala to wyeliminować ryzyko zapomnienia o zakończeniu śledzenia.
Niestandardowych zdarzeń śledzenia możesz też używać za pomocą interfejsu NDK API. Więcej informacji o korzystaniu z tego interfejsu API w kodzie natywnym znajdziesz w sekcji Niestandardowe zdarzenia śledzenia w kodzie natywnym.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony
- Czas uruchomienia aplikacji
- Powolne renderowanie