Gradle چیست؟ به چه منظوری طراحی شده است؟
Gradle چیست؟ فرایند ساخت پروژه های اندروید توسط Gradle build system مدیریت می شود . پروژه ی اندروید در دو نوع مختلف عرضه می شوند, اولین مجموعه پروژه از ساختار پروژه ی موروثی (legacy project structure) بهره می گیرد که توسط تجهیزات و ابزار برنامه نویسی اندروید (ADT tooling) Eclipse مورد استفاده قرار می گیرند . این دست از مجموعه پروژه تا سال ۲۰۱۳ مورد استفاده قرار می گرفت . اما مجموعه دوم پروژه از ساختار برنامه سازی Gradle (Gradle Build Structure) بهره می گیرد .
Gradle را می توان گونه ای پیکربندی (config) کرد که از هر دو قالب بندی (format) پشتیبانی کند, به عبارت دیگر هم بتواند از ساختار پروژه ی Gradle استفاده کند و هم از ساختار پروژه ی Eclipse.
Gradle build system به منظور پشتیبانی از سناریوهای پیچیده در پروسه ی ایجاد اپلیکیشن های اندروید طراحی شده است از قبیل:
- Multi-distribution : زمانی که لازم است برنامه ای برای چندین سرویس گیرنده و شرکت مختلف سفارشی ساخته و تنظیم شود
- Multi-apk: هنگامی که لازم است چندین برنامه ی کاربردی یا اپلیکیشن مختلف ویژه ی دستگاه های مختلف اندروید طراحی شود و در عین حال برنامه های تولید شده از همان بخش های کد یکسان استفاده کند.
Gradle چیست؟ به چه منظوری طراحی شده است؟
استفاده از Gradle
در صورت ایجاد پروژه ی جدید در محیط Android Studio, پردازه ها یا اسکریپت های ساخت Gradle (Gradle build script) خود به صورت خودکار ایجاد می شوند . محیط اندروید استودیو زمان اجراGradle راwrap می کند (دربر گرفته و گونه ای این موضوع را تحت پوشش قرار می دهد که نیازی به نصب اضافه بر سازمان نباشد), از این رو نیازی به نصب اضافی نیست.
همچنین می توان یک wrapper script ( Wrapper script در واقع همان اسکریپت یا پردازه ی اصلی {master script} است که اجرای دیگر اسکریپت ها را کنترل و اداره می کند) ایجاد شده توسط Gradle را بکاربرد که به برنامه نویس اجازه می دهد یک Gradle Build را بدون نیاز به نصب اضافی از خط فرمان (command line) اجرا کند .(در طول دوره آموزش برنامه نویسی اندروید با راه اندازی و کار با Gradle آشنا می شویم.)
افزودن فایل Gradle ویژه ی پروژه ی اندروید مبتنی بر Eclispe
جهت فعال سازی Gradle build برای پروژه ی اندروید خود که مبتنی بر Eclipse می باشد, build.gradle زیر را به ریشه (root) پروژه ی خود اضافه کنید .
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.0.0' } } apply plugin: 'com.android.application' android { lintOptions { abortOnError false } compileSdkVersion 22 buildToolsVersion "21.1.2" defaultConfig { targetSdkVersion 22 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } } </type></type>
وارد (import) کردن پروژه ی مبتنی بر Eclipse به محیط Android Studio
پس از اینکه یک فایل Gradle معتبر به پروژه ی اندروید مبتنی بر Eclipse خود اضافه کردید, می توانید آن را وارد محیط اندروید استودیو کنید . این کار را می توان از طریق گزینه ی File → Import Project و انتخاب پوشه ی پروژه دربردارنده ی Gradle build file انجام داد .
آن دسته از توسعه دهنده گان و برنامه نویسان شرکت گوگل که مسئول مدیریت و طراحی تجهیزات اندروید را برعهده دارند, این ساختار پروژه اندروید را (در تجهیزات اندروید استودیو) به منظور هماهنگی بیشتر آن با Gradle build system اصلاح کرده اند .به منظور راه اندازی چنین ساختی (build), دستور یا فرمان ذیل را از پوشه ی پروژه ی مربوطه اجرا کنید .
پیشنهاد شگفت انگیز کدفرند،دسترسی به تمامی دوره های آموزشی کدفرند تنها با ۵۹ هزار تومان
# build project gradle build # build project complete from scratch gradle clean build # speedup second grandle build by holding it in memory gradle build --daemon
فرمان فوق خروجی Gradle build را در پوشه ی build ایجاد می کند . به صورت پیش فرض, Gradle build دو فایل .apk در پوشه ی build/outputs/apk بوجود می آورد .جهت ساخت و راه اندازی تست ها دستور زیر را بکار ببرید .