الاثنين، 15 سبتمبر 2014

كيفية إستخدام أداة LogCat لحل الأخطاء البرمجية

في هذا الدرس سنتعرف على أداة مهمة جدا يحتاجها كل مبرمجي الأندرويد بشدة ومع ذلك يجهلها الكثيرون ولا يعرفون أهميتها وهذه الأداة اسمها LogCat سنتعلم كيفية إستخدامها لتساعدنا على حل المشاكل التي تواجهنا أثناء البرمجة.
كلنا عارفين إن حياة المبرمج مليانه باجات (bugs أي الأخطاء البرمجية الموجودة في الكود والتي لا تظهر إلا أثناء عمل البرنامج) لذلك صعوبة الباجات أنها لا تكون ظاهره أثناء كتابة الكود وإنما تظهر في حالات معينة عند إستخدام التطبيق مما يصعب مهمة معرفة سببها وتحليل المشكلة ثم حلها، ولتسهيل هذا الأمر نستخدم أداة LogCat فهي تساعدنا على معرفة رقم السطر في الكود الذي ظهرت المشكلة عند محاولة تنفيذه، بالإضافة إلى أنها توضح لنا نوع المشكلة مما يسهل عليك بعد ذلك مهمة حل المشكلة لأن كما يقال "معرفة المشكلة نص الطريق لحلها".

أولا: ماذا يعني LogCat وما هو شكلها؟

وظيفة الأداة:

اسم الأداة ليس له ترجمة مباشرة فهو مجرد تسمية، الشق الأول منها وهوكلمة Log هو الذي يدل على وظيفة الأداة، وترجمته هي "سجل " ويقصد به سجل يحتوى على الرسائل التي يرسلها النظام عند حدوث شئ معين.
ما رأيكم نأخذ مثال بسيط للتوضيح؟ تخيل أنك حارس لبوابة دخول أحد الأماكن المهمة ومطلوب منك تسجيل كل حركه تحدث في المكان، فستقوم بعمل سجل فيه جدول كالآتي:
الساعة | الحدث | التفاصيل
7 ص | وصول أ/فهمي صالح | وهو مدير الشركة وقد قام بركن سيارته بجوار باب الدخول.
7:30 ص | وصول السيد/فاروق سعيد | وهو مدير قسم الماليات ويحمل حقيبة سوداء بأرقام سرية.
.
.
.
وهكذا
2 ظ : نهاية خدمتي | قمت بتسليم السجل للسيد فلان الفلاني قبل مغادرتي لمكاني.

هذا سجل بسيط لتوضيح الفكرة فقط، أما الـ LogCat فيحتوى على معلومات شبيهه بذلك مع مزيد من التفاصيل كما سنرى، فوظيفة الأداة هي عرض الرسائل المختلفة التي يقوم النظام بإرسالها للمبرمج.

شكل الأداة واللوجو الخاص بها:

قد تجد الأداة تظهر لديك بشكل افتراضي في التبويبات التي بالأسفل كما يتضح من الصورة


إذا لم تجدها فتابع معي خطوات إظهارها في الجزء التالي.

ثانيا: أين أجد أداة LogCat ؟
هذه الأداة موجودة في حزمة تطوير الأندرويد ADT ويمكن إظهارها في الإيكلبس باتباع الخطوات الآتية:
1- اختيار Window من القايمة العلوية
2- اختيار Show View من القايمة المنسدلة
3- اختيار أداة LogCat من القايمة الجانبية، إذا لم تجدها فأكمل معي باقي الخطوات.
4- اختيار Other في نهاية القايمة كما يتضح في الصورة


5- ستظهر لك شاشة صغيرة افتح قايمة الـ Android ثم اختار منها الأداة ثم اضغط OK كما بالصورة


6- ستظهر لك شاشة الأداة وتستطيع تكبيرها أو حتى تغيير مكانها كما بالصورة


ثالثا: فهم الرسائل التي يرسلها النظام:

كما يظهر في الصورة السابقة هناك جدول يحتوى على عدة خانات كل ما يهمنا منها حاليا التالي:
1- ودا وقت إرسال الرسالة من النظام.
2- ودا اسم التطبيق الذي تم إرسال الرسالة منه (لاحظ إنه بيكتب اسم الـ Package كاملا).
3- دا محتوى الرسالة.

ملاحظة مهمة:

لظهور هذه الرسائل يجب أن توصل جهاز الموبايل بالكمبيوتر أو تقوم بتشغيل محاكي الأندرويد.

رابعا: التعرف على الأخطاء البرمجية:

سنتطرق إلى الجزء الذي يهمنا مباشرة وهو فهم الرسائل التي يرسلها النظام عند حدوث خطأ برمجي، هذه الرسائل تتميز أن لونها يكون أحمر 


وكما يتضح في الصورة ان اسم الـ package الخاصة بالتطبيق هي ex.elsawafapps.logcat ودا تطبيق أنا عامله للتوضيح وركز معي في  الآتي:
1- في هذا السطر توضيح موجز للخطأ الذي حدث.
2- من أول هذا السطر والذي يليه عبارة عن الأخطاء المتتالية التي حدثت نتيجة الخطأ الرئيسي، كل ما يهمنا منها النقطة التالية.
3- دايما دور على كلمة Caused by أي "حدت بسبب" وهنا السبب java.lang.ArrayIndexOutOfBoundsException ماتخليش الاسم يخوفك ، فقط كل ما تحتاجه بحث بسيط على جوجل لتفهم ما معني هذا الأخطاء.
وفي المثال الذي لدينا هنا فهذا باج شهير ينتج عند محاولة الوصول إلى index غير موجود في الـ array زي ما موضح في باقي السطر ان الـ array طوله 2 فقط وأنا عايز العنصر رقم 4 ، فطبعا هو هاين عليه يشتمني ويقولي اجيبهولك منين دا يعني :)
4- ودا مكان حصول الخطأ في الكود، وفي الآخر مكتوب رقم السطر تحديدا في Class كذا.
ملاحظة: لو ضغطت على هذا السطر مرتين هينقلك لمكان السطر مباشرة (حركة مفيدة ولكن أوقات طويلة بتكون تقيله في التنفيذ).

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

هناك 3 تعليقات: