نوشتن پیام هایی برای نمایش در قسمت LogCat در برنامه Eclipse ، هنگام شبیه سازی برنامه اندروید توسط یک
یک شنبه 11 مرداد 1394 4:45 PM
در قسمت LogCat برنامه eclipse ، می توانیم پیام هایی را بر اساس روند اجرای برنامه اندروید مشاهده کنیم که به خصوص در صورت وقوع خطا، با استفاده از آنها می توانیم منبع ایجادکننده خطا را تا حدودی شناسایی کنیم :
این پیام ها که در قسمت LogCat برنامه eclipse نمایش داده می شوند، قبلا توسط توسعه دهندگان اندروید، کتابخانه ها (libraries) و کلاس هایی (classes) که از آنها در برنامه اندروید خود استفاده کرده ایم، طراحی شده اند. اما شاید خود ما نیز بخواهیم که پیام هایی را به برنامه اندروید خود اضافه کنیم که بعد از شبیه سازی برنامه اندروید (توسط روش هایی که گفته شد)، بتوانیم بر اساس روند اجرای آن، پیام هایی را در قسمت LogCat از برنامه eclipse مشاهده نماییم. در ادامه، چگونگی افزودن پیام برای نمایش در قسمت LogCat را شرح خواهیم داد.
اگر پنجره LogCat در برنامه eclipse را نمی بینید (باز نیست)، در پنجره اصلی برنامه eclipse ، از منوی Window ، گزینه Show View و سپس گزینه Other را انتخاب کنید :
پنجره ای به شکل زیر نمایش داده می شود :
در این پنجره، ابتدا گزینه Android و سپس گزینه LogCat را انتخاب کرده و بر روی دکمه OK کلیک می کنیم :
بنابراین اگر قبلا پنجره LogCat نمایش داده نشده باشد، اکنون می توانید آن را در پنجره اصلی برنامه eclipse مشاهده کنید.
اکنون به سراغ Log نویسی می رویم. شاید سریعترین راه برای آشنایی با انواع Log ، اجرای کد زیر در برنامه اندروید باشد :
نوع Log ، با یک یا چند حرف، بعد از عبارت Log. نوشته شده است. یعنی ما در کد بالا، از 6 نوع Log استفاده کرده ایم که هر کدام، پیامی را در قسمت LogCat نمایش می دهد. تفاوت انواع log ها، در میزان اهمیت آنها برای شرح رویدادهای اتفاق افتاده در برنامه اندروید است. درون پرانتز، ابتدا یک نام تگ (Tag) را به صورت رشته (String) می نویسیم و سپس، پیام مورد نظرمان برای نمایش در قسمت LogCat را نوشته ایم. من عمدا در قسمت پیام، یک یا چند کلمه برای شرح نوع آن Log ها نوشته ام.
قبل از اینکه تفاوت بین آنها را شرح بدهم، ابتدا بگذارید ببینیم که از نظر ظاهری (در LogCat) به چه شکل هستند. بنابراین مثلا در یک Activity دلخواه از پروژه اندروید، آنها را در روش onCreate می نویسیم (یک مثال) :
خوب حالا می خواهیم برنامه اندروید (پروژه اندروید) را اجرا یا خطایابی کنیم ( کلید شماره 813 )، برای این منظور، فرض می کنیم که کلید شماره 813 را خوانده اید و می دانید که چگونه از گوشی واقعی برای اجرا یا خطایابی پروژه اندروید استفاده کنید (یا اصلا می توانید از virtual device برای اجرا یا خطایابی استفاده کنید).
اکنون در برنامه eclipse ، بر روی نام پروژه اندروید، کلیک سمت راست نموده و ابتدا گزینه Debug As (یا گزینه Run As برای اجرا کردن) و سپس گزینه Android Application را انتخاب می کنیم :
بنابراین در قسمت LogCat ، پیام های زیر نمایش داده می شود :
مشاهده می کنید که برای انواع Log ها، رنگ های مختلفی داریم (به جز Log.e و Log.wtf که هر دو به رنگ قرمز نمایش داده می شوند.) بنابراین شما می توانید با استفاده از انواع Log ، پیام های دلخواهی را در قسمت LogCat (همزمان با شبیه سازی برنامه اندروید) مشاهده کنید که تسلط کاملی بر روند اجرای برنامه اندروید را در اختیار شما قرار می دهد.
اکنون قصد داریم که تفاوت انواع 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 نمایش داده می شود، بنابراین برای یافتن یک پیام خاص یا یک سری پیام های خاص، می توانیم کلمه های موجود در متن آنها را جستجو کنیم :
شما در هنگام جستجو، از عبارات قاعده مند (regular expressions) نیز می توانید استفاده کنید (تمامی متن هایی که در یک شکل کلی، صدق می کنند).
علاوه بر متن پیام ها، در نام Tag ها نیز می توان جستجو کرد. برای این منظور، در ابتدای عبارت جستجو، باید این عبارت را بنویسیم :
به عنوان مثال، نتیجه زیر را ببینید :
برای جستجو در PID نیز می توان به شکل مشابه عمل کرد و تنها باید عبارت زیر در ابتدای عبارت جستجو نوشته شود :
همان طور که قبلا گفتیم، انواع Log از نظر درجه اهمیت با هم تفاوت دارند. بنابراین ما می توانیم تعیین کنیم که تنها پیام هایی در LogCat نمایش داده شوند که دارای یک حداقل درجه اهمیت باشند. این حداقل درجه اهمیت، در گوشه بالا سمت راست پنجره LogCat نمایش داده می شود (بنابراین ترتیب اهمیت انواع Log را از ترتیب این گزینه ها نیز می توانید متوجه شوید) :
مقدار پیش فرض آن برابر verbose (معادل Log.v) است که باعث می شود همه پیام ها نمایش داده شوند، اما مثلا اگر مقدار warn (معادل Log.w) را برای آن انتخاب کنیم، چون حداقل درجه اهمیت برابر Log.w در نظر گرفته شده، بنابراین تنها پیام هایی در LogCat نمایش داده می شوند که با Log.w یا Log.e یا Log.wtf ایجاد شده باشند :
در گوشه بالا سمت راست پنجره LogCat ، گزینه ای به شکل زیر وجود دارد :
با استفاده از این گزینه، می توانید اطلاعات قسمت LogCat را به صورت یک فایل متنی ذخیره کنید. فقط نکته مهم این است که این گزینه، خط هایی را در فایل متنی ذخیره می کند که آنها را انتخاب کرده باشید (اگر هیچ خطی را انتخاب نکنید، تنها یک فایل متنی خالی ساخته می شود). مثلا من تنها 6 خط زیر را انتخاب می کنم :
بعد از ذخیره اطلاعات در فایل متنی، فایل را که باز می کنیم، دارای متن زیر می باشد :
در پنجره LogCat ، اگر قصد دارید که همه خط ها را انتخاب کنید، ابتدا در فضای خالی پنجره LogCat ، با موس کلیک کنید، سپس کلیدهای Ctrl و A از کیبورد را فشار بدهید تا تمامی خط ها به حالت انتخاب شده در بیایند.
مدیر تالار های: