نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید
همان طور که می دانید، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device)( کلید شماره 205 ) یا هنگام خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی ( کلید شماره 813 )، در قسمت LogCat برنامه eclipse ، می توانیم پیام هایی را بر اساس روند اجرای برنامه اندروید مشاهده کنیم که به خصوص در صورت وقوع خطا، با استفاده از آنها می توانیم منبع ایجادکننده خطا را تا حدودی شناسایی کنیم :
این پیام ها که در قسمت LogCat برنامه eclipse نمایش داده می شوند، قبلا توسط توسعه دهندگان اندروید، کتابخانه ها (libraries) و کلاس هایی (classes) که از آنها در برنامه اندروید خود استفاده کرده ایم، طراحی شده اند. اما شاید خود ما نیز بخواهیم که پیام هایی را به برنامه اندروید خود اضافه کنیم که بعد از شبیه سازی برنامه اندروید (توسط روش هایی که گفته شد)، بتوانیم بر اساس روند اجرای آن، پیام هایی را در قسمت LogCat از برنامه eclipse مشاهده نماییم. در ادامه، چگونگی افزودن پیام برای نمایش در قسمت LogCat را شرح خواهیم داد.
اگر پنجره LogCat در برنامه eclipse را نمی بینید (باز نیست)، در پنجره اصلی برنامه eclipse ، از منوی Window ، گزینه Show View و سپس گزینه Other را انتخاب کنید :
پنجره ای به شکل زیر نمایش داده می شود :
در این پنجره، ابتدا گزینه Android و سپس گزینه LogCat را انتخاب کرده و بر روی دکمه OK کلیک می کنیم :
بنابراین اگر قبلا پنجره LogCat نمایش داده نشده باشد، اکنون می توانید آن را در پنجره اصلی برنامه eclipse مشاهده کنید.
اکنون به سراغ Log نویسی می رویم. شاید سریعترین راه برای آشنایی با انواع Log ، اجرای کد زیر در برنامه اندروید باشد :
Log.w("myTAG", "warning");
Log.i("myTAG", "info");
Log.d("myTAG", "debug");
Log.v("myTAG", "verbose");
Log.wtf("myTAG", "What a Terrible Failure");
نوع Log ، با یک یا چند حرف، بعد از عبارت Log. نوشته شده است. یعنی ما در کد بالا، از 6 نوع Log استفاده کرده ایم که هر کدام، پیامی را در قسمت LogCat نمایش می دهد. تفاوت انواع log ها، در میزان اهمیت آنها برای شرح رویدادهای اتفاق افتاده در برنامه اندروید است. درون پرانتز، ابتدا یک نام تگ (Tag) را به صورت رشته (String) می نویسیم و سپس، پیام مورد نظرمان برای نمایش در قسمت LogCat را نوشته ایم. من عمدا در قسمت پیام، یک یا چند کلمه برای شرح نوع آن Log ها نوشته ام.
قبل از اینکه تفاوت بین آنها را شرح بدهم، ابتدا بگذارید ببینیم که از نظر ظاهری (در LogCat) به چه شکل هستند. بنابراین مثلا در یک Activity دلخواه از پروژه اندروید، آنها را در روش onCreate می نویسیم (یک مثال) :
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e("myTAG", "error");
Log.w("myTAG", "warning");
Log.i("myTAG", "info");
Log.d("myTAG", "debug");
Log.v("myTAG", "verbose");
Log.wtf("myTAG", "What a Terrible Failure");
}
}
خوب حالا می خواهیم برنامه اندروید (پروژه اندروید) را اجرا یا خطایابی کنیم ( کلید شماره 813 )، برای این منظور، فرض می کنیم که کلید شماره 813 را خوانده اید و می دانید که چگونه از گوشی واقعی برای اجرا یا خطایابی پروژه اندروید استفاده کنید (یا اصلا می توانید از virtual device برای اجرا یا خطایابی استفاده کنید).
اکنون در برنامه eclipse ، بر روی نام پروژه اندروید، کلیک سمت راست نموده و ابتدا گزینه Debug As (یا گزینه Run As برای اجرا کردن) و سپس گزینه Android Application را انتخاب می کنیم :
بنابراین در قسمت LogCat ، پیام های زیر نمایش داده می شود :
مشاهده می کنید که برای انواع Log ها، رنگ های مختلفی داریم (به جز Log.e و Log.wtf که هر دو به رنگ قرمز نمایش داده می شوند.) بنابراین شما می توانید با استفاده از انواع Log ، پیام های دلخواهی را در قسمت LogCat (همزمان با شبیه سازی برنامه اندروید) مشاهده کنید که تسلط کاملی بر روند اجرای برنامه اندروید را در اختیار شما قرار می دهد.
تفاوت بین انواع Log :
اکنون قصد داریم که تفاوت انواع Log را شرح بدهیم. فقط دقت داشته باشید که آنچه بیان می شود، یک قرارداد بین توسعه دهندگان برای استفاده از انواع Log می باشد (نه یک قانون که اگر آن را رعایت نکنید، برای برنامه اندروید شما مشکلی پیش بیاید).
Log.e :
هنگام بروز یک خطا (error)، این Log را به کار می بریم. منظورمان از خطا، عدم اجرا شدن دستوری مهم است، یعنی عملیاتی که مد نظرمان بوده است، اجرا نشده و یک خطا به وجود آمده است.
Log.e معمولا با try و catch به کار می رود ( کلید شماره 345 )، زیرا باید تشخیص بدهیم که آیا خطای مورد نظر ما رخ داده یا نه.
Log.w :
Log.w برای زمانی به کار می رود که بخواهیم در مورد به وجود آمدن یک وضعیت (نتیجه) هشدار (warning) بدهیم. اگرچه وضعیت به وجود آمده، اختلال مهمی در روند اجرای کدها ایجاد نمی کند، ولی باید به صورت یک نکته مهم به برنامه نویس تذکر داده شود تا در صورت نیاز، موارد مربوط به آن را در کدنویسی های بعدی در نظر بگیرد.
Log.i :
Log.i برای نمایش اطلاعات (information) مفیدی در زمینه اجرای بخش های مختلف برنامه اندروید به کار می رود. مثلا اگر کد شما در کل شامل 5 مرحله است، می توانید در انتهای اجرای هر مرحله، با Log.i ، پیامی مبنی بر اجرای موفقیت آمیز هر مرحله، در LogCat نمایش بدهید.
Log.d :
Log.d برای خطایابی (debugging) به کار می رود (اگر زمانی با خطا روبرو شویم، با پیام های نوشته شده توسط Log.d می توانیم علت ایجاد خطا را پیدا کنیم). مثلا با آن می توانید تمامی موارد مهم و کلیدی روند اجرای برنامه اندروید را در LogCat نمایش بدهید، مثل مقادیر به دست آمده برای متغیرها، نتایج اجرای زیرمرحله ها و ... .
Log.v :
Log.v برای نمایش تمامی نکات کوچک و بزرگ از اجرای برنامه اندروید، در قسمت LogCat ، به کار می رود.
Log.wtf :
Log.wtf مشابه Log.e می باشد، اما برای مواردی به کار می رود که یک خطای خیلی مهم رخ داده است که با وقوع آن خطا، باید کل روند اجرای برنامه اندروید متوقف شود (یک خطای مهم که کل برنامه اندروید را دچار مشکل می کند).
Log.wtf معمولا با try و catch به کار می رود ( کلید شماره 345 )، زیرا باید تشخیص بدهیم که آیا خطای مورد نظر ما رخ داده یا نه.
پاک کردن پیام های نمایش داده شده در قسمت LogCat :
اگر قصد دارید که پیام های قبلی نمایش داده شده در LogCat را پاک کنید (تا با پیام های جدید، اشتباه گرفته نشوند)، در گوشه بالا سمت راست پنجره LogCat ، گزینه ای به شکل زیر وجود دارد :
با اشاره بر روی آن، پیام های قبلی نمایش داده شده در LogCat ، پاک می شوند.
جستجو در متن پیام های نمایش داده شده در قسمت LogCat (یا جستجو در نام Tag ها) :
معمولا تعدادی زیادی پیام در قسمت LogCat نمایش داده می شود، بنابراین برای یافتن یک پیام خاص یا یک سری پیام های خاص، می توانیم کلمه های موجود در متن آنها را جستجو کنیم :
شما در هنگام جستجو، از عبارات قاعده مند (regular expressions) نیز می توانید استفاده کنید (تمامی متن هایی که در یک شکل کلی، صدق می کنند).
علاوه بر متن پیام ها، در نام Tag ها نیز می توان جستجو کرد. برای این منظور، در ابتدای عبارت جستجو، باید این عبارت را بنویسیم :
به عنوان مثال، نتیجه زیر را ببینید :
برای جستجو در PID نیز می توان به شکل مشابه عمل کرد و تنها باید عبارت زیر در ابتدای عبارت جستجو نوشته شود :
انتخاب حداقل درجه اهمیت برای نمایش پیام ها در قسمت LogCat :
همان طور که قبلا گفتیم، انواع Log از نظر درجه اهمیت با هم تفاوت دارند. بنابراین ما می توانیم تعیین کنیم که تنها پیام هایی در LogCat نمایش داده شوند که دارای یک حداقل درجه اهمیت باشند. این حداقل درجه اهمیت، در گوشه بالا سمت راست پنجره LogCat نمایش داده می شود (بنابراین ترتیب اهمیت انواع Log را از ترتیب این گزینه ها نیز می توانید متوجه شوید) :
مقدار پیش فرض آن برابر verbose (معادل Log.v) است که باعث می شود همه پیام ها نمایش داده شوند، اما مثلا اگر مقدار warn (معادل Log.w) را برای آن انتخاب کنیم، چون حداقل درجه اهمیت برابر Log.w در نظر گرفته شده، بنابراین تنها پیام هایی در LogCat نمایش داده می شوند که با Log.w یا Log.e یا Log.wtf ایجاد شده باشند :
ذخیره اطلاعات قسمت LogCat به صورت یک فایل متنی :
در گوشه بالا سمت راست پنجره LogCat ، گزینه ای به شکل زیر وجود دارد :
با استفاده از این گزینه، می توانید اطلاعات قسمت LogCat را به صورت یک فایل متنی ذخیره کنید. فقط نکته مهم این است که این گزینه، خط هایی را در فایل متنی ذخیره می کند که آنها را انتخاب کرده باشید (اگر هیچ خطی را انتخاب نکنید، تنها یک فایل متنی خالی ساخته می شود). مثلا من تنها 6 خط زیر را انتخاب می کنم :
بعد از ذخیره اطلاعات در فایل متنی، فایل را که باز می کنیم، دارای متن زیر می باشد :
01-09 15:50:45.271: W/myTAG(770): warning
01-09 15:50:45.271: I/myTAG(770): info
01-09 15:50:45.271: D/myTAG(770): debug
01-09 15:50:45.271: V/myTAG(770): verbose
01-09 15:50:45.271: A/myTAG(770): What a Terrible Failure
در پنجره LogCat ، اگر قصد دارید که همه خط ها را انتخاب کنید، ابتدا در فضای خالی پنجره LogCat ، با موس کلیک کنید، سپس کلیدهای Ctrl و A از کیبورد را فشار بدهید تا تمامی خط ها به حالت انتخاب شده در بیایند.
- فهرست مباحث
- 1 مقدمه برای شروع برنامه نویسی اندروید
- 2 نصب Software Development Kit یا به اختصار SDK
- 3 نصب Android SDK platform
- 4 نصب یک نسخه انتخابی از اندروید
- 5 شبیه سازی برنامه های ساخته شده برای اندروید، توسط یک دستگاه مجازی (Virtual Device)
- 6 نصب برنامه Eclipse
- 7 نصب Android Developer Tools یا به اختصار ADT
- 8 ساخت یک پروژه اندروید
- 9 اجرای پروژه اندروید در برنامه eclipse
- 10 ساخت یک فایل APK از پروژه اندروید، در برنامه eclipse
- 11 معرفی نرم افزار YouWave Android برای شبیه سازی سریعتر برنامه های اندروید
- 12 مفهوم acitivity در برنامه نویسی اندروید
- 13 آشنایی با کدهای مربوط به فایل java برای یک activity ، فایل xml متناظر با آن activity و همچنین فایل AndroidManifest.xml
- 14 علامت های مربوط به خطا و هشدار، در برنامه eclipse
- 15 ساخت یک برنامه اندروید تشکیل شده از دو activity
- 16 ساخت آسان یک activity جدید، در برنامه eclipse
- 17 تغییر نام یک activity یا یک فایل xml از پروژه اندروید، در برنامه eclipse و تذکر در مورد عدم نگرانی از تغییر نام این دو نوع فایل
- 18 تفاوت بین دو حالت LinearLayout و RelativeLayout برای نمایش فایل xml متناظر با activity ها
- 19 وارد کردن (import) یک پروژه اندروید، به درون برنامه eclipse
- 20 شبیه سازی برنامه های اندروید (اجرای فایل های apk) بر روی کامپیوتر، با نرم افزار BlueStacks App Player
- 21 استفاده از ProGuard برای سخت تر شدن مهندسی معکوس (reverse engineering) و استخراج کدهای فایل apk برنامه اندروید
- 22 اجرا (run) و یا خطایابی (debug) یک پروژه اندروید موجود در برنامه eclipse ، بر روی یک گوشی اندروید واقعی (از طریق اتصال گوشی به کامپیوتر، با کابل USB)
- 23 نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک دستگاه مجازی (virtual device) یا هنگام اجرا و خطایابی برنامه اندروید بر روی یک گوشی اندروید واقعی، در برنامه نویسی اندروید
- 24 آموزش نصب و استفاده از نرم افزار Genymotion ، برای شبیه سازی برنامه های اندروید بر روی کامپیوتر
- 25 تفاوت بین نسخه اندروید (Android version) و API level و ذکر شماره های متناظر بین آنها
- 26 نصب نسخه های مختلف API از اندروید، در برنامه نویسی اندروید
- 27 تمام نکاتی که قبل از انتشار برنامه اندروید خود در فروشگاه های اندروید، باید به آنها توجه کنیم
-
نکته : این فهرست مباحث، صرفا منتخبی از کلیدهای آموزشی این موضوع است (که خواندن متوالی آنها توصیه می شود) و برای دیدن کلیدهای آموزشی بیشتر از این موضوع، می توانید بر روی دسته بندی های ستون سمت راست کلیک نمایید.