راهنمای سریع gradle در اندروید استودیو

اگر توسعه دهنده اندروید باشید و با اندروید استودیو هم کار کرده باشید، حتما با مفهومی به نام build system و gradle سر و کار داشتید. در این مطلب می‌خوام توضیحات مختصر و گذرایی در مورد گریدل بدم که موقع کد زدن حداقل با مفهوم گریدل و بیلدسیستم‌ آشنایی داشته باشید. با ادامه مطلب همراه باشید.

gradle build system

برای آشنایی با Gradle اول باید با build system آشنا بشید. اما بیلدسیستم چیست؟

بیلد سیستم یک ابزار نرم‌افزاری‌ست که کار کامپایل کردن کدها را به صورت اتوماتیک انجام می‌دهد. هدف اصلی بیلد‌سیستم‌ها کامپایل و اجرا کردن کدهاست.

برای هر زبان برنامه‌نویسی بیلد‌سیستم‌های مختلفی به وجود آمدند. جاوا سه بیلدسیستم اصلی دارد:

۱-Ant محصول Apache معرفی شده در سال ۲۰۰۰ – براساس زبان XML

۲-Maven محصول Apache معرفی شده در سال ۲۰۰۴ – براساس زبان XML

۳-Gradle محصول Hans Dockter معرفی شده در سال ۲۰۱۲ – براساس زبان Groovy

تا اینجای کار با بیلدسیستم آشنا شدیم و سریع میریم سراغ گریدل. قبل از اینکه از این مطلب رد بشیم این رو هم بگم که بحث بیلدسیستم‌ها بحث بسیار گسترده‌ای هست و دنیای خاص خودش رو داره.

Gradle یک اتوماتیک بیلدسیستم متن‌باز و برخلاف Ant و Maven که براساس زبان XML هستند، براساس زبان Groovy شکل گرفت. Gradle مزایای هر دو بیلدسیستم Ant و Maven رو در خود جمع کرد و خیلی زود بخاطر قدرت و انعطاف‌پذیریش موردتوجه قرار گرفت.

برای اولین بار گوگل در کنفرانس Google I/O در سال ۲۰۱۳ اعلام کرد که از بیلدسیستم Gradle در IDE جدیدش یعنی آندروید استودیو استفاده خواهد کرد. گوگل، Gradleرو به وسیله یک افزونه به نام Android Plug-in for Gradle به آندروید استودیو آورد.

مزایای بیلدسیستم گریدل:

Project Dependency:
Dependency می‌تواند یک Modules یا JAR File یا Library باشد که یا روی کامپیوتر خود شماست یا  روی یک سرور. گریدل می‌تواند این Dependency ها رو مدیریت و به پروژه اضافه کند.

Testing:


Gradle به صورت اتوماتیک یک پوشه تست از پروژه شما درست می‌کند و محتویات پروژه و یک فایل تست از APK پروژه شما را داخلش نگه می‌دارد و هنگام Build شدن پروژه، عملیات تست را روی اپ شما انجام میدهد.

Publishing:


Gradle می‌تواند مراحل Sign کردن اپ شما را مدیریت کند.

Multiple APKs:
Gradle می‌تواند از پروژه شما چند خروجی APK بگیرد. برای مثال وقتی که ‌می‌خواهید برای دیوایس‌های مختلف با سخت‌افزارهای مختلف اپ‌های جداگانه داشته باشید.

تشریح فایل‌های گریدل:

هروقت پروژه‌ای در اندروید استودیو ساخته بشه، به طور اتوماتیک فایل‌هایی همراه اون ساخته می‌شوند که در اندروید استودیو زیرمجموعه Gradle Scripts هستند. یک به یک به تشریح این فایل‌های می‌پردازیم.

Gradle Buid یا همان فایل build.gradle
هر پروژه آندروید استودیو حداقل دارای دو فایل build.gradle  هست:

۱- Top Level Build File

تنظیمات اصلی که مربوط به کل پروژه است در این فایل قرار می‌گیرد. ما نیازی به تغییر و دستکاری این فایل نداریم.

۲- Module Level Build File

هر ماژول، دارای یک build.gradle جداگانه است که تنظیمات مربوط به ماژول مخصوص خودش داخل آن قرار می‌گیرد. می‌توان گفت در اینجا ماژول به معنای پروژه‌های زیرمجموعه پروژه اصلی‌ست. ما در طول مدت برنامه‌نویسی در اندروید استودیو همیشه با این فایل سر و کار داریم.

اگر به تصویر بالا نگاه کنید می‌بینید که build.grade اول همان Top Level Build File ما هست که مربوط به کل پروژه است و فایل‌های build.gradle بعدی همان Module Level Build File ما هستند که داخل پرانتز روبروی هرکدام کارایی آن مشخص شده است. این یعنی یک پروژه اندروید در تصویر بالا وجود داره و نسخه‌های مختلف این اپ برای دستگاه‌های مختلف مثل موبایل، تلویزیون و پوشیدنی در حال توسعه است.

تشریح محتویات فایل‌ها:

Top Level Gradle Build File:

محتویات این فایل همیشه ثابت هست و به هیچ عنوان نیازی به تغییر دادن داخل این فایل نیست. تنها نکته قابل ذکر اینه که خط ۸ معرفی کننده نسخه پلاگ‌-این گریدل آندرویداستودیو به پروژه است.

Module Level Gradle Build File:

هر پروژه‌ای که داخل پروژه اصلی تعریف شود، یک Module Level Gradle Build جداگانه خواهد داشت. داخل این فایل اطلاعات کلی اپ مثل min sdk ، target sdk ، نسخه اپ و dependency های پروژه تعریف می‌شوند. در اندروید استودیو نیازی نیست اطلاعاتی که بالا گفتم داخل فایل manifest تعریف بشه، و تمام این اطلاعات داخل همین فایل قرار می‌گیره.

gradle-wrapper.properties:
این فایل به دیگران اجازه می‌دهد که کدهای شما را Build کنند حتی اگر Gradle روی کامپیوتر خود نصب نداشته باشند.

این فایل بررسی می‌کند که چه نسخه‌ای از Gradle برای Build کردن کدها نیاز است و اگر نسخه مورد نظر را پیدا نکند، اقدام به دانلود کردن نسخه‌ی مورد نیازش برای اجرای کدها می‌کند. وقتی شما پروژه‌ای در اندروید استودیو می‌سازید امکان داره این فایل همراه پروژه ساخته نشه، ولی اگر پروژه‌‌ای رو از اینترنت مثل سایت github بگیرید، بعضی مواقع این فایل رو داخلش پیدا می‌کنید.

Settings.gradle:
این فایل تمام زیرپروژه‌هایی (همان Module) که پروژه ما داخلش دارد را معرفی می‌کند.

Gradle.properties:
اطلاعات کلی پروژه داخل این فایل ذخیره می‌شوند. به‌طور پیش‌فرض این فایل خالی است.

Local.properties:
این فایل محل ذخیره android sdk را به پلاگ‌این Android Gradle معرفی می‌کنه.

پنجره‌های گریدل در اندروید استودیو:

چند پنجره در اندروید استودیو هستند که مربوط به گریدل می‌شوند.

پنجره Gradle Task:

با استفاده از این پنجره در آندروید استودیو می‌توان دستورات Gradle را مشاهده و یا با کلیک روی هرکدام از آن‌ها، آن را اجرا کرد.

پنجره Gradle Console:

در پنجره Gradle Console خروجی دستورات Gradle به همراه نتیجه و پیغام‌های خطای آن‌ها نمایش داده می‌شود.

اضافه کردن Dependency به پروژه:

وقتی در حال توسعه اپ اندرویدی هستید، همیشه لازمه dependency هایی به پروژه اضافه کنید.

چند راه برای اضافه کردن Dependency به پروژه وجود دارد:

۱- قرار دادن فایل موردنظر در داخل پوشه libs در داخل پوشه پروژه

۲- استفاده از تب dependencies در قسمت project structure در آندروید استودیو (در ویندوز با زدن کلیدهای ترکیبی alt+ctrl+shift+s می‌توان پنجره project structure را مشاهده کنید)

۳- اضافه کردن dependency به صورت مستقیم در قسمت dependencies فایل build.gradle پروژه

اضافه کردن dependency به هر یک از روش‌های بالا در نهایت باعث اضافه شدن dependency به فایل build.gradle در قسمت dependencies خواهد شد و بلافاصله بعد از اضافه کردن یک dependency فایل build.gradle به‌روزرسانی و dependency موردنظر به پروژه اضافه می‌شود.

هدف از این مطلب آشنایی مختصر و کوتاهی با بیلدسیستم و گریدل بود که برای توسعه اپ اندروید در اندرویداستودیو نیاز هست که اون‌ها رو بدونید ولی اگر نیاز به مطالعه بیشتر در مورد بیلدسیستم یا گریدل داشتید نگاهی به مستندات گریدل در این لینک بندازید.

موفق باشید.

14 دیدگاه برای “راهنمای سریع gradle در اندروید استودیو”

  1. سلام. مرسی از آموزشتون. یه سوالی داشتم. این dependency هایی که فرمودید ادد میشه کرد به gradle رو چطور باید پیدا کرد؟؟؟ گاهی پیدا کردن ورژن و یا اسم دقیقشون سخته

    1. کتابخانه‌های مستقلی که توسعه‌دهنده‌ها می‌سازند و به پروژه قابلیت خاصی اضافه می‌کنه رو معمولا توی github میشه پیدا کرد. اکثرا هم تو خود صفحه گیت‌هاب پروژه توضیح دادن که باید چطوری به پروژه اضافه و استفاده بشه.

  2. اگر از پشت پروکسی میخواهید متصل بشید خطوط زیر را به فایل gradle.properies اضافه کنید.

    systemProp.http.proxyHost=www.proxyhost.org
    systemProp.http.proxyPort=8080
    systemProp.http.proxyUser=userid
    systemProp.http.proxyPassword=password
    systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *