בממעקב המערכת מוצג מידע על תהליכים רק ברמת המערכת, כך שלפעמים קשה לדעת אילו מהשיטות של האפליקציה או המשחק שמתבצע בזמן נתון ביחס לאירועי מערכת.
Jetpack מספק API למעקב שאפשר להשתמש בו כדי להוסיף תווית לקטע מסוים המידע הזה מדווח לאחר מכן במעקבים שתועדו במכשיר. מאקרובנצ'מרק מתעד באופן אוטומטי מעקבים עם נקודות מעקב בהתאמה אישית.
כשמשתמשים בכלי שורת הפקודה systrace כדי לתעד מעקבים, האפשרות -a
היא
נדרש. בלי האפשרות הזו, השיטות של האפליקציה לא יופיעו במערכת
דוח מעקב.
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); } ); } ); } }
מומלץ להשתמש בפונקציית התוסף Kotlin, גם בקוד Java, מסיים את המעקב באופן אוטומטי כשה-lambda מסיימת. הפעולה הזו מסירה את הסיכון לשכוח לסיים את המעקב.
אפשר גם להשתמש ב-NDK API כדי ליצור אירועי מעקב בהתאמה אישית. כדי ללמוד על השימוש ממשק API לקוד המקורי שלך, מידע נוסף מופיע בקטע אירועי מעקב מותאמים אישית בתוכן מקורי .
מומלץ עבורך
- הערה: טקסט הקישור מוצג כאשר JavaScript מושבת
- זמן ההפעלה של האפליקציה
- רינדור איטי