دادهریزیهای SurfaceFlinger تصویری فوری از SurfaceFlinger در زمانی خاص ارائه میدهد. ویژگی ردیابی SurfaceFlinger شامل توالی زمانی وضعیتهایی است که اطلاعات آماری ارزشمندی درباره نحوه نمایش پنجره در صفحهنمایش و تعیین پنجرهای که پاسخهای لمسی را در مکانهای خاص دریافت میکند ارائه میدهد. این اطلاعات به شما کمک میکند مشکلات را عیبیابی کنید، مثلاً برنامه به لمس من پاسخ نمیدهد یا هنگام تماشای ویدیو، پرش تصویر را تجربه کردم.
در Winscope، بیننده SurfaceFlinger این اطلاعات را برای ردگیریهایی که بااستفاده از حالت فعال جمعآوری میکنید یا از ردگیری تراکنشها هنگام تهیه گزارش اشکال (بهطور پیشفرض، پیکربندی Droidfood) تولید میشود، و همچنین برای تخلیهها نمایش میدهد.
برای اطلاعات بیشتر درباره جمعآوری ردگیری، SurfaceFlinger (لایهها) را ببینید.
شکل ۱. تحلیل ردیابی SurfaceFlinger.
سمت راست صفحهنمایش نمای سهبعدی لایهها را نشان میدهد. نمای مستطیلها مرزهای لایه، ترتیب z، شفافیت، Z نسبی، و گوشههای گرد را درنظر میگیرد.
تراشههای سلسلهمراتب
بخش مرکزی برگه سلسلهمراتب لایه را با تراشههایی برای اطلاعات بیشتر، مانند روابط والد-فرزند بین لایهها، به شرح زیر نشان میدهد:
- V: لایههای رؤیتپذیر را شناسایی میکند.
- RelZParent: لایهها را با فرزند RelZ شناسایی میکند.
- RelZ: لایههای دارای RelZParent را شناسایی میکند و آنها را بهترتیب z بهعنوان سلسله مراتبشان رسم میکند.
- HWC: لایههای ساختهشده توسط «آهنگساز سختافزاری» را شناسایی میکند.
- واحد پردازش گرافیکی: لایههای ساختهشده توسط واحد پردازش گرافیکی را شناسایی میکند.
در سمت چپ صفحه، فهرستی از داراییهای گلچینشده و همچنین proto dump از همه داراییهای لایه دردسترس نمایش داده میشود. برای اطلاعات بیشتر درباره ویژگیهای بخش تخلیه پروتکل، داراییها را ببینید.
داراییهای گلچینشده
برای آسانتر کردن اشکالزدایی، نمایشگر SurfaceFlinger فهرست دستچینی از ویژگیها را ارائه میدهد و اطلاعاتی را که بیشتر استفاده میشود در قالب سازمانیافتهتری ارائه میدهد:
شکل ۲. خصوصیات SurfaceFlinger.
این فهرست شامل دستههای زیر است.
نمایان بودن
این بلوک حاوی اطلاعاتی درباره رؤیتپذیری لایه و توضیحاتی درباره دلیل رؤیتپذیر نبودن آن است. شامل این موارد میشود:
پرچمها: این پرچمها نمایان بودن را کنترل میکنند، برای مثال،
HIDDENوOPAQUE.دلیل نامرئی بودن: توضیحی درباره اینکه چرا لایه یا سطح در صفحه نامرئی است (درصورت وجود)، برای مثال، توسط خودش یا والدش پنهان شده است، یا میانگیری برای ترسیم ندارد.
مسدود، تاحدی مسدود، یا پوشیده:
- مسدودشده: لایه فعلی بهعنوان قابلمشاهده محاسبه میشود، اما لایه مات دیگری روی آن کشیده میشود که لایه فعلی را نامرئی میکند. لایه بالای لایه پوشاندهشده مات است، یعنی یا پرچم
OPAQUEآن تنظیم شده است، یا قالب پیکسل حاوی آلفا نیست یا هیچ آلفایی روی لایه تنظیم نشده است. - تاحدی مسدودشده: لایه فعلی تاحدی قابلمشاهده است زیرا لایه ماتی که روی آن کشیده شده است آن را کاملاً نمیپوشاند. لایه بالای لایه
تاحدی پوشیده مات است، یعنی پرچم
OPAQUEتنظیم شده است، یا قالب پیکسل حاوی آلفا نیست یا هیچ آلفایی روی لایه تنظیم نشده است. پوشیدهشده: لایه کنونی بهطور کامل یا جزئی توسط لایهای غیرمات پوشیده شده است و ممکن است همچنان در صفحه قابلمشاهده باشد. لایه بالای لایه پوششدادهشده مات نیست، یعنی پرچم
OPAQUEتنظیم نشده است یا قالب پیکسل حاوی آلفا است یا آلفا در لایه تنظیم شده است. بااینحال، برای ردگیریهای SurfaceFlinger، لایه پوشاندهشده بهعنوان نمایان نشان داده میشود، برای لایههای زیر SurfaceFlinger:
شکل ۳. لایه پوششدادهشده در SurfaceFlinger.
- مسدودشده: لایه فعلی بهعنوان قابلمشاهده محاسبه میشود، اما لایه مات دیگری روی آن کشیده میشود که لایه فعلی را نامرئی میکند. لایه بالای لایه پوشاندهشده مات است، یعنی یا پرچم
هندسه و جلوهها
این بخش هندسه و جلوههای درخواستشده و محاسبهشده را برای لایه فعلی شرح میدهد.
بخش درخواستشده ویژگیهایی را که روی لایه تنظیم شده است نشان میدهد. در مقابل، بخش محاسبهشده ویژگیهایی را که به لایه اعمال میشوند نمایش میدهد. این تمایز به این دلیل است که هندسه و جلوهها از سلسله مراتب پایین میروند و از عناصر والد به ارث میرسند.
در «شکل ۲»، لایه درخواست میکند که شعاع گوشه روی ۰ پیکسل تنظیم شود. بااینحال، یکی از لایههای والد آن شعاع گوشه را روی ۹۷٫۴۱۹ پیکسل تنظیم میکند که مقدار اعمالشده است.
حائل
ویژگیهای زیر اطلاعاتی درباره اینکه آیا لایه دارای حاشیه است یا نه، اندازه آن، و تبدیل را نمایش میدهد:
- شماره قاب: عدد افزایشی که از زمان ایجاد برنامه شروع میشود.
- قاب مقصد: برای مقیاسبندی بافر به محدودههای تعریفشده توسط قاب مقصد استفاده میشود.
سلسلهمراتب
خواص زیر نحوه تعیین سلسلهمراتب لایهها را توصیف میکند:
- ترتیب z: در سلسله مراتب لایهها، ترتیب z موقعیت نسبی یک لایه را نسبت به لایههای همسطح خود تعیین میکند. لایهای با مقدار z برابر با ۰ در بالای والد خود قرار میگیرد. اگر چند لایه مقدار z یکسانی داشته باشند، لایهای که شناسه لایه بالاتری دارد در بالا قرار میگیرد.
- relative parent: لایه والد نسبی را در ترتیب z نشان میدهد. فرزند هیچ داراییای را از والد نسبی خود بهارث نمیبرد، بهجز پرچم پنهان.
ورودی
داراییهای زیر حاوی اطلاعاتی درباره منطقه لمسکردنی و تمرکز است:
- برش دادن منطقه لمس با مورد: از محدودههای لایه برای برش دادن منطقه لمسکردنی استفاده کنید.
- جایگزین کردن ناحیه لمسی با برش: از برش لایههای کنونی بهعنوان ناحیه لمسی آن استفاده کنید.