المفاهيم والتنفيذ في Jetpack Compose
لا تعرض عملية تتبُّع النظام سوى معلومات حول العمليات على مستوى النظام، لذا يصعب أحيانًا معرفة أيّ من طرق تطبيقك أو لعبتك يتم تنفيذه في وقت معيّن مقارنةً بأحداث النظام.
توفّر Jetpack واجهة برمجة تطبيقات لتتبُّع الأخطاء يمكنك استخدامها لتصنيف قسم معيّن من الرمز البرمجي. ويتم بعد ذلك تسجيل هذه المعلومات في عمليات التتبُّع التي يتم التقاطها على الجهاز. تسجّل مكتبة Macrobenchmark عمليات التتبُّع باستخدام نقاط التتبُّع المخصّصة تلقائيًا.
عند استخدام أداة سطر الأوامر 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 لأحداث التتبُّع المخصّصة. لمزيد من المعلومات عن استخدام واجهة برمجة التطبيقات هذه مع الرمز البرمجي الأصلي، اطّلِع على أحداث التتبُّع المخصّصة في الرمز البرمجي الأصلي.
اقتراحات مخصصة لك
- ملاحظة: يتم عرض نص الرابط عندما تكون JavaScript غير مفعّلة
- وقت بدء تشغيل التطبيق
- العرض البطيء