آموزش برنامه نویسی اندروید - قسمت ۱۷: نحوه ساخت دستگاه اندرویدی مجازی برای تست اپلیکیشن
شنبه 28 دی 1392 10:59 AM
تست کردن اپلیکیشن در پروسه طراحی اپلیکیشن راهی است که از آن طریق می توان از اشتباهات فاحش در برنامه نویسی اندروید جلوگیری به عمل آورد. به عبارت دیگر پس از هر بار اضافه کردن کدی به اپلیکیشن خود نیاز است که اپلیکیشن را یک بار تست کرده تا اطمینان حاصل کنیم که اپلیکیشن Crash نکرده و به خوبی کار می کند.
برای آنکه بتوانیم خروجی برنامه خود را ببینیم، در محیط برنامه نویسی اکلیپس دو راه کار وجود دارد که یکی ساخت Emulator است و دیگری وصل کردن یک تلفن همراه یا تبلت به کامپیوتر.
به طور کلی یکی از ابزارهایی که برای توسعه اپلیکیشن اندروید در اختیار اکلیپس قرار می گیرد ابزاری تحت عنوان Emulator است. در زبان انگلیسی واژه Emulate به معنی "تقلید کردن" است و بالتبع واژه Emulator به معنی "مقلد" یا "تقلید کننده" خواهد بود. کاری که این ابزار انجام می دهد این است که از طریق آن می توان یک دستگاه تلفن همراه یا تبلت مجازی در کامپیوتر خود ایجاد کرده که عملکردی شبیه به یک تلفن همراه یا تبلت واقعی خواهد داشت.
پیش از ادامه توضیحات پیرامون این دستگاه مجازی، نیاز است تا با این مسئله آشنا شویم که تفاوت های مابین Emulator و Simulator چیست و چرا در توسعه اندروید از Emulator استفاده می شود(در زبان انگلیسی فعل Simulate به معنی "شبیه سازی کردن" است و Simulator به معنی "شبیه ساز" است).
به طور کلی می توان گفت که تفاوت عمده میان این دو، رویکردی است که هر کدام از این ابزارهای اتخاذ می کنند. به عبارت دیگر ابزار Emulator روی شبیه سازی عملکرد یک سیستم تمرکز می کند بدون توجه به این مسئله که عملکرد داخلی این سیستم مد نظر چگونه است اما Simulator ها روی شبیه سازی نحوۀ عملکرد اجزای داخلی یک سیستم تمرکز دارند. در واقع زمانیکه بخواهیم بفهمیم که یک سیستم "چه" کاری انجام می دهد می بایست از ابزار Emulator استفاده کنیم و زمانیکه می خواهیم بفهمیم که یک سیستم "چگونه" کاری را انجام می دهد می بایست از Simulator استفاده کنیم.
حال از آنجا که در توسعه اپلیکیشن اندروید صرفاً نیاز داریم تا به ابزاری دسترسی داشته باشیم که عملکردی شبیه به یک تلفن همراه واقعی یا تبلت واقعی داشته باشد و نحوه عملکرد یک اپلیکیشن روی یک دستگاه اندرویدی واقعی را برای ما شبیه سازی کند و به هیچ وجه نیازی نیست که بدانیم این دستگاه مجازی چگونه کار می کند پس در توسعه اندروید از Emulator استفاده می کنیم.
از سوی دیگر از قرار بود در سایت نردبان آموزش خلبانی بدهیم نیاز داشتیم تا از Simulator استفاده کنیم زیرا همانطور که می دانیم این ابزار مثل یک هواپیما نمی تواند پرواز کند و روی زمین قرار دارد ولی در عین حال می تواند به طول مثال نحوۀ عملکرد موتورهای جت در شرایط نامساعد جوی را به دانشجوی خلبانی نشان دهد. پس به طور کلی می توان گفت که یک Simulator تا حدودی برای ما انسان ها شبیه به دستگاه اصلی است اما این در حالی است که این ابزار نخواهد توانست در دنیای واقعی جایگزین دستگاه اصلی(مثلاً هواپیما) شود.
در این قسمت از آموزش قصد داریم تا در محیط برنامه نویسی اکلیپس یک دستگاه مجازی ساخته تا از آن طریق بتوانیم پروژه ای که در جلسه هشتم تحت عنوان My First Android Project ساختیم را تست کنیم. برای این منظور نرم افزار اکلیپس را باز کرده و مطابق تصویر زیر عمل می کنیم:
همانطور که در تصویر فوق مشاهده می شود، از منوی اصلی نرم افزار روی گزینه Window کلیک کرده سپس همانطور که با فلش قرمز رنگ نشان داده شده است روی گزینه AVD Manager کلیک می کنیم. در واقع این گزینه به منزله بخشی از ابزارهای توسعه اندروید است که روی محیط برنامه نویسی اکلیپس تنظیم شده است(کلمه اختصاری AVD مخفف واژگان Android Virtual Device به معنی "دستگاه مجازی اندروید" است).
پس از کلیک کردن روی این گزینه پنجره زیر نمایان خواهد شد:
در حقیقت این پنجره لیستی از دستگاه های مجازی اندروید را برای ما نشان خواهد داد ولی از آنجا که این اولین باری است که می خواهیم دست به طراحی یک اپلیکیشن اندروید بزنیم، هیچ دستگاه مجازیی در این لیست دیده نمی شود. برای آنکه یک دستگاه مجازی جدید بسازیم، همانطور که در تصویر فوق با یک بیضی قرمز رنگ مشخص شده است، روی گزینه New کلیک کرده و پنجره جدیدی به شکل زیر باز خواهد شد:
در بخش Name می بایست نامی برای این دستگاه مجازی انتخاب کنیم که می خواهیم این دستگاه مجازی به آن نام شناخته شود. اگر چه که این نام کاملاً دلخواه است، اما در انتخاب نام می بایست دقت کرده که گویای خصوصیات دستگاه مجازی ما باشد. در واقع از آنجا که ما در حین ساخت پروژه، اپلیکیشن خود را برای سیستم عامل اندروید 2.1 هدف قرار دادیم، می توانیم نام AVD for 2.1 Version را انتخاب کنیم. سپس در بخش Target به معنی "هدف" می بایست مشخص کنیم که قصد داریم این دستگاه مجازی تلفن همراهی با کدام نسخه از سیستم عامل اندروید را شبیه سازی کند. اگر خاطرمان باشد در آموزش هفتم که به آماده سازی محیط برنامه نویسی اکلیپس برای توسعه اندروید پرداختیم، نسخه ای از اکلیپس که دانلود کردیم فقط تعدادی از SDK های توسعه اندروید را در بر می گرفت. به عبارت دیگر ما فقط می توانیم با این نسخه از اکلیپس برای نسخه های 2.1 و 3.0 و 4.0.3 دست به توسعه اپلیکیشن اندروید بزنیم. شاید علت اینکه کلیۀ SDK های نسخه های دیگر اندروید گنجانده نشده اند این است که تفاوت چندانی مثلاً مابین نسخه 2.1 و 2.2 نمی باشد از این اینرو فقط نسخه 2.1 آورده شده است اما از آنجا که مابین نسخه 2.1 و نسخه 3.0 تفاوت های چشمگیری دیده می شود، نسخه 3.0 هم گنجانده شده است. در مورد نسخه 4.0.3 هم همین شرایط صدق می کند.
اکنون که توضیحات تکمیلی پیرامون نسخه های نصب شده در محیط برنامه نویسی اکلیپس داده شد، به راحتی می توانیم به گزینه Target رجوع کرده و همانطور که در تصویر فوق مشاهده می شود نسخه سیستم عامل اندروید 2.1 را انتخاب کنیم.
از آنجا که Emulator بسیاری از ویژگی های یک موبایل را می تواند شبیه سازی کند، در پنجره ساخت این ابزار گزینه ای تحت عنوان SD Card نیز گنجانده شده است. در حقیقت با اختصاص دادن عددی به این گزینه مقدار حافظۀ این دستگاه مجازی را مشخص خواهیم کرد. در این آموزش مقدار 1000 را تایپ می کنیم به این معنی که این دستگاه مجازی یک گیگابایت حافظه خواهد داشت(ممکن است روی برخی از سیستم ها با تایپ کردن عدد 1000 در زمان زدن دکمه Create AVD در پایان کار نرم افزار هنگ کند. چنانچه چنین اتفاقی روی داد، اکلیپس را بسته مجدد آن را اجرا نموده و این بار عدد به مراتب کوچکتری همچون 100 را برای SD Card در نظر بگیرید).
گزینه بعدی Snapshot است که از اهمیت بسزایی در آماده سازی دستگاه مجازی اندروید دارد. معنی لغوی این واژه "عکس فوری" است. در دستگاه مجازی این گزینه حاکی از آن است که وقتی Emulator را ببندیم و بخواهیم مجدد آن را اجرا کنیم چنانچه گزینه Enabled به معنی "فعال" مربوط به Snapshot تیک نخورده باشد تقریبا زمان قابل توجهی به طول خواهد انجامید تا Emulator دوباره بالا بیاد اما چنانچه این گزینه تیک خورده باشد ظاهراً اطلاعاتی از Emulator در حافظه ذخیره می شود که پس از بستن آن و اجرای مجدد دیگر نیازی نخواهد داشت تا از ابتدا Emulator را اجرا کند. این گزینه را حتماً تیک می زنیم.
تا این مرحله از کار می بایست همانند تصویر زیر پنجره مربوط به ساخت Emulator تکمیل شده باشد:
همانطور که تصویر فوق مشاهده می شود بخش Hardware به معنی "سخت افزار" با یک بیضی قرمز رنگ نشان داده شده است. در واقع این دو گزینه که به صورت خودکار وارد شده اند نشانگر تنظیمات مربوط به نوع سخت افزار ابزار Emulator می باشند. چنانچه تمایل داشته باشیم خصوصیات سخت افزاری دیگر به ماشین مجازی خود بیافزاییم، اینکار را می توان با کلیک کردن بر روی دکمه New که با فلش قرمز رنگ مشخص شده است انجام دهیم.
در این مرحله ساخت ماشین مجازی به پایان رسیده است اما همانطور که در تصویر فوق مشاهده می شود در پایین پنجره یک علامت ضربدر با دایره ای قرمز رنگ مشخص شده است. در حقیقت این علامت به ما اخطار می دهد که در نام انتخابی برای ماشین مجازی خود از علامت های غیر مجاز استفاده کرده ایم. به عبارت دیگر ما مجاز نیستیم که از Space در نام Emulator استفاده کنیم. برای رفع این مشکل، کلیۀ فاصله ها در نام انتخابی را با Dash جایگزین می کنیم:
همانطور که در تصویر فوق مشاهده می شود، نام ماشین مجازی اصلاح شده و به نام AVD-2.1-Version تغییر یافته و اکلیپس هم دیگر ایرادی از ما نمی گیرد. حال با کلیک روی دکمه Create AVD می توانیم ماشین مجازی را بسازیم:
همانطور که در تصویر فوق مشاهده می شود تا اینجای کار توانسته ایم یک ماشین مجازی اندروید تحت عنوان AVD-2.1-Version بسازیم. در تصویر زیر با دایره ای قرمز رنگ دو دکمه Edit و Delete به ترتیب به معانی "ویرایش کردن" و "حذف کردن" مشخص شده اند:
در واقع با انتخاب نام ماشین مجازی ساخته شده و کلیک کردن روی دکمه Edit می توان تنظیمات اولیه که در مراحل بالا اعمال کردیم را تغییر دهیم و یا با کیک کردن روی دکمه Delete می توان این ماشین مجازی را حذف نماییم(لازم به ذکر است در صورت حذف یک ماشین مجازی دیگر به هیچ وجه امکان دسترسی به آن وجود نخواهد داشت).
مدیر تالار های: