کار با گریدل (Gradle) در اندروید
فیلم آشنایی با نحوهی فعالیت Gradle در اندروید
متن به همراه عکس آشنایی با نحوهی فعالیت Gradle در اندروید
در این مقاله به طور کامل کار با گریدل را آموزش می دهیم. همچنین با فایل های موجود در گریدل و نحوه اضافه کردن آن به پروژه آشنا می شویم.
حال کار با گریدل را شروع می کنیم. وقتی برای اولین بار پروژهای میسازیم، به صورت پیشفرض دو پوشهی App و Gradle را داریم:
گریدل (Gradle) چیست و چه کاربردی دارد؟
گریدل تمامی کدها و برنامهنویسی را که ما انجام دادهایم، جمع و ترکیب میکند و در نهایت یک خروجی به صورت فایل Apk به ما میدهد که میتوانیم آن را در مارکتهای مختلف منتشر و روی موبایل خود نصب کنیم. در واقع کار کلی گریدل این است که کدهای جاوا را ترکیب کند، تغییرات لازم را انجام دهد، امنیت لازم را داخل آن برقرار کند و در آخر آن را با فرمت Apk قابل انتشار کند.
وقتی پوشهی گریدل را باز میکنیم، 7 فایل داخل آن میبینیم که هرکدام از آنها را باهم بررسی میکنیم:
اولین فایل داخل گریدل Build.gradle(Project:My Application) است که اسم اپلیکیشنمان است. در برنامهنویسی اندروید از این فایل استفاده نمیکنیم.
(Project:My Application)Gradle>Build.gradle
وقتی فایلمان را باز میکنیم، کدنویسیهای زیر را مشاهده میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.5.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } |
1_ در خط 1، Buildscript را داریم، در واقع به ما نشان میدهد که گریدل برای استفاده در پروژه اندرویدی ما از چه کتابخانههایی استفاده و کار میکند. که به صورت پیشفرض کتابخانههای google و jcenter وجود دارد.
2_ در خط 9، dependencies را مشاهده میکنیم که مربوط به نسخهی گریدلی که روی سیستم نصب شده میباشد. درواقع در این خط کتابخانهی گریدل را نوشته است که براساس نسخههایی که استفاده میکنیم، ممکن است عدد آخر خط متفاوت باشد.
3_ در خط 17، all projects را داریم که کلیت کتابخانههای استفاده شده را نشان میدهد و مشابه Buildscript است.
4_ در خط 25، نیز متدی وجود دارد که اگر بخواهیم پروژه را پاک کنیم، میتوانیم از آن استفاده کنیم.
دومین فایل (build.gradle(Module:app است که برای ما اهمیت زیادی دارد، درواقع بیشترین قسمتی که در برنامهنویسی اندروید در رابطه با گریدل با آن سروکار داریم، این قسمت است.
Gradle>build.gradle(Module:app)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
apply plugin: 'com.android.application' android { compileSdkVersion 29 buildToolsVersion "29.0.2" defaultConfig { applicationId "com.kazemieh.www.musictest" minSdkVersion 21 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0' } |
1_ خط 1، به صورت پیشفرض توسط اندرویداستودیو نوشته شده و نیاز به تغییر نیست.
2_ در خط 4، زمانی که پروژهمان تکمیل شده و میخواهیم از آن خروجی APK بگیریم، میتوانیم Api خروجی را تعیین کنیم که در اینجا به صورت پیشفرض API29 را درنظر گرفته است.
3_ درخط 5، عددی را نشان میهد که درواقع Api از چه نسخهای استفاده میکند. این قسمت برای ما اهمیت چندانی ندارد.
4_ خط 7، مربوط به applicationId میشود که در واقع اسم پیکجنیم برنامه مشخص شده است.
5_ در خط 8، minSdkversion وجود دارد که نشان میدهد پروژهمان در حداقل چه سیستم عاملی اجرا میشود. بهتر است عددی را انتخاب کنیم که مناسب پروژهمان باشد.
6_ خط 9، نیز مشابه خط 4 میباشد و مربوط به Api انتخاب شده برای پروژه میباشد.
7_ خط 10 و 11 نیز به ترتیب مربوط به versionCode و versionName میباشد.
8_ در خط 14، buildTypes را مشاهده میکنیم. در داخل آن میتوانیم خروجیهای ( APKهای) مختلف برای APIهای مختلف بگیریم. یعنی مدلهای مختلف را اضافه کنیم. به صورت پیشفرض release وجود دارد.
9_ در خط 16، در داخل buildTypes، قسمت proguard Filse وجود دارد که به امنیت پروژه مربوط میشود. در واقع باعث میشود APK که ساخته میشود، رمزگذاری شود و امنیت داشته باشد.
اگر بخواهیم مدل مختلفی از APK را در این قسمت اضافه کنیم، بعد از خط 18، enter را میزنیم، یک نسخهی جدید میسازیم و بعد کد مربوط به خط 16 را داخل آن مینویسیم تا پروژهمان ساخته شود.
توجه داشته باشید بعد از تغییرات، گزینهی Sync Now را انتخاب کنید تا به پروژهمان اضافه شود و در نهایت دو خروجی با APIهای مختلف بگیریم.
10_ در خط 22، dependencies (کتابخانههایی که در پروژهمان استفاده میشود) وجود دارد، که کاربرد بالایی برای ما دارد. وقتی یک پروژهی جدید میسازیم، به صورت پیشفرض کتابخانههایی اضافه میشود. در طول ساخت پروژهمان، ممکن است به کتابخانههای جدیدی مثل RecyclerView نیاز پیدا کنیم. در این صورت باید کتابخانههای جدید را اضافه کنیم.
در رابطه با کار با گریدل مورد بعدی اضافه کردن کتابخانه است. برای اضافه کردن کتابخانهی جدید به پروژه چند راه وجود دارد:
راه اول:
1_ روی قسمت Project Structure کلیک میکنیم. صفحهای باز میشود که بسته به نوع نسخهی اندروید استودیو ممکن است ظاهر متفاوتی داشته باشد.
2_ روی گزینهی Dependencies کلیک کرده و گزینهی app را انتخاب میکنیم.
3_ سپس گزینهی + را انتخاب میکنیم و گزینهی Library Dependency را انتخاب میکنیم.
4_ صفحهی جدیدی باز میشود که میتوانیم کتابخانهی موردنظرمان را سرچ کرده و اضافه کنیم.
راه دوم:
میتوانیم کد مربوط به کتابخانهی موردنظرمان را در اینترنت سرچ و کپی کنیم و آن را به کتابخانههای خود اضافه کنیم. سپس گزینهی Sync Now را انتخاب کرده تا به پروژهمان اضافه شود. توجه داشته باشید در این مرحله حتما باید فیلترشکن روشن باشد تا کتابخانه را اضافه کنیم.
فایل سوم موجود در گریدل، gradle.properties(Global Properties) است. کار این قسمت از گریدل، برقراری ارتباط میان کدهای جاوا و گریدل است تا بتواند کدهای جاوا را به یک خروجی تبدیل کند و ما بتوانیم از آن استفاده کنیم.
Gradle>gradle.properties(Global Properties)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
## For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html # # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx1024m -XX:MaxPermSize=256m # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 # # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true #Fri Jun 14 12:53:12 IRDT 2019 systemProp.https.proxyPort=8850 systemProp.http.proxyHost=mirror.vtwo.org systemProp.https.proxyHost=mirror.vtwo.org systemProp.http.proxyPort=8850 |
فایل چهارم، gradle.wrapper. properties(Gradle Version) است که نسخههای مختلف گریدلمان را بررسی میکند. در واقع نسخهی نهایی را که قابل دانلود است و ما از آن در پروژهمان استفاده کردیم، نشان میدهد.در واقع زمانی که اندروید استودیو را نصب میکنیم، این فایل را به صورت پیش فرض دانلود و از آن استفاده میکند.
Gradle>gradle.wrapper. properties(Gradle Version)
1 2 3 4 5 6 |
#Sun Oct 20 11:20:07 IRST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip |
تفاوت این قسمت با dependencies در فایل اول این است که در اینجا نسخه دانلودی فایل گریدل را که در پروژه استفاده شده نشان میدهد، اما در dependencies نسخهی کتابخانهای آن را نشان میدهد.
در برنامهنویسی جاوا از این قسمت استفاده نمیکنیم، به عبارتی کارایی خاصی برای ما نخواهد داشت.
فایل پنجم، proguard-rules.pro(Proguard Rules for app) است که کمک میکند تا امنیت اپلیکیشن ما برقرار شود.
Gradle>proguard-rules.pro(Proguard Rules for app)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. # # For more details, see #http://developer.android.com/guide/developing/tools/proguard.html # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} # Uncomment this to preserve the line number information for # debugging stack traces. #-keepattributes SourceFile,LineNumberTable # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile |
فایل ششم settings.gradle(Projects Setting) است. Moduleهای مختلفی را که داخل پروژه استفاده کردیم، اینجا نشان میدهد که به صورت پیشفرض، فقط app وجود دارد و در خط بعد اسم پروژه را نوشته است.
Gradle> settings.gradle(Projects Setting)
1 2 |
include ':app' rootProject.name='musictest |
اگر بخواهیم به صورت خودکار یک Module جدید به این قسمت اضافه کنیم باید مراحل زیر را طی کنیم:
File>New>New Module
سپس Module جدیدمان را انتخاب و آن را اضافه میکنیم.
اگر بخواهیم به صورت دستی Module جدیدی را اضافه کنیم، باید در خط اول بعد از Module app تگ ” ” را اضافه کنیم و داخل آن نام Module جدید را بنویسیم. بهتر است از این راه استفاده نکنیم و تغییراتی در این قسمت ایجاد نکنیم.
هفتمین و آخرین فایل ما در این قسمت، local.properties(SDK location) میباشد که درواقع آدرس SDK ما به آن داده شده و براساس آن میخواند.
Gradle>local.properties(SDK location)
1 2 3 4 5 6 7 8 9 10 |
## This file is automatically generated by Android Studio. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file should NOT be checked into Version Control Systems, # as it contains information specific to your local configuration. # # Location of the SDK. This is only used by Gradle. # For customization when using a Version Control System, please read the # header note. sdk.dir=D\:\\AS\\AndroidSDK |
در این قسمت میتوانیم پوشهی SDK خود را ببینیم و اگر تغییراتی لازم است در اینجا به صورت دستی تغییر دهیم که پیشنهاد میکنم از این قسمت استفاده نکنید واز قسمتSDK Manager تغییرات را انجام دهیم.
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : ندارد گزارش خرابی لینک
مطالب زیر را حتما بخوانید
-
نحوهی کار با ویدئوپلیر (Video Player) از طریق پوشهی raw
7.42k بازدید
-
آلرت دیالوگ (AlertDialog) چیست و نحوهی کار با آن چگونه است؟
7.02k بازدید
-
اسنکبار (Snackbar) در اندروید
4.56k بازدید
-
ّFloating action Button (فلوتینگ اکشن باتن) در اندروید
4.4k بازدید
-
نحوهی کار با فریم لیوت (FrameLayout)
4.83k بازدید
-
یک روش برای تمرکز در برنامهنویسی
3.27k بازدید
دیدگاهتان را بنویسید