ردیابی با وینسکوپ

Winscope را به صورت محلی اجرا کنید یا از طریق یک وب سرور به آن دسترسی داشته باشید.

شما می‌توانید با استفاده از Winscope برای توسعه محلی و اشکال‌زدایی، ردپاها را ثبت کنید. Winscope از adb استفاده می‌کند که از اتصال دستگاه از طریق USB یا Wi-Fi پشتیبانی می‌کند.

وقتی Winscope را اجرا می‌کنید، صفحه Collect Traces ظاهر می‌شود.

اتصال دستگاه

شما می‌توانید دستگاه‌ها را در Winscope با استفاده از Winscope Proxy یا Web Device Proxy متصل کنید. به طور پیش‌فرض، صفحه اصلی Winscope رابط کاربری تنظیم اتصال Winscope Proxy را نشان می‌دهد.

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

تنظیم پروکسی Winscope

برای تنظیم پروکسی Winscope این مراحل را دنبال کنید:

  1. در بخش Collect Traces در صفحه اصلی، از منوی Select connection type، گزینه Winscope Proxy را انتخاب کنید:

    Capture traces using Winscope Proxy

    شکل ۱. ثبت ردپاها با استفاده از Winscope Proxy

  2. با اجرای دستور زیر، پروکسی Winscope ADB Connect را اجرا کنید تا ردیابی‌ها را مستقیماً از مرورگر خود ضبط کنید:

    python3 $ANDROID_BUILD_TOP/development/tools/winscope/src/adb/winscope_proxy.py
    
  3. به توکن پروکسی Winscope که پس از اجرا در ترمینال نمایش داده می‌شود، توجه کنید.

  4. پس از اجرای پروکسی Winscope ADB Connect، صفحه به صورت زیر تغییر می‌کند. برای برقراری اتصال اولیه به پروکسی، توکن پروکسی Winscope را از مرحله ۳ وارد کرده و روی Connect کلیک کنید.

    Connect to Winscope Proxy

    شکل ۲. اتصال به پروکسی Winscope.

تنظیم پروکسی دستگاه وب

برای تنظیم پروکسی دستگاه وب، این مراحل را دنبال کنید:

  1. در بخش Collect Traces در صفحه اصلی، از منوی Select connection type، گزینه Web Device Proxy را انتخاب کنید:

    Capture traces using Web Device Proxy

    شکل ۳. ثبت ردپاها با استفاده از Web Device Proxy

  2. اگر سرویس Web Device Proxy را روی دستگاه خود ندارید، روی Install کلیک کنید یا نصب‌کننده را اجرا کنید.

  3. دسترسی مبدا به Web Device Proxy را از طریق کادر محاوره‌ای تأیید کنید.

    Authorize origin WDP access

    شکل ۴. مبدا مجاز.

  4. اولین باری که به هر دستگاه جدید متصل می‌شوید، دسترسی را تأیید کنید. اگر کادر محاوره‌ای به طور خودکار ظاهر نشد، روی نماد lock_open در کنار دستگاه کلیک کنید:

    wdp_unauth_device

    شکل ۵. دستگاه را مجاز کنید.

ردپاها

برای جمع‌آوری ردپاها، مراحل زیر را دنبال کنید:

  1. پس از اتصال، برای شروع فرآیند ضبط، اهداف را انتخاب کرده و تنظیمات را پیکربندی کنید. سپس برای شروع ضبط، روی شروع ردیابی کلیک کنید:

    Collect traces in Winscope

    شکل ۶. جمع‌آوری ردپاها در Winscope.

  2. برای متوقف کردن ضبط، روی پایان ردیابی کلیک کنید:

    End trace in Winscope

    شکل ۷. ردیابی پایان در Winscope.

گزینه‌های ردیابی

این بخش گزینه‌های مربوط به هر نوع ردیابی را شرح می‌دهد.

ضبط صفحه نمایش

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

سرفیس‌فلینگر

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

  • ورودی: اگر سطح حاوی داده‌های ورودی باشد، مشخصات پنجره ورودی را ردیابی می‌کند.

  • ترکیب‌بندی: نوع ترکیب‌بندی و ناحیه قابل مشاهده را ردیابی می‌کند.

  • فراداده: فراداده‌های سطحی اضافی، از جمله لایه‌های خارج از صفحه را ردیابی می‌کند.

  • HWC: فراداده‌های اضافی آهنگساز سخت‌افزاری بدون ساختار را ردیابی می‌کند.

  • بافرهای ردیابی: SurfaceFlinger را طوری پیکربندی می‌کند که تمام تغییرات بافر را روی سطح ردیابی کند. به طور پیش‌فرض، SurfaceFlinger فقط زمانی که هندسه تغییر می‌کند، حالت جدیدی را ردیابی می‌کند.

  • نمایشگرهای مجازی: شامل لایه‌های نمایشگر مجازی در ردیابی است.

مدیر پنجره

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

    • فریم: در این حالت، WindowManager در هر فریم یک حالت واحد را نمایش می‌دهد و تضمین می‌کند که فقط حالت‌های معتبر WindowManager ثبت می‌شوند. این حالت کمترین سربار عملکردی را دارد.
    • تراکنش: این حالت هر زمان که یک تراکنش انجام می‌شود، یک وضعیت WindowManager را ثبت می‌کند. شما می‌توانید چندین تراکنش را در یک فریم انجام دهید، بنابراین این امکان اشکال‌زدایی وضعیت‌های میانی WindowManager را در طول یک فریم فراهم می‌کند. با این حال، این حالت در مقایسه با حالت فریم، سربار عملکرد بالاتری دارد.
  • سطح ردیابی: میزان طولانی بودن ردیابی‌های WindowManager را تعیین می‌کند:

    • verbose: شامل تمام پنجره‌ها و اطلاعات پیکربندی برای هر پنجره است. این حالت بالاترین سربار حافظه و عملکرد را دارد.
    • اشکال‌زدایی: شامل اطلاعات مربوط به تمام پنجره‌ها است، اما اگر حاوی پیکربندی لغو درخواستی باشد، فقط پیکربندی پنجره را ثبت می‌کند.
    • بحرانی: شامل همان اطلاعات حالت اشکال‌زدایی است، اما فقط شامل پنجره‌های قابل مشاهده است. این حالت کمترین سربار حافظه و عملکرد را دارد.

زباله‌ها

برای گرفتن یک dump از وضعیت با استفاده از Winscope، در صفحه اصلی، در قسمت Collect Traces ، تب Dump را انتخاب کرده و سپس روی Dump state کلیک کنید:

Dump state in Winscope

شکل ۸. وضعیت تخلیه در Winscope.

پیکربندی تصویر

Winscope امکان گرفتن اسکرین‌شات از چندین نمایشگر را فراهم می‌کند. برای گرفتن اسکرین‌شات، از منو، نمایشگر مورد نظر را انتخاب کنید. اگر هیچ انتخابی انجام نشود، اسکرین‌شات از نمایشگر فعال گرفته می‌شود.