srfarzad
یک شنبه 25 فروردین 1398, 15:03 عصر
خطایابی یا دیباگ در Android Studio یکی از بخشهای اساسی زندگی روزمره برنامه نویس اندروید است . در این مقاله ، ما از طریق نکات و ترفندهای اولیه در مورد دیباگ یک برنامه اندروید استفاده خواهیم کرد.شروع حالت دیباگ در اندرویدزمانی که میخواهید حالت دیباگ را شروع کنید ، ابتدا مطمئن شوید که دستگاه شما برای اشکال زدایی یا دیباگ توسط USB راه اندازی شدهاست ، و پروژه خود را در اندروید استودیو باز کنید ( AS ) و فقط روی آیکن debug کلیک کنید.https://shopdroid.ir/wp-content/uploads/2019/04/1.pngسپس دستگاه خود را در پنجره دستگاه انتخاب کنید ، و اندروید استودیو برنامه شما را در حالت دیباگ اجرا می کند. اندروید استودیو همچنین به طور خودکار ابزار debug را باز میکند . شما می توانید آن را بصورت دستی با کلیک کردن بر روی Debug! در پایین Android Studio اجرا کنید.https://shopdroid.ir/wp-content/uploads/2019/04/2.pngراه دیگر برای شروع debugging بدون نیاز به راهاندازی مجدد برنامه تان با کلیک روی “Attach debugger to Android process” است. https://shopdroid.ir/wp-content/uploads/2019/04/3.png شما همچنین باید دستگاه و برنامه app را انتخاب کنید ( فرآیند ) که میخواهید اشکالزدا را به آن متصل کنید. همچنین اگر میخواهید یک ویژگی خاص را رفع کنید این حالت مفید است ، و در این میان باید چند صفحه دیگر را نیز مرور کنید. از آنجا که بعضی از عملیات در حالت دیباگ از طریق برنامه بدون حالت دیباگ بسیار سریعتر اجرا می شوند، کارکرد آنها کم است. وقتی یک کلیک از چیزی که می خواهید با دیباگ کنار بگذارید، یک debug را به برنامه تان اضافه می کنید و شروع به اشکالزدایی می کنید.تاریخچه debug با استفاده از Logsراحتترین راه برای عیبیابی کد خود استفاده از Log است . این یک برنامه کاربردی است که به شما این امکان را میدهد که خروجیها را ارسال کنید , که بعدا بتوانید در Logcat در اندروید استودیو مشاهده کنید. لازم نیست برای انجام این کار , app را در حالت دیباگ اجرا کنید. می توانید به سادگی با استفاده از android.util.Log در یکی از روش های زیر استفاده کنید: Log.v(), Log.d(), Log.i(), Log.w(), Log.e() یا Log.wtf().همه آنها از دو پارامتر رشته استفاده می کنند: TAG و پیام شما. همچنین میتوانید آن را به عنوان پارامتر سوم در نظر بگیرید که برچسب , پیام و گزارش استثنا را ثبت میکند. با استفاده از روشهای مختلف (VERBOSE, DEBUG, INFO, WARNING, ERROR) – شما میتوانید بعدا ً log ها را فیلتر کنید و یا حتی تنظیمات رنگ متن و پسزمینه متن را برای هر سطح تنظیم کنید .این یک مثال ساده است :
1
2
3
4
5
6
7
8
9
10
private static final String TAG = “MyActivity”;
...
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view){
Log.d(TAG, “Click on button”);
}
}
Verbose هرگز نباید زمانی که شما روی برنامه خود آزمایش انجام میدهید تهیه شود ، اما شما میتوانید این کار را در طول فرآیند توسعه انجام دهید . log های debug در زمان اجرا نگهداشته میشوند ، در حالی که خطا ، هشدارها و log های اطلاعات همیشه در حال اجرا هستند . بنابراین ، اگر از هر یک از این log ها برای اهداف توسعه استفاده میکنید ، فراموش نکنید که آنها را حذف کنید به خصوص اگر اطلاعات حساس را ثبت کنید . در عین حال بهتر است این logs را در یک جمله شرطی خلاصه کنید .برای مثال:
1
2
3
if (BuildConfig.DEBUG) {
Log.d(“Sensitive message”);
}
یا BuildConfig را ایجاد کنید و آن را در یک فایل gradle قرار دهید .Logcatدر STRV ما از ابزار Logcat استفاده می کنیم که در صورت بیان جمله شرطی در میان چیزهای دیگر دستهبندی میشود . اینجا را بررسی کنید. در build.gradle ساخت پیکربندی LOGS را می سازیم، که می تواند در نوع ساخت دیباگ درست باشد و در نوع انتشار نادرست باشد. Logcat همیشه قبل از ثبت هر پیام خصوصیات LOGS را بررسی می کند. در این صورت نیازی نیست نگران این باشید که آن را در هر صورت بیان کنید .به سادگی این متد را فراخوانی کنید :
1
Logcat.d(“Your message here”);
همچنین میتوانید سایر پارامترها را در این کلاس تنظیم کنید . این پیغام میتواند شامل ” مکان کد ” باشد . این به این معنی است که نام متد ، خط کد و همچنین رشتهای که Logcat نامیده میشود را نشان میدهد . نکته جالب دیگر در مورد Logcat این است که شما میتوانید پیغامهای قالببندی شده را وارد کنید . پس به جای آن :
1
Logcat.d(“Message with index: ” + someInteger)
ما از آن استفاده میکنیم :
1
Logcat.d(“Message with index: %d”, someInteger)
این متد به شما اجازه می دهد تا پارامترهای زیادی را که می خواهید داشته باشید.breakpoint در اندروید استودیووقتی در نقطهای هستید که نمیتوانید با نگاه کردن به کد خود ، یک اشکال را درست کنید ، وقت آن است که از breakpoints استفاده کنید . Breakpoints به شما اجازه میدهد که اجرای برنامه خود را در یک خط ویژه از کد متوقف کنید.برای خواندن ادامه مقاله و دیباگ با breakpoint روی لینک زیر کلیک کنید.بهترین روش دیباگ در اندروید استودیو (https://shopdroid.ir/%D8%AF%DB%8C%D8%A8%D8%A7%DA%AFdebug-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A7%D8%B3%D8%AA%D9%88%D8%AF%DB%8C%D9%88/)
1
2
3
4
5
6
7
8
9
10
private static final String TAG = “MyActivity”;
...
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view){
Log.d(TAG, “Click on button”);
}
}
Verbose هرگز نباید زمانی که شما روی برنامه خود آزمایش انجام میدهید تهیه شود ، اما شما میتوانید این کار را در طول فرآیند توسعه انجام دهید . log های debug در زمان اجرا نگهداشته میشوند ، در حالی که خطا ، هشدارها و log های اطلاعات همیشه در حال اجرا هستند . بنابراین ، اگر از هر یک از این log ها برای اهداف توسعه استفاده میکنید ، فراموش نکنید که آنها را حذف کنید به خصوص اگر اطلاعات حساس را ثبت کنید . در عین حال بهتر است این logs را در یک جمله شرطی خلاصه کنید .برای مثال:
1
2
3
if (BuildConfig.DEBUG) {
Log.d(“Sensitive message”);
}
یا BuildConfig را ایجاد کنید و آن را در یک فایل gradle قرار دهید .Logcatدر STRV ما از ابزار Logcat استفاده می کنیم که در صورت بیان جمله شرطی در میان چیزهای دیگر دستهبندی میشود . اینجا را بررسی کنید. در build.gradle ساخت پیکربندی LOGS را می سازیم، که می تواند در نوع ساخت دیباگ درست باشد و در نوع انتشار نادرست باشد. Logcat همیشه قبل از ثبت هر پیام خصوصیات LOGS را بررسی می کند. در این صورت نیازی نیست نگران این باشید که آن را در هر صورت بیان کنید .به سادگی این متد را فراخوانی کنید :
1
Logcat.d(“Your message here”);
همچنین میتوانید سایر پارامترها را در این کلاس تنظیم کنید . این پیغام میتواند شامل ” مکان کد ” باشد . این به این معنی است که نام متد ، خط کد و همچنین رشتهای که Logcat نامیده میشود را نشان میدهد . نکته جالب دیگر در مورد Logcat این است که شما میتوانید پیغامهای قالببندی شده را وارد کنید . پس به جای آن :
1
Logcat.d(“Message with index: ” + someInteger)
ما از آن استفاده میکنیم :
1
Logcat.d(“Message with index: %d”, someInteger)
این متد به شما اجازه می دهد تا پارامترهای زیادی را که می خواهید داشته باشید.breakpoint در اندروید استودیووقتی در نقطهای هستید که نمیتوانید با نگاه کردن به کد خود ، یک اشکال را درست کنید ، وقت آن است که از breakpoints استفاده کنید . Breakpoints به شما اجازه میدهد که اجرای برنامه خود را در یک خط ویژه از کد متوقف کنید.برای خواندن ادامه مقاله و دیباگ با breakpoint روی لینک زیر کلیک کنید.بهترین روش دیباگ در اندروید استودیو (https://shopdroid.ir/%D8%AF%DB%8C%D8%A8%D8%A7%DA%AFdebug-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A7%D8%B3%D8%AA%D9%88%D8%AF%DB%8C%D9%88/)