كيفية التقاط تتبع النظام محليا على فطيرة أندرويد

تتبع هي أداة لا تقدر بثمن تمكن المطورين من فهم التأثير الذي تحدثه التغييرات المختلفة على النظام ويمكن أن توفر أدلة لتحديد السبب الجذري للمشاكل.

systrace هي إحدى أدوات التتبع القوية التي تجمع معلومات التوقيت من العمليات التي تعمل على جهاز Android. تم استخدام systrace على نطاق واسع من قبل فريق أداء Android في Google لتحسين الأداء على هواتف Google Pixel. لقد استخدمت نظام systrace لفحص تأثير تغييرات جدولة kernel على مواضع المهام على وحدات المعالجة المركزية (CPU) ، على سبيل المثال ، ولتحديد الأسباب المحتملة للإبحار. يمكن لـ systrace التقاط مجموعة واسعة من البيانات ، بما في ذلك جدولة وحدة المعالجة المركزية ، وتكرار وحدة المعالجة المركزية ، والقرص I / O ، والرسومات ، ونشاط Binder ، وأكثر من ذلك بكثير. يتم دمج المعلومات في تقرير يمكن تحليله في Google Chrome.

قبل Android Pie ، كانت الطريقة الوحيدة لالتقاط الآثار باستخدام systrace هي توصيل جهاز Android بجهاز كمبيوتر وتشغيل نظام systrace من هناك - عادةً من جهاز طرفي. ومع ذلك ، ليس لدى الجميع وصول مستمر إلى جهاز كمبيوتر ، أو المعرفة والثقة لتشغيل نظام systrace.

مع إصدار Android Pie ، تمت معالجة هذا الإزعاج مع مقدمة حزمة Traceur ، وهي أداة تلتقط بيانات التتبع الخام مباشرة على هاتف Android. يتوفر Traceur كخيار "تتبع النظام" في تطبيق Developer Options من تطبيق Settings ، ويمكن تحويل بيانات التتبع الأولية التي تم التقاطها على الجهاز بواسطة Traceur في وقت لاحق بواسطة systrace إلى تقرير HTML لتحليلها.

يتيح خيار "تتبع النظام" الجديد للمستخدمين التقاط ومشاركة الآثار بسهولة مع المطورين ، دون الحاجة إلى معرفة كيفية تشغيل نظام systrace على جهاز كمبيوتر بالفعل. يستفيد المطورون من القدرة على التقاط آثار دون جهاز كمبيوتر وتحليلها لاحقًا وفقًا لما يناسبهم. إن بيانات التتبع الأولية الكاملة التي يتم جمعها بواسطة "تتبع النظام" أصغر أيضًا في حجمها من تقرير HTML الذي تم إنشاؤه بواسطة systrace ، مما يجعل بيانات التتبع الأولية أكثر ملاءمة للتخزين والمشاركة مع الآخرين.

دليل: نظام جمع وتحليل آثار النظام

أولاً ، تأكد من أن لديك جهازًا يشغل Android Pie وجهاز كمبيوتر مثبت عليه Python 2. تم تنفيذ الإرشادات التالية على OnePlus 6 الذي يشغل أحدث إصدار تجريبي من OxygenOS Android Pie.

  1. قم بتمكين "خيارات المطور" في تطبيق "الإعدادات" ، ثم قم بالوصول إلى خيار "تتبع النظام" في قسم "تصحيح الأخطاء" في "خيارات المطور".

  2. عند فتح تتبع النظام ، سيتم تقديم تبديل لك لتمكين تتبع النظام ، والقدرة على تخصيص فئات التتبع وحجم المخزن المؤقت للتتبعات. بالنسبة لهذا العرض التوضيحي ، يتم استخدام الفئات الافتراضية ، وهو ما يكفي لمعظم الحالات. يسمح تبديل "إظهار لوحة الإعدادات السريعة" ببدء التتبع / إيقافه عبر الإعدادات السريعة. لقد قمت بتمكين هذا لهذا الدليل.

  3. لبدء التقاط أثر ، انقر فوق لوحة الإعدادات السريعة "سجل التتبع" المضافة حديثًا.

  4. عندما تنتهي من تتبع حالة اختبار ، يمكنك إيقاف التتبع من غطاء الإشعار.

  5. عظيم! لقد نجحت في التقاط أثر أولي. سيطالبك إعلام بمشاركة ملف التتبع الخام. يجب أن تكون قادرًا على حفظه على جهازك ، وتحميله على سعة التخزين عبر الإنترنت ، وإرساله بالبريد الإلكتروني إلى شخص ما ، إلخ. بدلاً من ذلك ، يمكنك استخدام ADB لسحب التتبع مباشرة من جهازك إلى جهاز الكمبيوتر الخاص بك ( adb pull /data/local/traces/ ). المضي قدما وحفظ ملف التتبع إلى جهاز الكمبيوتر الخاص بك.

  6. يحتوي ملف التتبع الخام على تنسيق .ctrace. لا يمكن تفسيره بشكله الخام. يمكننا استخدام systrace لإنشاء تقرير HTML تفاعلي أكثر فائدة وفهمًا من ملف التتبع الخام الخاص بنا.

  7. سوف نستخدم أحدث إصدار من systrace من repo project repo. في تطبيق المحطة ، استنساخ الريبو (تأكد من تثبيت بوابة):
     git clone //github.com/catapult-project/catapult.git 
  8. لإنشاء تقرير HTML من ملف التتبع الأولي الخاص بنا باستخدام systrace ، أدخل الأوامر التالية:
     python2 catapult/systrace/bin/systrace --from-file= 

    سيتم إنشاء ملف HTML بنفس الاسم مثل ملف التتبع الخام. ملاحظة: systrace يدعم Python 2 فقط في وقت كتابة هذا التقرير.

  9. لعرض تقرير HTML ، قم بتشغيل متصفح Google Chrome والوصول إلى عنوان URL "chrome: // tracing". لا تفتح تقرير HTML مباشرة في Google Chrome لأنه سيظهر فارغًا.

  10. انقر فوق "تحميل" وافتح ملف تقرير HTML من مربع الحوار المنبثق. فويلا! تقرير التتبع متاح الآن للفحص.

ماذا بعد؟

الآن بعد أن أصبحت قادرًا على التقاط تتبع وإنشاء تقرير systrace ، من المهم أن نفهم كيفية قراءة وتفسير البيانات المقدمة في التقرير. لبداية ، أوصي بقراءة "Understanding Systrace " ، ومشاهدة "Android Performance: An Overview (Google I / O '17)" و " Systrace for Games" لرؤية systrace قيد التنفيذ.

هذا منشور ضيف كتبه في الأصل Josh Choo ، المعروف أيضًا باسم joshuous Developer المعروف. تم تحرير المشاركة برفق للتنسيق.