گریدل چیست ؟ و برای چه کاری استفاده می شود . و همچنین معنی دقیق عبارت Gradle چیست؟ رفع مشکل گریدل در اندروید استودیو از جمله حل مشکل sync گریدل را نیز یاد میگیرید. مبحث مهمتر بروزرسانی گریدل در اندروید استودیو را با 5 روش مختلف یاد میگیرید و کلیه مباحث مربوط به آن که در مقاله زیر خدمت شما یاد میدهیم .
گریدل چیست ؟
اگر در اینترنت دنبال گریدل بگردید مطالب زیادی وجود دارد که بیشتر آنها تعاریف پیچیده و نامفهومی از gradle برای ما آوردند . من میخواهم خیلی ساده برای شما بیان کنم که gradle چیست ؟
اولا واژه gradle را شخص موسس آن یعنی اقای Hans Docter روی آن گذاشته است و جالب است بدانید که این واژه معنی خاصی ندارد و تنها دلیل آقای هانس از انتخاب این کلمه تلفظ راحت و خوب آن است . گریدل چیست ؟ جواب ساده برای این سوال این است : گریدل یک سیستم ساخت یا اگه بخوام به انگلیسی بگم build System هستش .

گریدل برای فشرده سازی فایل ها در اندروید استودیو
اگه یادتون باشه ما در اکلیپس یه سری پوشه هایی جدا از هم مثل src ,res همچنین یک تعداد پوشه دیگه داشتیم. ولی الان توی اندروید استودیو نگاه کنید میبینید که همه ی پوشه های در ریشه ی src قرار دارند حتی خود res نیز تو همون ریشه قرار دارد . یکم خوب دقت کنید میفهمید که چرا از Gradle استفاده کردیم .برای اینکه تمام فایل های ما را فشرده کنند و به یک فایل تبدیل کنند . یعنی اینکه gradle یک سیستم ساخت هست که تمامی file ما را فشرده میکند و آنها را به یک فایل تبدیل میکند .
یعنی اگر Gradle نبود کوچکترین برنامه ما حدود 60 مگابایت حجم داشت . این تعاریف برای ما اهمیت گریدل را نشان میدهد . الان که فهمیدیم گریدل (gradle) چیست ؟ و چه کار را انجام میده با یک این رو بدونیم که یکسری مشکلاتی را در کشور ما دارد . که در قسمت پایین برای شما توضیح میدهیم.
چرا از گریدل استفاده میکنیم؟
در قسمت بالا بهتون توضیح دادم که gradle چیست؟ الان باید بدونیم که چرا باید از گریدل استفاده کنیم . ما وقتی یک پروژه اندرویدی میسازیم . برای اینکه بیایم از اون فایل های .java و xml که در پروژه ما وجود داره apk خودمون رو تولید کنیم به Gradle نیاز داریم . اگه بخوام ساده برای شما توضیح بدهم باید بگم که گریدل با ابزار های مناسبی که دارد فایل های جاوا را به فایل های dex تبدیل میکنه و بعد از این کار میاد همه ی اون فایل ها رو فشرده میکنه و به یک فایل واحد تبدیل میکنه . که اسم اون فایل واحد apk میباشد.
دو نوع اسکریپ برای build. gradle وجود دارد .
- build.gradle سطح بالا
- build.gradle در سطح ماژول
سطح بالا در دایرکتوری اصلی پروژه ما قرار دارد . و کار اصلی این type این هست که اون پیکربندی های اصلی که برای همه ی ماژول های ما اعمال میشود را تعریف کند. و اجرای آن به صورت قطعه کد زیر میباشد.
buildscript { ext.kotlin_version = "1.3.72" repositories { google() jcenter() } dependencies { classpath "com.android.tools.build:gradle:4.1.3" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() maven { url 'https://jitpack.io' } } } task clean(type: Delete) { delete rootProject.buildDir }
در کد بالا یک بلوکی با نام buildscript وجود دارد که کار این قسمت این هست که برای gradle مخازن و اون وابستگی ها را پیکربندی کند. این وابستگی ها در بخش Dependencies استفاده میشه.
بخش allprojects بلوکی هست که ما میتوانیم پلاگین های و همچنین کتابخونه های را در آن پیکربندی کنیم و همونطور که مشاهده میکنید به صورت پیش فرض mavenCentral() و مخزن maven Google را درون خود دارد.
و بخش task clean برای حذف دایرکتوری ها میباشد زمانی که هر دفعه پروژه ما اجرا میشود.
در صورت تمایل میتوانید مقاله ndk مطالعه کنید و دلیل استفاده از اندروید NDK را بدانید .
buile.gradle در سطح ماژول :
این بخش در فهرست پروژه و ماژول ها قرار دارد . در این بخش تموم وابستگی ها تعریف میشوند . و همچنین نسخه های SDK در این بخش تعریف میگردد. همچنین در این بخش عملکرد های زیادی که در پروژه ما هستش نیز تعریف میشود .اجرای این بخش به صورت زیر هستش .
plugins { id 'com.android.application' id 'kotlin-android' } android { compileSdkVersion 30 buildToolsVersion "30.0.0" defaultConfig { applicationId "com.example.kotlinme" minSdkVersion 19 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } buildFeatures { viewBinding true } viewBinding { enabled = true } } dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core:core-ktx:1.2.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'com.google.android.material:material:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'com.google.android.material:material:1.3.0' implementation 'com.bitvale:pacbutton:1.0.0' implementation 'com.bitvale:switcher:1.0.0' testImplementation 'junit:junit:4.+' }
در کد های بالا بلوک هایی وجود دارد که برای شما توضیح میدهم که چه کارایی دارند .
- android: این بلوک برای این هست که ما موارد خاصی که در ساخت برنامه به اون نیاز داریم را پیکربندی کنیم.
- compileSdkVersion: ما در این بخش سطح API های خودمون رو تعیین میکنیم.
- defaultConfigApplicationId: ما برای منتشر کردن برنامه خودمون از یک شناسه خاص و یونیک استفاده میکنیم و برای شناسایی این شناسه از این بخش استفاده میکنیم.
- minSdkVersion: این بخش برای این هست که ما حداقل سطح API که برای اجرای اپلیکیشن خودمون به آن نیاز داریم رو تعیین کنیم.
- targetSdkVersion: در این قسمت مشخص میکنیم که برای آزمایش اپلیکیشن خودمون به چه API نیازداریم.
- VersionCode: در این بخش کد نسخه برنامه مشخص میشود و در هر بروزرسانی یدونه اضافه میشود.
- versionName: ما در این قسمت اسم نسخه برنامه رو انتخاب میکنیم.
نسخه gradle اندروید استودیو را چگونه بفهمیم؟
برای اینکه بفهمیم نسخه gradle چیست ؟ ابتدا اندروید استودیو خودتون رو باز کنید .از قسمت منو ها به مسیر File > Project Structure > Project > Gradle version به همین راحتی و به صورت شکل زیر فهمیدیم که نسخه gradle چیست ؟

چگونه نسخه gradle اندروید استودیو رو پیدا کنیم.
حل مشکل sync گریدل (gradle) در اندروید استودیو با یک روش خیلی جامع
خیلی وقتا پیش میاد که موقع این که گریدل در حال دانلود کتابخانه مورد نیاز و sync گریدل هست . یکسری خطا رخ میدهد از جمله این خطای گریدل مانند شکل زیر .

مشکل گریدل در اندروید استودیو
ما باید برای رفع مشکل گریدل که در شکل بالا مشاهده میکنید . از یک تغییر دهنده IP استفاده کنیم . تا اندروید استودیو بدون هیچ مشکلی کارخود را ادامه بدهد. اکثر مشکلات از قبیل این بخاطر مشکل فیلتر میباشد . که با کمک یک تغیر دهنده ای پی می توانیم این مشکلات را حل کنیم .
رفع مشکل sync گریدل در اندروید استودیو به یک روش دیگر
اگر به هر دلیلی حالا اگر به یک تغییر دهنده آی پی دسترسی نداشتید و یا هر دلیل دیگر که مشکل بالا برای شما رفع نشد . من برای شما یک پیشنهاد دیگر دارم تا به کمک آن رفع مشکل gradle به صورت کامل انجام گیرد . شما برای استفاده از این روش برای رفع خطای گریدل ابتدا وارد سایت شکن بشوید .
ما بعد از این که فهمیدیدم گریدل چیست ؟ باید روشی برای حل مشکل sync گریدل نیز پیدا کنیم . در قسمت پایین سایت شکن آموزش تغییر دی ان اس را برای شما توضیح میدهد ولی نگران نباشید من خودم هم یک برای برای شما انجام میدهم . تا بهتر یاد بگیرید. ابتدا در قسمت Control Panel خودتون روی گزینه ی Network and Internet بزنید و ادامه روی Network & Sharing Center بزنید و بعد مراحل زیر را مرحله به مرحله ادامه دهید .
قدم اول :

مراحل ثبت dns برای رفع مشکل gradle
قدم دوم :

مراحل ثبت dns برای رفع مشکل gradle
قدم سوم :

مرحله سوم :مراحل ثبت dns برای رفع مشکل Gradle
قدم چهارم :

مرحله آخر و ثب IP روی DNS
در مرحله آخر شما دی ان اس را روی IP که در صفحه ی اول سایت شکن و در قسمت پایین قرار دارد تنظیم کنید و OK را بزنید . بعد از این مشکلاتی از قبیل تحریم ندارید و بدون هیچ تغیر دهنده ی IP کار خود را با اندروید استودیو ادامه دهید . ورفع مشکل گریدل برای شما صورت گرفت .
شما میتوانید از این لینک مقالعه زبان برنامه نویسی کاتلین را بخوانید .
آموزش 5 روش برای بروزرسانی گریدل در اندروید استودیو
در قسمت های بالا یاد گرفتید gradle چیست و اینکه سیستم ساخت اندروید استودیو مبتنی بر Gradle میباشد . و اما چجوری آن را بروز رسانی کنیم ؟ ما بروزرسانی گریدل در اندروید استودیو با 5 روش را برای شما یاد میدهیم که به کمک آن gradle را آپدیت کنید.
روش اول : وقتی اندروید استودیو خودتون رو Update میکنید شما پیامی مبنی بر دریافت آخرین نسخه Gradle را دریافت میکنید که شما میتونید آن را انتخاب کنید و یا نه . بقیه روش ها بروزرسانی به صورت دستی انجام میگیرد.
روش دوم : و اما در روش دوم به مسیر File → Settings بروید و بعد از آن مانند شکل زیر به صفحه گریدل میروید و میتوانید آن را بروزرسانی کنید .

5 روش برای بروز رسانی گریدل اندروید استودیو
روش دوم : وارد مسیر File → Project Structure شوید و مانند شکل زیر آخرین نسخه Gradle را انتخاب کنید.

5 روش برای بروز رسانی گریدل اندروید استودیو
روش سوم : به مسیر Gradle Scripts و بعد از آن gradle-wrapper.properties بروید و و آدرس آخرین نسخه Gradle را در distributionUrl بگزارید .

5 روش برای بروز رسانی Gradle اندروید استودیو
روش چهارم : شما میتوانید آخرین نسخه را که توسط اندروید استودیو پشتیبانی میشود را دانلود کنید بعد به مسیر File -> Settings بروید و بعد از مسیر Gradle -> Service directory path پوشه ای که فایل گریدل دانلود شده در آن قرار دارد را انتخاب کنید و فایل را انتخاب کنید.
روش پنچم : و اما در این روش شما می توانید به مسیر build.gradle بروید و به صورت دستی مانند شکل زیر آخرین نسخه را وارد سازید.

5 روش برای بروز رسانی Gradleاندروید استودیو
5 روش بروزرسانی گریدل در اندروید استودیو را به صورت خلاصه و ویدیو برای شما اماده کرده که میتونید تماشا کنید امیدوارم مفید باشه .
5 نکته اصلی درمورد گریدل چیست؟
ما در بخش های بالا فهمیدیم که منظور گریدل چیست ؟ همچنین تونستیم مشکل sync گریدل در اندروید استودیو رو به کمک همدیگر حل کنیم . و اینکه یاد گرفتیم روش های بروز رسانی gradle چیست ؟ اما حالا باید بدونیم 5 نکته اصلی در مورد gradle چیست ؟
-
گریدل یک ابزار ساخت همه منظوره میباشد
این نکته به این معنی است که ما به کمک gradle میتوانیم هر نرم افزاری که در نظرمون هست را بسازیم . واینکه ما در حین ساخت این نرم افزار با سوالاتی مانند چه نرم افزاری را میسازید؟ و یا چگونه میخواهید بسازید؟ روبرو نیستیم و این باعث راحتر شدن کار ما میشود . یعنی gradel لایه های از قرارداد ها و قابلیت های که به وسیله پلاگین ها درست شده اند . ساخت هر گونه پروژه ای را امکان پذیر میکند .
-
مدل اصلی مبتنی بر وظایف میباشد
معنی جمله بالا اینکه که Gradle بیلد های خودش را با نمودار های DAGs یا همان نمودار های غیره چرخشی جهت دار ، مدل میکند . و بعد اینکه پیکر بندی رو انجام میدهد بر اساس اون وابستگی که دارند به هم دیگر متصل میکند . یعنی بعد اینکه نمودار وظایف توسط گریدل ایجاد میشود . gradle انتخاب میکند که کدوم کار ها به ترتیب انجام شود .
نمودار وظایف که توسط گریدل ساخته میشود .
-
گریدل برای بیلد کردن چندین فاز ساخت ثابت داره
یعنی ما باید به این نکته دقت کنیم که اون اسکریپت های بیلدن کردن در 3 مرحله ارزیابی و اجرا میشود .
- اولین مرحله مقدار دهی اولیه هست : ما در این مرحله کاری که میکنیم این هست که محیط بیلد شدن و یا همون ساخت را تنظیم میکنیم . و مشخص میکنیم که کدوم پروژه های در آن شرکت کنند .
- دومین مرحله پیکربندی هست : یک نمودار وظیفه برای بیلد شدن می سازد. و به همان ترتیبی که کاربر مورد نظرش هست که کدام اول باشد و کدام دومی وظایف را اجرا میدهد .
- اما سومین مرحله اجرا میباشد : اون وظایفی که در مرحله پیکربندی انتخاب کردیم اجرا میشوند.
-
گریدل راه های بیشتری برای گسترش دارد
این جمله به این معنی هست که ما نمتونیم همه ی بیلد ها رو با منطق ساخت همراه گریدل بسازیم . این کار ملزومات زیادی دارد که ما باید به همین منظور منطق ساخت سفارشی را اضافه کنیم .
-
طرز کار اسکریپت های ساخت با API ها متفاوت هستش
این نکته به این معنی هستش که این اسکریپت های مراحل ساخت نرم افزار مورد نظر را توصیف میکنند ولی اینکه هر مرحله چگونه کار کند وظیفه این اسکریپت ها نیست و برای این کار از انواع پلاگین های سفارشی استفاده میکنند .
جمع بندی مطالب
در اینجا مقاله ما به اتمام رسید و شما فهمیدید که گریدل یا gradle چیست ؟ و چه کاری را انجام میدهد. بعداز این مطالب روشی یاد گرفتید که به کمک آن تونستید تحریم ها را دور بزنید و مشکل sync گریدل در اندروید استودیو را رفع کنید . همچنین 5 روش مختلف یاد گرفتیدکه به وسیله آن بروزرسانی گریدل در اندروید استودیو را انجام دهید . ما سعی کردیم موضوعات مربوط به Gradle را به صورت کامل برای شما توضیح دهیم .امیدوارم مفید بوده باشد.
موفق باشد .
چند نوع اسکریپت برای Build.Gradle وجود دارد ؟
1.بیلد گریدل در سطح بالا 2. بیلد گریدل در سطح ماژول
gradle چیست ؟
گریدل یک بیلد سیستم یا سیستم ساخت هست.
گریدل چه کاری انجام میدهد ؟
گریدل تمام فایل های ما را فشرده میکند و همه ی آنها را تبدیل به یک فایل میکند.
به چه دلیلی ما باید از گریدل استفاده کنیم ؟
گریدل از یک ابزار هایی استفاده میکند و تمام فایل های آن رابه فایل های Dex تبدیل میکنه وفایل های Dex را فشرده کرده و به فایل واحد apk تبدیل میکند.
سلام خیلی ممنون کامل کامله
فقط من با شکن و فیلتر شکن هم نتونستم گریدل دانلود کنم از داخل برنامه
ولی از لینکی که داد زدم دستی دانلود شد ولی نمیدونم باید فایل رو کجا بندازم ممنون میشم به این سوالم جواب بدین
سلام خواهش میکنم لطف دارید .
به نظر من بهترین راه اینه که خود اندروید استودیو به اینترنت وصل بشه و تمامی چیز هایی که نیاز داره رو دانلود کند . شما میتونید از پروکسی هایی که مخصوص استفاده برای اندروید استودیو هست هم استفاده کنید
توی قسمت تنظیمات اندروید و بخش Http proxy روی تنظیمات دستی بزنید و در قسمت HostName -> fodev.org اینو بزنیدو شماره پورت هم 8118 بزنید و بعد از اون اندورید استودیو رو یه باز از اول راه اندازی کنید .
سلام.
من هم برای sync مشکل دارم. ظاهرا fodev هم کار نمیکنه
سلام
چاره ای نیست راه های دیگر رو هم امتحان کنید .
از شکن استفاده کردید؟