تعریف رویدادهای سفارشی

ردیابی سیستم اطلاعاتی را در مورد فرآیندها فقط در سطح سیستم به شما نشان می دهد، بنابراین گاهی اوقات دشوار است که بدانید کدام یک از روش های برنامه یا بازی شما در یک زمان معین نسبت به رویدادهای سیستم اجرا می شود.

Jetpack یک API ردیابی را ارائه می دهد که می توانید از آن برای برچسب گذاری بخش خاصی از کد استفاده کنید. سپس این اطلاعات در ردیابی های ثبت شده روی دستگاه گزارش می شود. Macrobenchmark ردیابی را با نقاط ردیابی سفارشی به طور خودکار ضبط می کند.

هنگام استفاده از ابزار خط فرمان systrace برای گرفتن ردیابی، گزینه -a مورد نیاز است. بدون این گزینه، روش‌های برنامه شما در گزارش ردیابی سیستم ظاهر نمی‌شوند.

کاتلین

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])
        }
    }
}

جاوا

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 حتی در کد جاوا استفاده کنید، زیرا با تکمیل لامبدا به طور خودکار ردیابی را پایان می‌دهد. این خطر فراموشی پایان ردیابی را از بین می برد.

همچنین می‌توانید از یک API NDK برای رویدادهای ردیابی سفارشی استفاده کنید. برای آشنایی با استفاده از این API برای کد بومی خود، به رویدادهای ردیابی سفارشی در کد بومی مراجعه کنید.

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}