این روزها یکی از رو اعصاب ترین چیزها برای من این بود که مجبور بودم بخاطر اجرا کردن شبیهساز اندروید درایور انحصاری انویدیا رو نصب کنم. هر دو شبیهساز خود اندروید استودیو و نرم افزار Genymotion نیاز به درایور کارت گرافیک انحصاری دارن. شبیهساز اندروید استودیو که با exit code 1 خارج میشه و جنیموشن رو هم وقتی اجرا میکنی سیستم فریز میشه و هیچ راهی به جز ریستارت کردن سخت افزاری سیستم نداره.
الان بعد از تازه سازی توزیعم رفتم شروع به کار کنم با اندروید استودیو و دیدم شبیهساز ران نمیشه چون درایور انحصاری نصب نکرده بودم !
چون این روزا بعضیا دنبال اینن که اندروید استودیو نصب کنن، سعی میکنم علاوه بر اینکه بگم چجوری میتونین شبیهساز اندروید استودیو رو با درایور آزاد اجرا کنین، یه آموزش کوچیک و کاربردی هم براش بنویسم که به سادگی بتونین نصبش کنین.
اول به
این سایت برین و فایل فشردهی اندروید استودیو رو دانلود کنین.
اگر اوبونتو دارین این بستهها رو نصب کنین:
sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
اگر دبیان دارین اینها رو نصب کنین:
sudo apt install libc6-i386 libncurses5 libc6 libstdc++6 lib32z1 libbz2-1.0
و اگر آرچ دارین اول مخزن multilib رو فعال کنین و بعد این بستهها رو نصب کنین:
sudo pacman -S lib32-glibc lib32-ncurses lib32-libstdc++5 lib32-zlib lib32-bzip2
حالا فایل فشردهی اندروید استودیو که دانلود کرده بودین رو از حالت فشرده در بیارین بعد از این کار صاحب یه پوشهی به اسم android-studio یا یه چیزی شبیه همین میشین. اون پوشه رو به دایرکتوری /usr/local منتقل کنین.
با فرض اینکه پوشهی android-studio توی هوم یوزر شماست میتونین از این دستور برای این انتقال استفاده کنین:
sudo mv ~/android-studio/ /usr/local
اگر از قبل SDK ها رو هم دانلود کردین بزارینشون توی دایرکتوری /opt. مثلا مال من اینجاست:
/opt/AndroidSDK/Sdk
اگر هم SDK از قبل دانلود نکردین و ندارین مشکلی نیست با خود اندروید استودیو میتونین دانلودش کنین. (جلوتر بهش میرسیم.)
قبل از اجرا کردن اندروید استودیو یه نکتهای رو باید بگم اونم اینه که اندازهی دایرکتوری /tmp معمولا نصف رم شماست و اگر احساس میکنین SDK ها و ابزارهای زیادی از داخل خود اندروید استودیو میخواین دانلود کنین باید مقدارش رو افزایش بدین. چون اندروید استودیو اطلاعاتی که داره دانلود میکنه رو داخل دایرکتوری /tmp ذخیره میکنه و بعد از اینکه نصبشون کرد، از /tmp پاکشون میکنه. مثلا من حدود 13 گیگابایت SDK و شبیهساز و یه سری ابزار دیگه دانلود کردم و اندازهی /tmp من 4 گیگابایت بود که هر دفعه به ارور میخوردم ! اگر فکر میکنین SDK ها و چیزهای دیگهای که میخواین توی اندروید استودیو دانلود کنین حجمش بیشتر از نصف رمتون میشه، برای جلوگیری از رسیدن به همچین ارورهایی کافیه حجم دایرکتوری /tmp رو با استفاده از این دستور افزایش بدین (مثلا اینجا میکنیمش 10 گیگ):
sudo umount /tmp
sudo mount -t tmpfs -o size=10G,mode=1777 overflow /tmp
نکته: توجه کنین بعد از هر بار ریستارت کردن سیستم، اندازهی دایرکتوری /tmp به حالت اولش برمیگرده.
خب بعد از همهی اینها نوبت میرسه به اجرا کردن اندروید استودیو. همونطور که میدونین به لطف دستاوردهای ملی، کشور ایران توسط گوگل تحریمه و این یعنی نمیتونیم SDK ها و ابزارهای دیگهی اندروید استودیو رو به راحتی از داخل خودش دانلود کنیم اما همیشه راههای دور زدن وجود داره!
من برای این کار از سرویس
Freedom of Developers استفاده میکنم که به اندازهی کافی سریعه که با این اینترنت خستهی ما بتونه SDK ها رو دانلود کنه. راه دیگه هم استفاده از تور هست که احتمالا برای استفاده توی گردل مجبورین با استفاده از privoxy ساکس تور رو تبدیل به http کنین. به هر حال اون به عهدهی خودتون من اینجا نحوهی استفاده از fod رو براتون توضیح میدم.
اول اندروید استودیو رو با دستور زیر اجرا کنین:
/usr/local/android-studio/bin/studio.sh
وقتی اندروید استودیو برای اولین بار اجرا شد با همچین صفحهای مواجه میشین، وارد قسمت Settings بشین:
** نکته: ممکنه اولین بار که اندروید استودیو رو باز میکنین بخواد شروع کنه به دانلود کردن ابزارهای مورد نیازش اما شما کنسل رو بزنین (چون تحریمیم و هنوز تحریم رو دور نزدیم)، تا به این صفحه برسین. احتمالا دفعهی بعد که اندروید استودیو رو باز کنین دوباره اون صفحهی نصب SDK ها بیاد که بتونین از همونجا نصب کنین در غیر این صورت میتونین با استفاده از SDK Manager ابزارهای مورد نیازتون رو نصب کنین.
از قسمت System Settings گزینهی http proxy رو بزنین و دقیقا به این صورت تنظیمش کنین (عکس به روز شد):
fodev.org:8118
حالا اوکی بزنین و خارج شین. اگر میخواین ابزارهای پیشنهادی اندروید استودیو رو نصب کنین کافیه یه بار ببندینش و بازش کنین تا دوباره شروع کنه به نصب کردن SDK ها و ابزارهایی که خودش پیشنهاد داده. همچنین میتونین تمامی SDK ها و ابزارهای مورد نیاز خودتون رو از قسمت SDK Manager دانلود و نصب کنین.
منطقا بعد از نصب SDK و ابزارهای مورد نظر میتونین شروع کنین به ساختن پروژه و توسعهی برنامههای اندروید! اما این وسط یه مشکلی هست! شبیهساز یا Emulator !
برای راه اندازی شبیهساز، اول از قسمت SDK Manger مطمئن شین که بستهی Android Emulator رو نصب کردین. بعدش با AVD منیجر که توی toolbox اندروید استودیو وجود داره شروع کنین به ساختن یه شبیهساز! مراحل ساختنش خیلی سادهست! اول نوع دستگاه رو انتخاب میکنین، مرحلهی بعدش ایمیج اون نسخه از اندرویدی رو که میخواین رو انتخاب میکنین(و در صورت نیاز میتونین از همونجا دانلودش کنین.) و در نهایت میرسین به همچین صفحهای:
خب اگر میخواین از درایور آزاد که روی سیستمتون به صورت پیشفرض نصبه استفاده کنین کافیه از قسمت Emulated Performance گزینهی Graphics رو دقیقا مثل من (که توی عکس مشخصه) تنظیم کنین. اگر میخواین مقدار رم و چیزهای دیگه رو هم تغییر بدین با گزینهی show advanced settings میتونین این کار رو بکنین. بعدش finish رو بزنین. اگر همه چیز درست باشه منطقا میتونین شبیهسازی که ساختین رو اجرا کنین.
خب نکتهای که این وسط هست اینه که وقتی شبیهساز با این حالت بالا میاد به شدت کنده ! حتی من 8 گیگابایت رم هم براش در نظر گرفتم اما باز هم کند بود! ولی خب تا حد زیادی کار رو راه میندازه و لازم نیست درایور انحصاری نصب کنیم که علاوه بر اینکه آزاد نیست، مشکلاتی رو هم در جاهای دیگه به همراه خودش میاره. (حداقل برای من)
اما اگه از این حالت راضی نبودین کافیه گزینهی Graphics رو روی حالت Auto قرار بدین و با توجه به توزیع خودتون برین درایور کارت گرافیک انحصاری نصب کنین و بعد بیاین شبیهساز رو اجرا کنین. در این حالت با رم بین 2 تا 4 گیگابایت برای شبیهساز سرعت معقولی رو خواهید داشت.
برای ساخت Desktop Entry هم کافیه تو صفحهی خوشآمدگویی اندروید استودیو از قسمت Configure گزینهی Create Desktop Entry رو بزنین یا اگر داخل محیط برنامه بودین کافیه به منوی Tools برین و گزینهی Create Desktop Entry رو بزنین. حالا اگه Dash یا هر چیز دیگهای که برنامههاتون رو باهاش اجرا میکنید رو باز کنید، خواهید دید که اندروید استودیو به لیست برنامههاتون اضافه شده و به سادگی میتونین اجراش کنین.
امیدوارم نکتهای جا نیفتاده باشه و اگر جا افتاده خوشحال میشم بهم بگین.
اگر هم راه بهتری سراغ دارین مخصوصا برای اجرا کردن شبیهساز اندروید بدون درایور انحصاری که سریع هم باشه باز هم خوشحال میشم باهام در میون بزارین، چون خودم هیچ راهی پیدا نکردم که بدون درایور انحصاری بتونم یه شبیهساز اندروید نصب کنم و اجرا بشه و فقط تنها راهی که سراغ داشتم همینه که کنده ولی خب کار من رو فعلا راه میندازه گفتم شاید به درد شما هم بخوره.
خواستم این مطلب رو توی ویکی بنویسم اما گفتم شاید چون اندروید استودیو توی مخازن رسمی نیست و یه جورایی یه نرم افزار غیر رسمی حساب میشه، جاش توی ویکی نباشه.
امیدوارم بدردتون بخوره.