سرفیس فلینگر

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

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

برای اطلاعات بیشتر در مورد جمع آوری ردیابی به SurfaceFlinger (لایه ها) مراجعه کنید.

SurfaceFlinger trace analysis

شکل 1. تجزیه و تحلیل ردیابی SurfaceFlinger.

سمت چپ صفحه نمایش سه بعدی لایه ها را دارد. نمای rects مرزهای لایه، مرتبه z، کدورت، Z نسبی و گوشه های گرد را در نظر می گیرد.

تراشه های سلسله مراتبی

بخش مرکزی برگه سلسله مراتب لایه را با تراشه ها برای اطلاعات بیشتر، مانند روابط والد-فرزند بین لایه ها، به شرح زیر نشان می دهد:

  • V : لایه های قابل مشاهده را شناسایی می کند.
  • RelZParent : لایه ها را با فرزند RelZ شناسایی می کند.
  • RelZ : لایه ها را با RelZParent شناسایی می کند و به ترتیب z به عنوان سلسله مراتب آنها ترسیم می شود.
  • HWC : لایه های تشکیل شده توسط Hardware Composer را شناسایی می کند.
  • GPU : لایه های تشکیل شده توسط GPU را شناسایی می کند.

در سمت راست صفحه، فهرستی از ویژگی‌های انتخاب‌شده، و همچنین یک نمونه اولیه از تمام ویژگی‌های لایه موجود وجود دارد. برای اطلاعات بیشتر در مورد ویژگی‌های بخش proto dump به Properties مراجعه کنید.

ویژگی های انتخاب شده

برای آسان‌تر کردن اشکال‌زدایی، نمایشگر SurfaceFlinger فهرستی از ویژگی‌ها را ارائه می‌کند که متداول‌ترین اطلاعات مورد استفاده را در قالب سازمان‌یافته‌تر ارائه می‌دهد:

SurfaceFlinger properties

شکل 2. ویژگی های SurfaceFlinger.

این لیست شامل دسته های زیر است.

دید

این بلوک حاوی اطلاعاتی در مورد نمایان بودن لایه و توضیحی در مورد اینکه چرا قابل مشاهده نیست. شامل:

پرچم‌ها: اینها قابلیت مشاهده را کنترل می‌کنند، برای مثال، HIDDEN و OPAQUE .

دلیل نامرئی بودن: توضیحی برای اینکه چرا لایه یا سطح در صورت وجود روی صفحه نامرئی است، به عنوان مثال، توسط خودش یا والدش پنهان شده است، یا هیچ بافری برای ترسیم ندارد.

مسدود شده ، تا حدی مسدود شده یا پوشیده شده:

  • Occluded: لایه فعلی به صورت قابل مشاهده محاسبه می شود، اما لایه مات دیگری در بالای آن کشیده می شود و لایه فعلی را نامرئی می کند. لایه بالای لایه Occluded مات است، یعنی یا پرچم OPAQUE آن تنظیم شده است یا قالب پیکسل حاوی آلفا نیست یا آلفا روی لایه تنظیم نشده است.
  • نیمه مسدود شده: لایه فعلی تا حدی قابل مشاهده است زیرا لایه مات کشیده شده در بالای آن به طور کامل آن را نمی پوشاند. لایه بالای لایه Partally Occluded مات است، یعنی پرچم OPAQUE تنظیم شده است، یا قالب پیکسل حاوی آلفا نیست یا آلفا روی لایه تنظیم نشده است.
  • پوشیده شده: لایه فعلی، به طور کامل یا جزئی، توسط یک لایه غیر مات پوشانده شده است و ممکن است همچنان روی صفحه قابل مشاهده باشد. لایه بالای لایه Covered مات نیست، یعنی پرچم OPAQUE تنظیم نشده است یا قالب پیکسل حاوی آلفا یا آلفا روی لایه تنظیم شده است. با این حال، برای ردیابی های SurfaceFlinger، یک لایه Covered به صورت قابل مشاهده نشان داده می شود، برای لایه های زیر SurfaceFlinger:

    Covered layer on SurfaceFlinger

    شکل 3. لایه پوشانده شده در SurfaceFlinger.

هندسه و جلوه ها

این بخش هندسه و افکت های درخواستی و محاسبه شده را برای لایه فعلی توضیح می دهد.

بخش Requested خصوصیات در حال تنظیم روی لایه را نشان می دهد. در مقابل، بخش Calculated خصوصیاتی را که بر روی لایه اعمال می شود نمایش می دهد. این تمایز به این دلیل است که هندسه و جلوه ها از سلسله مراتب منتقل می شوند و از عناصر والد به ارث می رسند.

در شکل 2، لایه درخواست می کند که شعاع گوشه روی 0 پیکسل تنظیم شود. با این حال، یکی از لایه های اصلی آن ، شعاع گوشه را 97.419 پیکسل تعیین می کند، که مقدار اعمال شده است:

بافر

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

  • Frame Number: عدد افزایشی که با ایجاد یک برنامه شروع می شود.
  • Destination Frame: برای مقیاس بندی بافر به محدوده های تعریف شده توسط فریم مقصد استفاده می شود.

سلسله مراتب

خواص زیر نحوه تعیین سلسله مراتب لایه ها را شرح می دهد:

  • مرتبه z: در سلسله مراتب لایه ها، ترتیب z موقعیت نسبی یک لایه را نسبت به خواهر و برادرش تعیین می کند. لایه ای با z-value 0 در بالای والد خود قرار می گیرد. اگر چندین لایه یک مقدار z را به اشتراک بگذارند، لایه با شناسه لایه بالاتر در بالا قرار می گیرد.
  • والد نسبی: لایه والد نسبی را در مرتبه z نشان می دهد. فرزند هیچ خاصیتی را از والدین خویشاوند خود به جز پرچم پنهان به ارث نمی برد.

ورودی

ویژگی‌های زیر حاوی اطلاعاتی درباره منطقه و فوکوس قابل لمس است:

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