تعریف رویدادهای سفارشی (Views)

مفاهیم و پیاده‌سازی Jetpack Compose

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

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

هنگام استفاده از ابزار خط فرمان 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);
                    }
                );
            }
        );
    }
}

ما استفاده از تابع توسعه کاتلین را حتی در کد جاوا توصیه می‌کنیم، زیرا این تابع به طور خودکار پس از اتمام لامبدا، ردیابی را پایان می‌دهد. این امر خطر فراموش کردن پایان ردیابی را از بین می‌برد.

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

{% کلمه به کلمه %} {% فعل کمکی %} {% کلمه به کلمه %} {% فعل کمکی %}