تتبع Winscope هو جزء من إطار عمل Android. توضِّح هذه الصفحة الخطوات المطلوبة لتنزيل وإنشاء وتشغيل أداة عرض عمليات التتبّع Winscope على الجهاز.
إنشاء Winscope محليًا
اتّبِع الخطوات التالية لإعداد جهاز الكمبيوتر لتشغيل أداة تتبُّع Winscope:
- تنزيل رمز المصدر لنظام التشغيل Android
انتقِل إلى مجلد Winscope:
cd development/tools/winscope
يمكنك تثبيت التبعيات باستخدام:
npm install
للاطّلاع على قائمة بالأوامر المتاحة، شغِّل:
npm run
يمكنك إنشاء جميع أهداف الإصدار والاختبار باستخدام:
npm run build:prod
يمكنك تشغيل Winscope باستخدام:
npm run start
إنشاء أجزاء منفصلة
يمكنك إنشاء أجزاء فردية من Winscope بشكل منفصل باستخدام الطوبوص التالية:
الأمر | الوصف |
---|---|
build:trace_processor |
تتحقّق من أحدث إصدار منtrace_processor في Perfetto وتعيد إنشائه. |
build:protos |
تعيد تجميع تعريفات proto. |
إجراء الاختبارات
يحتوي Winscope على اختبارات الوحدة والاختبارات الشاملة. لتنفيذها، استخدِم npm run
<command>
:
الأمر | الوصف |
---|---|
test:unit:ci |
لتشغيل اختبارات الوحدة بتنسيق أقل تفصيلاً لدمج الإصدارات التلقائية أو أداة الربط المُسبَق لإرسال المحتوى |
test:unit:dev |
لتشغيل اختبارات الوحدات بتنسيق أكثر تفصيلاً للتطوير على الجهاز يراقب هذا الوضع التغييرات و يعيد تشغيل الاختبارات الصحيحة تلقائيًا. |
test:e2e |
تشغيل الاختبارات الشاملة، مثل الاختبارات المتعلقة ببروتوكول الأدوات المتعددة |
test:presubmit:quiet |
تُنشئ جميع اختبارات الوحدات وأدوات فحص الأخطاء وتحليل الرسوم البيانية قبل إرسال الرمز البرمجي بتنسيق أقل تفصيلاً لعمليات التكامل المستمر أو ميزة presubmithook. |
test:presubmit |
تُنشئ جميع اختبارات الوحدات وأدوات التدقيق وتحليل الرسوم البيانية قبل إرسالها بتنسيق أكثر تفصيلاً لعملية التطوير على الجهاز. |
test:all |
يُجري جميع الاختبارات (الاختبارات على مستوى الوحدة والاختبارات الشاملة) وأدوات التدقيق و تحليل الرسوم البيانية بتنسيق أكثر تفصيلاً لعملية التطوير على الجهاز. |
تعديل تعيين @IntDef
@IntDef
هو تعليق توضيحي يُستخدَم في Android لتقييد القيم المحتملة لسمة
عدد صحيح. يستخدم Winscope تعيينًا لهذه التعليقات التوضيحية لعرض اسم
القيمة بدلاً من عددها الصحيح.
لتعديل تعيين @IntDef
، اتّبِع الخطوات التالية:
أنشئ
:framework-minus-apex-intdefs
لتشغيل المعالج المُسبَق للتعليقات التوضيحية:mp :framework-minus-apex-intdefs
انسخ ملف
intDefMapping.json
الذي تم إنشاؤه إلى مستودع الإصدارات المُسبقة الإنشاء:$ python3 -c 'import sys,json,collections; print(json.dumps(collections.OrderedDict(sorted(collections.ChainMap(*map(lambda x:json.load(open(x)), sys.argv[1:])).items())), indent=2))' $(find out/soong/.intermediates/frameworks/base -iname intDefMapping.json) > ./development/tools/winscope/src/common/intDefMapping.json
حمِّل التغييرات في Winscope باستخدام
repo upload
.
طلبات أخرى
بالإضافة إلى عمليات الإنشاء والاختبارات، تحتوي نصوص Winscope البرمجية على إمكانات أخرى، كما هو موضح في الجدول. لتنفيذها، استخدِم npm run command
:
الأمر | الوصف |
---|---|
format:check |
التحقّق من مشاكل تنسيق الرموز باستخدام prettier |
format:fix |
التحقّق من مشاكل تنسيق الرموز البرمجية وإصلاحها تلقائيًا باستخدام prettier |
eslint:check |
التحقّق من المشاكل في تنسيق الرموز باستخدام eslint |
eslint:fix |
التحقّق من مشاكل تنسيق الرموز البرمجية وإصلاحها تلقائيًا باستخدام eslint |
tslint:check |
التحقّق من مشاكل تنسيق الرموز باستخدام tslint |
tslint:fix |
التحقّق من مشاكل تنسيق الرموز البرمجية وإصلاحها تلقائيًا باستخدام tslint |
deps_graph:check_cycles |
لتحليل الرمز البرمجي للتبعيات الدورية |
تحديد المشاكل وحلّها
اتّبِع النصائح التالية لتحديد المشاكل وحلّها:
الخطأ
ProtocolError: missing required '<FIELD>'
أوTypeError: Cannot read property '<PROP>' of null
يحدث ذلك عند إنشاء ملف التتبُّع باستخدام تعريف proto جديد، يحتوي على حقول مطلوب جديدة.
- تأكَّد من فتح عملية التتبُّع على إصدار Winscope الصحيح (master أو S أو R).
في حال إنشاء الحقل الجديد في النموذج، أعِد تجميع النماذج في Winscope باستخدام
npm run build:protos
.
بعض إصدارات الملحقات المثبَّتة غير صحيحة (تعذُّر إنشاء الحِزمة)
- ألغِ التغييرات التي أجريتها على
package.json
وpackage-lock.json
. أزِلnode_modules
. شغِّلnpm install
مرة أخرى.
- ألغِ التغييرات التي أجريتها على
لقد أضفت حقلًا جديدًا إلى أحد ملفات proto. كيف يمكنني عرضها؟
- يستخدم Winscope تعريفات proto منذ وقت تجميعه، لذا لن تظهر الحقول الجديدة تلقائيًا. لعرض حقول جديدة، أعِد إنشاء العناصر الأساسية
باستخدام
npm run build:protos
.
- يستخدم Winscope تعريفات proto منذ وقت تجميعه، لذا لن تظهر الحقول الجديدة تلقائيًا. لعرض حقول جديدة، أعِد إنشاء العناصر الأساسية
باستخدام