Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

تتبع انتقالات النافذة

يوفر WinScope البنية الأساسية والأدوات اللازمة لتسجيل وتحليل حالات WindowManager و SurfaceFlinger أثناء انتقالات النافذة وبعدها. يسجل WinScope جميع حالات خدمة النظام ذات الصلة إلى ملف تتبع ، والذي يمكنك استخدامه لإعادة التشغيل والتنقل عبر الانتقالات.

التقاط الآثار

آثار خلال الاستيلاء على إعدادات خيارات أو adb على أجهزة تعمل بنظام التشغيل userdebug أو المهندس يبني.

إعدادات سريعة

لالتقاط آثار من الإعدادات السريعة :

  1. تمكين خيارات المطور .
  2. انتقل إلى خيارات المطور > مربعات مطور الإعدادات السريعة .
  3. تفعيل WinScope Trace .
  4. افتح الإعدادات السريعة .
  5. اضغط على Winscope Trace لتمكين التتبع.
  6. قم بتشغيل انتقالات النافذة على الجهاز.
  7. بعد الانتهاء ، افتح الإعدادات السريعة واضغط على Winscope Trace لتعطيل التتبع.

تتم كتابة /data/misc/wmtrace/wm_trace.pb على /data/misc/wmtrace/wm_trace.pb و /data/misc/wmtrace/layers_trace.pb . يتم تضمين الآثار أيضًا في تقارير الأخطاء.

adb

عند التقاط آثار من خلال adb ، التقط آثار WindowManager و SurfaceFlinger بشكل منفصل.

يتتبع WindowManager

لالتقاط آثار WindowManager:

  1. تمكين التتبع:
    adb shell cmd window tracing start
  2. تعطيل التتبع:
    adb shell cmd window tracing stop
  3. خذ ملف التتبع:
    adb pull /data/misc/wmtrace/wm_trace.pb wm_trace.pb

يمكنك اختياريًا تغيير تكوين السجل الافتراضي للإعدادات المختلفة لتتبع WindowManager:

  • اضبط تردد السجل (للمعاملة أو الإطار):
    adb shell cmd window tracing [frame | transaction]
  • قم بتكوين المستوى المطول لإدخالات السجل:
    adb shell cmd window tracing level [all | trim | critical]
  • قم بتعيين الحد الأقصى لحجم المخزن المؤقت (بالكيلو بايت):
    adb shell cmd window tracing size size-value
  • تفريغ حالة المخزن المؤقت ومستوى السجل والسعة المتبقية وعدد العناصر:
    adb shell cmd window tracing status

آثار SurfaceFlinger

لالتقاط آثار SurfaceFlinger:

  1. تمكين التتبع:
    adb shell su root service call SurfaceFlinger 1025 i32 1
  2. تعطيل التتبع:
    adb shell su root service call SurfaceFlinger 1025 i32 0
  3. خذ ملف التتبع:
    adb pull /data/misc/wmtrace/layers_trace.pb layers_trace.pb

يمكنك اختياريًا تغيير تكوين السجل الافتراضي للإعدادات المختلفة لتتبع SurfaceFlinger:

  • قم بتعيين الحد الأقصى لحجم المخزن المؤقت (بالكيلو بايت):
    adb shell su root service call SurfaceFlinger 1029 i32 size-value
  • قم بتكوين المستوى المطول لإدخالات السجل:
    adb shell su root service call SurfaceFlinger 1033 i32 flags

توليد مقالب الحالة

يقرأ WinScope لقطة من حالات WindowManager و SurfaceFlinger من تقارير الأخطاء. تقوم تقارير الأخطاء بتخزين الحالات كملفات أولية منفصلة داخل مجلد proto . لإنشاء مقالب الحالة باستخدام adb ، قم بتشغيل الأوامر التالية.

مدير النافذة

adb exec-out dumpsys window --proto > window_dump.pb

SurfaceFlinger

adb exec-out dumpsys SurfaceFlinger --proto > sf_dump.pb

تحليل الآثار

لتحليل ملف التتبع ، استخدم تطبيق الويب WinScope. يمكنك إنشاء التطبيق من المصدر أو فتحه من الدليل الذي تم إنشاؤه مسبقًا.

  1. قم بتنزيل الأدوات التي تم إنشاؤها مسبقًا من مستودع مصدر Android:
    curl 'https://android.googlesource.com/platform/prebuilts/misc/+/master/common/winscope/winscope.html?format=TEXT' | base64 -d > winscope.html
  2. افتح الأدوات التي تم تنزيلها في متصفح الويب.
  3. بعد فتح WinScope ، حدد OPEN FILE لتحميل ملف التتبع.

باستخدام WinScope

بعد فتح ملف التتبع في WinScope ، يمكنك تحليل التتبع بعدة طرق.

لقطة شاشة WinScope
الشكل 1. تحليل أثر في WinScope
  • المخطط الزمني - يعرض تسلسل الأحداث في التتبع. استخدم مفاتيح الأسهم أو انقر فوق كل إدخال للتنقل عبر المخطط الزمني.
  • الشاشة - توفر تمثيلاً مرئيًا لكل نافذة مرئية على الشاشة. انقر فوق نافذة لتحديد النافذة المصدر في التسلسل الهرمي.
  • التسلسل الهرمي - يمثل كل نافذة معروفة للنظام. لا تحتوي بعض النوافذ على مخازن مؤقتة ، ولكنها موجودة لتعيين السياسات على العناصر الفرعية للنافذة. يتم تمييز النوافذ المرئية برمز V
  • الخصائص - تعرض معلومات الحالة للإدخال المحدد في التسلسل الهرمي.