Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Android Eğitimleri yazı serimizde bu dersimizde Gradle ile devam ediyoruz. Nedir bu Gradle ,ne işe yarar şimdi incelemeye başlayalım.
Gradle Android cephesinden bakıldığı zaman Android uygulaması geliştirme aşamalarını otomatize eden açık kaynak kodlu Android Studio üzerinde çalışan bir yapı sistemidir. Android Studio da bir proje oluşturduğumuzda otomatik olarak gradle build sistemi devreye girer ve build işlemini gerçekleştirir. Android Studio da bir android projesinin genel yapısını önceki derslerimizde incelemiştik bildiğiniz üzere bir android projesi bir den fazla modülden oluşur. Projeyi test edebileceğimiz, hataları ayıklayabileceğimiz , oluşturduğumuz uygulamayı yayınlayabilmek için apk oluşturabileceğimiz bir çok bileşenden meydana gelen bu yapıda aslında her bir bileşenin kendine ait bir build sistemi vardır. Genel olarak android projelerini incelediğimizde iki tür gradle oluşturma dosyası yer aldığını göreceksiniz. Bunu görebilmek için android studio da bir android projesi oluşturmanız yeterli. Eclipse de android uygulaması geliştirirken bildiğiniz üzere gradle yoktu maven yapısı vardı ve maven projelerinde sadece .jar çıktıları kullanılabilirken gradle ile birlikte xml çıktıları, fontlar vb. yapıları içeren .aar çıktılarını da kullanabilirsiniz.
Android Studio da yeni bir android projesi oluşturduğumuzda örnek olarak aşağıdaki ekran görüntülerinde gördüğünüz gibi proje oluşturulma aşamasında gradle çalışıyor ve build işlemlerini tamamlıyor.
Top-Level Build File: Tüm alt projelere / modüllere ortak yapılandırma seçeneklerini ekleyebileceğiniz dosya yapısıdır.
Module-Level Build File: Uygulama modülüne özgü dosya yapısıdır.
app dizinindeki build.gradle yapısı aşağıdaki gibidir. Gördüğünüz gibi uygulamanın sdk versiyonu, versiyon kodu, versiyon adı, desteklenen minimum sdk vb. özellikleri de içinde barındırır. Burada bulunan yapıları başka dersimizde anlatmıştım o yüzden ayrntılı olarak tekrardan bahsetmeyeceğim incelemek isterseniz bu dersimizi inceleyebilirsiniz.
build.gradle Genel Yapısı
apply plugin: ‘com.android.application’
android {
compileSdkVersion 25
buildToolsVersion “26.0.1”
defaultConfig {
applicationId “com.mobilhanem.myapplication”
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName “1.0”
testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
}
}
}
dependencies {
compile fileTree(dir: ‘libs’, include: [‘*.jar’])
androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2’, {
exclude group: ‘com.android.support’, module: ‘support-annotations’
})
compile ‘com.android.support:appcompat-v7:25.3.1’
compile ‘com.android.support.constraint:constraint-layout:1.0.2’
testCompile ‘junit:junit:4.12’
}
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 |
apply plugin: ‘com.android.application’
android { compileSdkVersion 25 buildToolsVersion “26.0.1” defaultConfig { applicationId “com.mobilhanem.myapplication” minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } }
dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2’, { exclude group: ‘com.android.support’, module: ‘support-annotations’ }) compile ‘com.android.support:appcompat-v7:25.3.1’ compile ‘com.android.support.constraint:constraint-layout:1.0.2’ testCompile ‘junit:junit:4.12’ } |
gradle-wrapper.properties: Bu dosya Gradle’ın doğru sürümünün yüklü olup olmadığını denetler ve gerekirse gerekli sürümü indirir.
settings.gradle: Projenizi oluşturan tüm modülleri referanslar. Gradle’a hangi alt projelerin bu yapının bir parçası olduğunu , fiziksel yollarının ne olduğunu ( path ) , build komut dosyalarının adının nasıl verileceğini söyler.
Aşağıdaki resim aslında herşeyi anlatıyor; esnek ve gelişmiş özelliklere sahip gradle yapısını Google un neden Android geliştirirken kullandığına güzel bir örnek.
Gradle’ın sağladığı en büyük avantaj kütüphane yönetim sistemidir. Projenizin ihtiyaç duyduğu herhangi bir açık kaynak kodlu kütüphaneyi, projenize tek satır kod ile ekleyebilirsiniz. ( app dizinindeki build.gradle içerisinde bulunan dependencies içerisinde bu işlemi kolayca gerçekleştirebilirsiniz böylece kullanacağınız kütüphaneyi otomatik olarak internet üzerinden sizin için indirecektir.) Örnek verecek olursak Picasso kütüphanesini projemize dahil etmek istiyoruz yapmamız gereken tek şey aşağıdaki kod parçacığını anlattığım gibi dependencies içerisine yapıştırmak. Picasso kütüphanesi nedir ne işe yarar merak ederseniz ayrıca bu dersimizi de inceleyebilirsiniz.
compile ‘com.squareup.picasso:picasso:2.5.2’
compile ‘com.squareup.picasso:picasso:2.5.2’ |
Gradle ile ilgili anlatacaklarımız bu kadar arkadaşlar zaten çok kapsamlı bir konu olduğu için bunun için ayrı tamamen ayrı bir ders serisi bile hazırlanabilir.Biz bu dersimizde Gradle’n Android tarafında ne işe yaradığını ve temel olarak Gradle konusunda bilgi sahibi olmanız açısından bu bilgileri sizlere aktardım. Zaten ilerleyen derslerimizde hem manifest hemde gradle dosyalarını sık sık kullanacağız. Kullandıkça daha aşina olacağız. Konu ile ilgili daha fazla bilgi edinmek isterseniz de bu siteyi incelemeniz yeterli olacaktır.
Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.
Mobilhanem.com üzerinden anlattığımız android uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.
Bir dahaki dersimizde görüşmek dileğiyle..
16