Android Dersleri – Gradle

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.

<PROJECT_ROOT>\build.gradle ( bu dizin içinde yer alır. )

Module-Level Build File: Uygulama modülüne özgü dosya yapısıdır.

<PROJECT_ROOT>\app\build.gradle ( bu dizin içinde yer alı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'
}

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'

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

Alper Beyler

Yüksek Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği
Lisans: Çankaya Üniversitesi / Bilgisayar Mühendisliği (4/3.30) (2010-2014)
Lisans : Viyana Teknik Üniversitesi / Bilgisayar Bilimleri (2013)

7 Yorum

    • fazla bilgi verici kısımları siz belirtebilirsiniz böylece herkes faydalanmış olur biz elimizden geldiğince yardımcı olmaya çalışıyoruz.

      • Gayet güzel bir anlatım olmuş bence, elinize sağlık. Fazla detaya boğmadan Android için Gradle’ın ne işe yaradığı teknik olarak anlatılmış. Daha fazla bilgi almak isteyen Gradle’ın kendi sitesinden ya da internetten araştırabilir. Kendi adıma teşekkür ederim.

      • Alper bey, bilgiler için teşekkür ederiz. Aradığım konu ile ilgili gayet net bir makale olmuş. Allah razı olsun.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?