روزنوشت

می نویسم؛ تا به یاد آورم روزی، بودم

روزنوشت

می نویسم؛ تا به یاد آورم روزی، بودم

روزنوشت

من آرزویی ندارم، من از چیزی نمی‌ترسم، من آزادم...

«کازانتزاکیس»

دنبال کنندگان ۲ نفر
این وبلاگ را دنبال کنید
آخرین نظرات

۲ مطلب با کلمه‌ی کلیدی «Android Studio» ثبت شده است

روزهای تلخ اکلیپس و ADT Bundle رو همه به خاطر داریم...

نوشتن و اضافه کردن کتابخانه ها دردسر خودش رو داشت، Cleanهای مداوم رو همه به یاد داریم.

Emulator از اون زمان تا حالا خیلی بهتر شده و واقعن سریعتر شده

 

Android Studio یک IDE خیلی خوب هست و کیفیت کار رو برای برنامه نویس های اندروید بالاتر برده، Gradle هم یک Build System منعطف و قوی هست که امکانات جدیدی رو در اختیارمون گذاشته که خیلی به سریعتر شدن پروسه ی برنامه نویسی یا انتشار برنامه ها کمک می کنه.

 

با همه ی اینها نمیتونیم انکار کنیم که فرآیند Build اپ ها در دوران اکلیپس و ANT خیلی سریعتر بود. پیچیدگی های خود Gradle به یک طرف، استفاده از اینترنت و تحریم بودن ایران هم از طرف دیگه باعث شده پروسه ی Build خیلی کند بشه.

 

در این بین راه حل هایی وجود داره که میتونه به تسریع پروسه ی Build کمک کنه.

 

Gradle Offline Mode

درواقع Gradle برای انجام کارش نیاز به اینترنت داره، تا چک کنه که همه ی بسته هایی که برنامه نیاز داره رو اگر وجود نداشت دانلود کنه، یا بسته به پلاگین هایی که نصب کردیم (مثل fabric.io) اطلاعاتی رو ارسال کنه. اما چون وضعیت اینترنت ما تعریفی نیست، سایت bintray.com که مخازن jCenter اونجا هاست میشن ایران رو تحریم کرده، و اینکه همیشه نیاز نیست Gradle بروز بودن بسته ها رو چک کنه، تغییر Gradle به حالت Offline میتونه پروسه ی Build رو کمی سرعت ببخشه.

 

من تنها زمانی که میخوام کتابخانه ی جدیدی به پروژه اضاف کنم یا Build نهایی برای Release بگیرم، Gradle رو از حالت Offline بر میدارم.

 

 

تنظیمات gradle.properties

علاوه بر این می تونید خود Gradle رو به شکلی کانفیگ کنید که نتیجه ی اون افزایش سرعت Build باشه

 

 

همونطور که می بینید تو هر پروژه ی اندروید، اندروید استودیو دو فایل gradle.propertes رو بهتون نشون میده

  • Project Properties: تنظیماتی که مختص همون پروژه هستن و فقط روی اون پروژه اعمال میشن (این فایل توی هر پروژه وجود داره)
  • Global Properties: تنظیمات عمومی Gradle که روی همه ی پروژه ها تاثیر میزاره، این فایل تو پروژه ای که ایجاد می کنید وجود نداره و وقتی روش دابل کلیک کنید، فایلی رو خارج از محیط پروژه باز می کنه. این فایل در مسیر زیر وجود داره
    • لینوکس:
~/.gradle/gradle.properties
  • ویندوز
%userprofile%/.gradle/gradle.properties

 

اگه این فایل (Global Properties) تو این مسیر وجود نداشت (و مثل تصویر بالا تو اندروید استودیو نمایش داده نشد) ، باید ایجادش کنید.

 

 

نمونه تنظیماتی که من استفاده می کنم:

 

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048M
org.gradle.configureondemand=true
org.gradle.parallel=true

 

  • org.gradle.daemon=true: این خط به Gradle دستور میده که در حالت daemon اجرا بشه (daemon رو شاید معادل service در ویندوز بشه درنظر گرفت). اینکار باعث میشه که یه پروسه ی مجزا برای Gradle ایجاد بشه و با هربار Build نیاز نباشه دوباره این پروسه ایجاد بشه که خودش باعث میشه سرعت Build افزایش پیدا کنه. ضمن اینکه در تنظیمات بعدی میتونیم منابع مصرفی این پروسه رو افزایش بدیم تا باز هم سرعت Build افزایش پیدا کنه.
  • org.gradle.jvmargs=-Xmx2048M: در این خط میتونیم پارامترهای معتبر JVM رو وارد کنیم. تنظیماتی که اینجا انجام گرفته، به Gradle daemon به میزان ۲ گیگ رم اختصاص میده که باعث افزایش سرعت Build میشه. البته حواستون باشه که سیستمتون باید به اندازه ی کافی رم داشته باشه (به همین دلیل توصیه می کنم سیستمی که واسه اینکار استفاده می کنید حداقل ۸ گیگ رم داشته باشه)
  • org.gradle.configureondemand=true: این خط بیشتر برای پروژه هایی که از چندین ماژول تشکیل شدن معنی پیدا می کنه و درواقع تنها درصورتی هرکدوم از پروژه ها رو Configure می کنه که بهشون نیاز باشه. شاید برای پروژه های معمولی تاثیر مثبتی نداشته باشه.
  • org.gradle.parallel=true: این خط هم ظاهراً باعث میشه در پروژه هایی که از چند تشکیل شدن (چند ماژول)، عملیات کانفیگ این پروژه ها رو بصورت موازی انجام بده که سرعت Build رو افزایش میده. این حالت هم ظاهراً برای پروژه های چند بخشی تاثیر بیشتری داره.

 

استفاده از مجموعه ی این تنظیمات باعث شده من سرعت Build بیشتری داشته باشم. شاید برای شما هم مفید واقع بشه.

 

درصورتی که از این تنظیمات استفاده می کنید، ممنون میشم تاثیرش رو در سرعت Build روی سیستم خودتون (با ذکر مشخصات سیستم و سیستم عامل مورداستفاده) کامنت کنید.

  • Nevercom

من از PHPStorm 8 برای برنامه نویسی PHP و Android Studio برای اندروید استفاده می کنم.

 

ادیتورهای خانواده ی IntelliJ IDEA رو بسیار دوست دارم، در نسخه ی PHPStorm 8  قابلیت Multiple Selection معرفی شد.

اگر از Sublime Text استفاده کرده باشید، میدونید که یکی از محبوب ترین قابلیت هاش، قابلیت Multiple Selection هست که به شما اجازه میده چندین Caret (یا Cursor - نشانگر موس) در نقاط مختلف صفحه داشته باشید و درواقع چند نقطه رو همزمان ویرایش کنید.

 

در PHPStorm این قابلیت با نگه داشتن Alt و Mouse Left Click در نقاط مختلف فعال میشه. مشکل اینجاست که در Ubuntu ترکیب Alt+Button1 برای حرکت دادن پنجره تعریف شده و با ترکیب کلید IDEA تداخل ایجاد می کنه.

 

دو راه وجود داره، یا اینکه ترکیب رو در IDEA تغییر بدید و یا اینکه ترکیب مربوطه رو در Ubuntu غیرفعال کنید.

 

از اونجایی که پیدا کردن ترکیب مناسب برای جایگزین کردن در IDEA سخته (Ctrl, Shift و ترکیبی از اینها به همراه کلیک ماوس رجیستر شدن و قابلیت هاشون رو نیاز دارم)، تصمیم گرفتم در سیستم این ترکیب رو غیرفعال کنم، چون نیازی هم بهش ندارم.

 

مثل همیشه با جستجویی در Google و AskUbuntu به پاسخ سوال می رسیم.

 

در دو بخش ترکیب Alt با Mouse Button رجیستر شده

  1. در تنظیمات پلاگین Move Window مربوط به Compiz
  2. دیگری در کلید org.gnome.desktop.wm.preferences.mouse-button-modifier 

اول تنظیمات Compiz رو تغییر میدیم، برای اینکار باید Compiz Config Settings Manager رو نصب کنید (sudo apt-get install compizconfig-settings-manager)، پلاگین Move Window رو پیدا کنید و شورت‌کاتی که ترکیب ALT>Button1> رو داره رو غیرفعال کنید.

 

حالا برید تو PHPStorm چک کنید ترکیب کلید Alt+Button1 (درواقع Alt رو نگه دارید و جاهای مختلف ادیتور Left Click کنید) جواب میده یا نه.

 

اگر مثل من متوجه شدید هنوز مشکل پابرجاست، یه کار دیگه هست که میتونید بکنید

روش دوم اعمال تغییر در dconf-editor هست

 

 

dconf-editor رو اجرا کنید، Ctrl+F رو بزنید تا کادر جستجو باز بشه و عبارت mouse-button-modifier رو جستجو کنید.

کلید موردنظر که پیدا شد مقدارش رو از <ALT> به <Super> تغییر بدید.

 

 

الان باید ترکیب Alt+Click در PHPStorm فعال شده باشه.

 

 

منبع: http://askubuntu.com/q/151252/107348

  • Nevercom