آموزش خطایابی در اندروید (Android Debugging) - بخش اول
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آموزش خطایابی در اندروید (Android Debugging) - بخش اول
مبحث این جلسه از درس ما مربوط به آموزش خطایابی در اندروید میباشد. حتما تا الان با خطاهای زیادی برخورد کردهاید و زمان زیادی را صرف رفع آنها گذاشتهاید. در همه IDEها ابزارهایی برای شناسایی خطا وجود دارد که اگر به این ابزار ها مسلط باشید، میتوانید خیلی سریع خطای به وجود آمده را بررسی و رفع کنید. در محیط اندروید استودیو ابزارهای زیادی برای Debugging وجود دارد که در 2 بخش این ابزارها را بررسی میکنیم.
در ابتدا پنچره Logcat را یاد میگیریم که میتواند تمام رخ دادهای اپلیکیشن در زمان اجرا را به ما نمایش دهد و سپس ابزار Debugging در اندروید استودیو را یاد میگیریم.
تقریبا 3 دسته خطا درون برنامهها وجود دارند
-
Syntax Error
Syntax Errorها سادهترین خطاهای برنامهنویسی هستند که قبل از اجرای برنامه شناسایی میشوند و تا زمانی که آن خطا رفع نشود اجازه کامپایل داده نمیشود. به عنوان مثال اشتباه تایپی در استفاده از کلاسها و توابع، استفاده از {}های کم یا زیاد و...
-
Run-Time Error
Run-Time Errorها زمانی اتفاق میافتد که برنامه به درستی اجرا میشود ولی در شرایط خاص که از به وجود آمدن آن جلوگیری نکردهایم خطا به وجود میآید؛ به عنوان مثال در یک برنامه ماشین حساب، کاربر عدد دوم را صفر وارد میکند و چون آن را کنترل نکردهایم، برنامه با خطا مواجه میشود. پیدا کردن این نوع خطاها هم معمولا راحت است و میتوان از پنچره logcat استفاده کرد.
-
Logical Error
Logical Error یکی از بدترین نوع خطاهاست. در واقع خطاهایی هستند که برنامه بدون ارور و مشکلی کامپایل و اجرا میشود اما نتیجه کار اشتباه است و آن کاری که ما میخواهیم را انجام نمیدهد. به عنوان مثال کاربر عدد 2 و 5 را درون ماشین حساب جمع میکند اما در خروجی 10 نمایش داده میشود در واقع برنامه بدون مشکل اجرا شد اما خروجی اشتباه است. یکی از بهترین ابزار برای تشخیص این نوع خطاها استفاده از Logcat و همچنین ابزار Debugging است.
آشنایی با پنجره Logcat
پنجره Logcat از چندین قسمت تشکیل شده است که در بالا شمارهگذاری شده است.
-
Emulator مورد نظر را میتوان انتخاب کرد.
-
Package مورد نظر برنامه را میتوان را انتخاب کرد.
-
نوع Log را میتوان مشخص کرد.
-
سرچ (با فعال بودن تیک Regex میتوان درون سرچ از عبارات Regex استفاده کرد).
-
میتوان فیلتر Logcat را تغییر داد.
-
نوار ابزار.
انواع Logها:
-
V-Verbose: تمام Logها را نمایش میدهد.
-
D-Debug: خطاهای زمان اجرای برنامه را نمایش میدهد.
-
Log :I-Infoهای اطلاعرسانی را نمایش میدهد.
-
Log :W-Warnهای اخطار را نمایش میدهد.
-
E-Error: خطاهای برنامه را نمایش میدهد.
-
A-Assert: خطاهای مرگبار را نمایش میدهد
در بالا انواع Logها به همراه مخفف آنها که از حرف اول است را مشاهده کردید.
نکته: هنگام قرار دادن نوع Log در پنجره Logcat همه حالت بعدی را نیز نمایش میدهد. مثلا اگر بر روی I قرار دهید W و E و A را نیز به شما نمایش خواهد داد.
برای دسترسی سریعتر میتوانید از Logcat filter استفاده کنید. برای ساخت Logcat Filter به قسمت پنچره فیلتر مراجعه کنید (گزینه 5 از تصویر بالا) سپس گزینه Edit Filter Configuration را انتخاب کنید.
توضیح قسمتهای مشخص شده در تصویر
-
نام فیلتر را وارد کنید.
-
نام تگ مورد نظر را وارد کنید.
-
حروف یا کلماتی که درون message آنها وجود دارد را وارد کنید.
-
Package Name برنامه را وارد کنید.
-
نوع Log را وارد کنید.
برای ساخت Log درون پروژه از کلاس Log استفاده میکنیم.
Log.v(“MyTag”,”Hellow Android”);
Log.d(“MyTag”,”Hellow Android”);
Log.i(“MyTag”,”Hellow Android”);
Log.w(“MyTag”,”Hellow Android”);
Log.e(“MyTag”,”Hellow Android”);
متدهای بالا یک پارامتر به عنوان تگ و یک پارامتر به عنوان متن توضیحات دریافت میکنند.
معرفی قسمتهای مشخص شده تصویر
-
نوع Log
-
برچسب Log
-
توضیحات Log
برای ایجاد Log از نوع Assert از متد println درون کلاس Log استفاده میکنیم. این متد 3 ورودی دارد که اولین ورودی نوع Log، دومین ورودی نام برچسب و سومین ورودی متن توضیحات میباشد.
Log.println(Log.ASSERT,”MyTag”,”Test”);
در قسمت ابزارهای پنچره Logcat از گزینه Clear logcat میتوانید لاگ نمایش داده شده را پاک کنید.
-
اگر گزینه Scroll the end فعال باشد با اضافه شدن هر log اسکرول logcat به آخرین log میرود.
-
از گزینههای Up the stack trace و Down the stack trace میتوان بین stack traceها جابجا شد.
-
اگر گزینه Soft-Wrap فعال باشد، خطوط Logها شکسته میشود و اسکرول افقی از بین میرود.
-
گزینه Restart پنجره logcat را دوباره راهاندازی می کند و اگر log وجود داشته باشد دوباره نمایش میدهد.
-
از گزینه Screen Capture میتوان از صفحه ایمولاتور ScreenShot گرفت.
-
از گزینه Screen Record میتوان از صفحه ایمولاتور فیلم با پسوند webm گرفت.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.