سفر خاک

یادداشت های غلامحسین توسلی

سفر خاک

یادداشت های غلامحسین توسلی

جز غبار از سفر خاک چه حاصل کردیم؟ / سفر آن بود که ما در قدم دل کردیم

Genymotion بهترین شبیه ساز اندروید

جمعه, ۲۷ تیر ۱۳۹۳، ۰۸:۰۹ ب.ظ

نتیجه رو همین اول به گم؛ بعد از مدت‌ها بررسی به این نتیجه رسیدم که در حال حاضر Genymotion از هر نظر بهترین شبیه‌ساز اندروییده. چرا؟ خوب حالا بررسی می‌کنیم. در این پست سه شبیه‌ساز Genymotion، Bluestacks و شبیه‌ساز اصلی اندروید (AVD) رو به طور نه‌چندان رسمی مورد بررسی قرار می‌دم.
به نظر من مهم‌ترین مسئله در مورد شبیه‌سازهای اندروید سرعت اجرا شبیه‌ساز هست. شبیه‌ساز اصلی خود اندروید که همراه SDK عرضه میشه افتضاح‌ترین از این جهته. البته هزینه این کندی بر میگرده به این‌که این شبیه‌ساز سخت‌افزار گوشی‌های همراه (ARM) رو به‌طور کامل شبیه‌سازی کرده و بر روی چنین سخت‌افزاری اندروید رو اجرا می کنه. درحالی‌که Genymotion و Bluestacks با حذف چنین هزینه ای به‌سرعت بسیار بالاتری دست پیدا کردند. در حقیقت دو پروژه اخیر اندروید رو بر روی سخت‌افزار ماشین میزبان (یعنی همون CPU کامپیوتری که شبیه‌ساز روش اجرا میشه) اجرا می کنن.

یه پروژه هست به نام Android X86 که به نظرم هر دو شبیه‌ساز یادشده از این پروژه برای اندروید استفاده می‌کنند. چرا؟ این مسئله رو زمانی که با OpenCV روی اندروید کار می‌کردم متوجه شدم. کدهای کتابخانه OpenCV رو با زبان C نوشتن و برای همین باید برای پردازنده‌های مختلف از نو کامپایل شه. این OpenCV یه دونه Manager داره که ایشاالله در یه فرصت مناسب راجع بهش صحبت می‌کنیم. از این Manager برای پردازنده‌های مختلف نسخه‌های گوناگونی وجود داره. OpenCV Manager برای پردازنده‌های ARM روی Bluestacks و Genymotion اجرا نمیشه؛ در مقابل نسخه X86 این نرم‌افزار بر روی دو شبیه‌ساز یادشده نصب و اجرا میشه.
Android X86 رو میتونید دانلود کنید (iso) و بر روی VMWare و یا Virtual Box نصب کنید. هرچند زیاد تجربه جالبی نبود (یه مقدار کند بود!)؛ همچنان Bluestacks و Genymotion سریع‌تر و نزدیک‌تر به اندروید تلفن‌های هوشمند هستند. البته یه ویژگی هست که Android X86 داره و هیچ شبیه‌ساز دیگه ای نداره و اون امکان استفاده از Bluetooth در شبیه‌سازه. تنها این شبیه‌ساز به شما امکان استفاده از Bluetooth کامپیوتر رو می‌ده
.

برخی امکانات ارائه شده توسط Genymotion پولی است. در طرح مجانی امکانات زیر در اختیار است:
  • Android 2.3, 4.1, 4.2 , 4.3
  • Android 4.4
  • امکان استفاده از GPS!
  • امکان استفاده از دوربین
  • امکان تنظیم اندازه و وضعیت باتری دستگاه!

امکانات طرح پولی این شبیه‌ساز عبارتند از:

  • امکان تکثیر (Clone) شبیه‌ساز و بازگردانی به وضعیت کارخانه (Reset Factory)؛ البته مورد امکان تکثیر استثناء است. چون تو طرح مجانی هم میشه با یک ترفند شبیه‌ساز رو به راحتی تکثیر کرد.
  • تعیین IMEI و MEID دلخواه برای دستگاه
  • امکان ضبط ویدیو از شبیه‌ساز
  • امکان استفاده از شتاب سنج در دستگاه

از مقایسه Bluestacks و Genymotion به این نتیجه رسیدم که Genymotion به مراتب سریعتر از Bluestacks اجرا میشه و به گوشی هدف نزدیکتره. پس از اجرای Bluestacks متوجه میشید که این شبیه ساز با یک Launcher پیش‌فرض (بیخود!) اجرا میشه و برای راحتی کار حتما باید یک Launcher درست و حسابی‌تر دیگه روش نصب کنید. در صورتی که خروجی Genymotion با تقریب نسبتا خوبی عین گوشی هدف انتخابی شماست. اصلاً یکی از ایرادات اصلی من به Bluestacks همین بسته نگه داشتن شبیه سازه. شبیه هیچ دستگاهی نیست. شبیه یه تبلته با اندازه همیشه ثابت!
از دیگر مشکلات Bluestacks تک‌نسخه‌ای بودن Android شبیه‌سازی شده است در حالی که شما با استفاده از Genymotion می‌تونید اندروید با نسخه‌های مختلف برای گوشی‌های با مدل‌های مختلف (Nexus, HTC, LG, Motorola, Samsung, Sony Xperia) و اندازه‌های مختلف رو در اختیار داشته باشید. روش کار Genymotion به این صورته که خودش Android رو روی ماشین مجازی Virtual Box نصب و پیکربندی و بر اساس مدل سفارشی کرده و فایل‌های ماشین مجازی رو در اختیارتون قرار میده. در حقیقت Genymotion یک shell برای Virtiual Box نوشته. بنابراین شما برای اجرای شبیه‌ساز نیاز به نصب Virtual Box بر روی سیستم خود دارید. یکی از مهمترین مزیت‌های Genymotion همین (نسبتاً) باز بودن سیستمه. بر عکس Bluestacks که سیستم رو بسته نگه داشته تو Genymotion شما به خیلی از تنظیمات سخت افزار سیستم دسترسی دارید.



ترفندی رو که راجع بهش صحبت کردم رو از همین طریق می تونید اجرا کنید. خود رابط کاربری مجانی Genymotion به شما اجازه تکثیر یک VM رو نمیده؛ شما کافیه بیاید تو Virtual Box و از این طریق ماشین مجازی خودتون رو تکثیر کنید. (راهنما) برای این که بتونید به طور مستقل با هر دو ماشین مجازی کار کنید کافی آدرس MAC کارت‌های شبکه ماشین‌ها رو تغییر بدید! به همین سادگی! تازه وقتی رو Virtual Box ماشین مجازی خودتون رو تکثیر می‌کنید از طریق واسط کاربری Genymotion شناسایی شده و می‌تونید از این طریق با اون کار کنید. یه مزیت دیگه از این روش اینه که شما می تونید Genymotion رو روی هر سیستم عاملی در اختیار داشته باشید.

روش استفاده از Genymotion

ابتدا باید تو وب سایت Genymotion ثبت نام کنید. بعد می تونید Genymotion رو دانلود کنید. دو نسخه با و بدون Virtual Box وجود داره. (در هر صورت Virtual Box باید روی سیستم نصب بشه) بعد از نصب می بایست VM مورد نظر خودتون رو از طریق واسط کاربری دانلود کنید. یکی دیگه از ایرادات (به نظرم اجتناب‌ناپذیر) حجم بالای دانلود VM‌ها است. برای مثال برای در اختیار داشتن Samsung Galaxy S2 - Android 4.1.1 مجبور شدم حدود 180 مگابایت رو دانلود کنم. ولی این یک باره؛ می تونید از طریق Virtual Box اون رو تکثیر کنید و در اختیار سایر دوستانتون قرار بدید! ماشین مجازی رو هم از طریق Virtual Box می‌تونید اجرا کنید و هم از طریق رابط کاربری Genymotion، که به نظرم این دومی بهتره چون از این طریق امکانات مختلف دستگاه رو نظیر دوربین، GPS و ... در اختیار خواهید داشت. Genymotion یه سری پلاگین برای Eclipse و Intellij IDEA هم در اختیارتون هم قرار میده.


پیشنهاد می‌کنم امتحانش کنید!

نظرات (۱۷)

منم قبلا امتحانش کردم، خود برنامه Genymotionاز blue s سنگینتره
اما خب سرعت اجرا و امکاناتش به مراتب بهتره، شاید دلیل سنگینیش این باشه که باید همزمان یه برنامه شبیه سازم باید نصب کنیم بخاطر اون باشه.
درضمن اون حجمی هم که میگید باید دانلود کنیم حتما باید از پروکسی یا vpn استفاده کنیم یا فیلتره یا تحریمم
مرسی!
پاسخ:
به نظرم اصلا سنگین نیست رو سیستم من خیلی بهتر از Bluestacks ران میشه؛ از طرف دیگه من از دانشگاه بدون استفاده از پراکسی یا VPN به راحتی دانلودش کردم. احتمالا مشکل از جای دیگه ای باشه که دانلود نمیشه؛ این که شما گفتید من رو به تردید انداخت؛ با اینترنت مخابرات هم امتحان کردم بدون مشکل دانلود شد. هم Genymotion و هم فایل ماشین مجازی.
  • مهدی نامی دمیرچی
  • منم رو قبلانا امتحان کرده بودم اما روی vmware player سریع تر از بقیه هست برای من، البته virtulize برای cpu و accelerate 3d graphic فعال. هر چند تو آخرین نسخه vbox هم سرعت به نسبت بهتر شده.
    سلام ببخشید میخواستم بپرسم ایا میشه اون دانلود دومی رو که شما میگین مثلا 180 مگاباته رو جای دیگه ای دانلود کرد و بعد اونو تو کامپیوتر جاییی که میخواد کپی کرد؟؟

    خیلی ممنون از راهنماییتون
    پاسخ:
    بله امکانش هست.

    کافیه Genymotion رو همون جایی که می خواید دانلود کنید نصب و بزارید تا آخر کار دانلود رو انجام بده و VM رو نصب کنه. بعد می تونید برید تو مسیر

    C:\Users\your user name\AppData\Local\Genymobile\Genymotion\ova

    و فایل OVA دانلود شده رو بردارید. همین فایل رو رو سیستم خودتون تو همون مسیر بالا کپی کنید و مشابه حالت قبل کلیه مراحل روی طی کنید. چون فایل OVA تو مسیر وجود داره Genymotion فقط اون رو نصب میکنه و دیگه نیازی به دانلود ندارید. (البته همچنان نیاز به اینترنت دارید تا لیست VM ها رو بتونه بارگزاری کنه) این فایل رو می تونید هر جا که خواستید ببرید.

    خیلی تشکر میکنم از راهنماییتون
  • مجید رحیمی
  • از بس اون شبیه ساز خودش کنده که اصلا از برنامه نویسی اندروید پشیمونت می کنه.

    ممنون از این مطلب مفید! 

    سلام
    من وقتی یکی از فایل هارو از خود برنامه دانلود میکنم بعد از این که دانلود میشه ارور virtual device deployment failed رو میده
    راه حل چیه؟
    پاسخ:
    البته باید سیستم رو ببینم؛ یه بار این اتفاق واسه من هم افتاد. من Virtual Box رو جدا گانه نصب کردم و بعد Genymotion رو؛ اون نسخه از Virtual Box رو پشتیبانی نمی کرد و همین خطا رو نشون میداد. توصیه می کنم نسخه ای از Genymotion رو دانلود کنید که همراهش Virtual Box هم نصب بشه. اگه جواب نداد Genymotion رو با دسترسی ادمین اجرا کنید؛ ممکنه حل بشه!


    ممنون
    سلام.ممنون از اطلاعات مفیدی که در اختیار عموم قرار دادین.
    میشه بفرمایین آخرین OVA ها رو از چه ادرسی دانلود کنم.
    ممنون و سپاسگزار
    پاسخ:
    در کامنت آقای بابک توضیح داده ام که چطور می تونید یکبار OVA رو دانلود کنید. علی الحساب تنها راه استفاده از رابط کاربری genymotion است. البته در نظر دارم آخرین نسخه از OVA ها رو جایی آپلود کنم و در اختیار عموم قرار بدم که متاسفانه تا به امروز این فرصت بدست نیومد.
    سلام
    ممنون مطلب پر بار و خوبی بود
    - Genymotion رو میشه روی VMWare نصب و استفاده کرد؟
    من Android 4.4.2RC X86 روی VMware نصب کرده ام هر چند سرعت خوبی داره ولی بعضی از نرم افزار یا بازی مثل کلش رو اجرا نمیکنه.
    - همچنین Andy هم رو تست کردم پشتیبانی از نرم افزار و بازیش خوبه ولی خیلی به CPU فشار میاره،Genymotion هم اینطوره؟
    پاسخ:
    ممنون از لطفتون
    برای کار با genymotion بهتره نسخه ای رو نصب بکنید که Virtual Box رو به همراه داره و برای استفاده از genymotion بهتره از رابط کاربری خود نرم افزار استفاده کنید؛ چون امکاناتی نظیر تعیین محل با استفاده از GPS مجازی، باتری و ... تنها از این طریق در دسترس قرار دارد. (هر چند میشه از طریق Virtual Box هم می تونید اون رو اجرا کنید)

    اساساً genymotion فرقی با اندروید x86 نمیکنه تنها نسخه سفارشی شده از آن است. همانطور که بیان شد در این حالت سخت افزار ARM شبیه سازی نمی شه و شبیه ساز بهتر و سریعتر کار خواهد کرد. دلیل اجرا نشدن برخی از نرم افزار ها هم بیشتر بر می گرده به این که نرم افزارهای یاد شده تنها برای معماری ARM کامپایل شده اند. البته مورد Clash رو اختصاصا بررسی نکرده ام و تا جایی که اطلاع دارم شما می تونید این برنامه رو روی Bluestacks (با این که اندروید این شبیه ساز نیز از نوع x86 است) اجرا کنید.
    سلام
    وقتی می رم روی add کلیک می کنم به جای connect میاد sing in چه کار کنم ؟؟؟؟؟؟؟
    tnx
    پاسخ:
    شما باید پیش از این تو وب سایت Genymotion عضو می شدید. برای دانلود ماشین های مجازی اندروید باید Sign in کنید.
    سلام
    بعداز نصب genymotion که میخوایم APIهایی رو دانلود کنیم یکی از این دو خطای زیر اتفاق میفته:
     unable to create virtual device :  Server returned HTTP status code 0
    یا 
    unable to create virtual device :  timeout connection
     درحالیکه تو اتصال به نت و تنظیمات خود جنی موشن مشکلی نیست. ممکنه راهنمایی کنید؟
    میخواستم بدونم این شبیه ساز قابلیت اجرایه بازی های انلاینم داره اگه داره چطور کلشو روش سینک کنم
    پاسخ:
    فکر کنم نشه؛ من برای تست clash رو نصب کردم ولی ران نشد. مشکلش هم این بود که Google Play Games روی شبیه ساز نبود و نتونستم نصبش کنم. یعنی خطای عدم سازگاری با دیوایس رو میداد...
    سلام
    خطای unable to create virtual device :  timeout connection

    زمانی که یکdevice رو انتخاب می کنیم ومیخاهیم فایلهای مربوطه رو دانلود کنه دیده میشه مشکلش چیه و چطور حل میشه؟
    پاسخ:
    اگر از پراکسی استفاده کنید درست میشه. ظاهرا تحریمیم از طرف Genymotion...
    یوزر نیم چی باید بدیم هرچی یوزر نیم ایمیلمو میدم ارور میده
    پاسخ:
    شما باید با نام کاربری و یا آدرس ایمیل بتونید لاگین شید. مشکل به نظرم اینه که احتمالا از طرف Genymotion تحریمه؛ چون من تونستم به پراکسی لاگین شم.
  • جواد مشکانی
  • سلام چرا موقع نصب یک اخطار میده که باید چیزی رو نصب کنم
    پاسخ:
    سلام موقع نصب از شما درخواست نصب چه چیزی رو می کنه؟

    حدس می زنم از شما درخواست می کنه Virtual Box رو نصب کنید. در این صورت شما نسخه بدون Virtual Box (یعنی همون سی و خورده ای مگ) رو نصب کرده اید. برای رفع این اخطار شما باید پیش از نصب Genymotion نرم افزار Virtual Box رو نصب کنید. البته توصیه می کنم نسخه با Virtual Box نرم افزار Genymotion (یعنی همون صد و چهل مِگیه) رو دانلود و نصب کنید نصب کنید. در این صورت نیاز به نصب Virtual Box نخواهید داشت.
    سلام من موقع اجرا ارور
      تو رو خدا کمک کنیدunable to load virtualbox engine
    پاسخ:
    هر چند دقیق نمیدونم مشکلت چیه ولی فکر کنم این ویدیو مشکلت رو حل کنه

    http://www.aparat.com/v/2D9KP
    با سلام و خسته نباشید
    OracleVM VirtualBox برتی من اصلا اجرا نمیشه.برای جنمویشن میخوام احراش کنم ولی اصلا کار نمیکنه. ویندوزمم۱۰
    اگه یه نسخه دیگه دانلود کنم و نصب کنم و این نسخه مشکل دار رو حذف کنم برای اجرای جنمویشن مشکلی پیش نمیاد؟
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی