Android ( minSdkVersion, targetSdkVersion, compileSdkVersion, versionCode, versionName, buildToolsVersion )

Merhaba arkadaşlar,

Android uygulamalarımızda Eclipse de AndroidManifest.xml dosyasında bulunan , Android Studio da ise build.gradle kısmında bulunan belli başlı tanımlamalar vardır.

Hepimiz bir şekilde kod yazıp uygulamalar geliştirebiliriz fakat uygulamalarımızın sınırlarını ve yapabileceklerini belirleyen bazı tanımlamalar vardır ve bu tanımlamaların ne işe yaradığını net bir şekilde kavramamız gerekmektedir.

Şimdi o tanımlamalar nelerdir ve ne işe yarar inceleyelim:

minSdkVersion : Android uygulamamızın en düşük hangi sürümde çalışabileceğini belirleyen komut satırıdır. Belirlenen versiyon dan önceki sürümlerde uygulamamız çalışmayacaktır. O yüzden en düşük hangi android sürümüne diğer bir deyişle en düşük hangi android cihazlarında çalışması gerektiğine kararı bu komuta yazacağımız değer ile belirliyoruz.

applicationId: Uygulamamızın paket adını içerir.

targetSdkVersion: Mevcut SDK platformunun en yüksek Android versiyonunu içermelidir. Eğer bu değeri belirtmediyseniz, minSdkVerison değeri ne ise onu kullanır. Her yeni android sürümü çıktığında, uygulamamızı o sürümlerde test etmeli ve targetSdkVersion kısmını güncellemeliyiz. Bu şekilde , uygulamamızda yer alan bazı fonksiyonel özelliklerin uyumlu bir şekilde çalışıp çalışmadığını da test etmiş oluruz.

compileSdkVersion: Android uygulamamızı compile etmek istediğimiz android versiyonu kaç ise onu kullanır. Örneğin API 16 olan bir cihazda android uygulamamızı derlemeye çalışıyoruz fakat compileSdkVersion u 15 yaptık işte o zaman derleme hatası alacağız. compileSdkVersion u 16 yaparsak ; API Level 15 olan bir cihazda da uygulamamızı rahatlıkla çalıştırabiliriz.

versionCode: Android uygulamamızın store a konulurken ve update edileceği zaman integer değer olarak tutulan sürüm bilgisidir.

versionName: Kullanıcının string değer olarak görebildiği sürüm bilgisidir, herhangi bir string değeri verebiliriz. Kullanışlı olması açısından , ilk kez yarattığımız android uygulamalarımızda sürüm ismi olarak “1.0” yazılır.

buildToolsVersion: build.gradle kısmında dependencies blogunda yer alan support library lerini uyumlu bir versiyonda kullanabilmek için buildToolsVersion a ihtiyaç duyarız. Örneğin :

compile 'com.android.support:support-v4:22.0.0'

yukarıda yer alan support library sürümü 22.0.0 olduğundan dolayı bu libraryin sıkıntısız bir şekilde derlenmesi için buildToolsVersion unda 22.0.0 a eşit olması gerekmektedir.

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "23.0.0"

    defaultConfig {
        applicationId "com.mobilhanem.mobileproject"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.0'

}

Şimdi gelelim hangi API Level da kullanmamız gerektiğine ; bunu belirleyebilmek için android kullanıcılarının hangi versiyona sahip cihazları çoğunlukla kullandığına dikkat etmeliyiz. Aşağıda yer alan tabloya baktığımızda bunu net bir şekilde görebilmekteyiz.

İstatistik

Not: Bu ders 9 Mart 2016 tarihibde yazılmıştır ve verilen istatistikler bu tarihe aittir. Güncel istatistik için tıklayınız.

Artık 2.2 versiyona sahip cihazları kullanan kullanıcı sayısı yok denecek kadar azaldığını görmekteyiz. Bu veriler, android uygulaması oluştururken minSdkVersion olarak 14 veya 15 kullanmamızın daha iyi olacağını göstermektedir. Çünkü uygulamanız ne kadar çok cihaza hitap ederse, o kadar çok kullanıcıya ulaşmış olur.

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

( API Level 14 demek Android 4.0 versiyonu demektir. )

Ders hakkında soru ve önerilerinizi çekinmeden yorum bırakabilirsiniz. Bol Android’li günler sizin olsun, bir dahaki dersime görüşmek üzere 🙂

10

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)

9 Yorum

  • compileSdkVersion sürümü ve support library sürümü aynı olmazsa nasıl bir sorunla karşılaşırız. Şuanda kodlarımda ki tek farklılık bu ve apk dosyasını telefona yüklerken “uygulama yüklenemedi” hatası alıyorum. Acaba sorun bu olabilirmi?

  • buildToolsVersion “25.0.2” olmasına rağmen
    compile ‘com.android.support:appcompat-v7:25.2.0’ şeklinde
    apk dosyasını yüklerken “Uygulama yüklenemiyor” hatası alıyorum.
    sorun bu olabilirmi acaba?

  • Sorunu hallettim çok teşekkür ederim. Şuan tek sıkıntım geçiş reklamları eklemek. Uygulamam açılırken ve kapanırken geçiş reklamı göstermek istiyorum ama zorlanıyorum. Özellikle de geçiş reklamının hangi anda gösterileceğini belirten kodu nasıl ve nereye yazacağımı bilmiyorum. Bununla ilgili bir makale varmı bildiğiniz acaba?

  • selam. cep telefonuna bir iptv uygulaması yükledim. Aynı uygulamayı android tv box a yükleyince çalışmıyor. Apk hiç açılmıyor. Hangi ayarı değiştirirsem tv box ta çalıştırabilirim.

Haftalık Bülten

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