Kitaplığınızı kullanıma hazırlama

Bu sayfada, Android Gradle eklentisi (AGP) kullanılarak Android kitaplığı projenizin yayınlanmaya hazırlanması için gereken özellikler ve seçenekler açıklanmaktadır. Bu özelliklerin bazılarını kitaplığınızı oluşturmanın başında ayarlasanız bile ayarlarınızı optimize etmek için aşağıdaki yönergeleri inceleyin.

Ad alanı seçme

Android kitaplıklarının, kaynakları derlenirken benzersiz bir R sınıfı oluşturabilmeleri için bir ad alanı belirtmesi gerekir. Kullanıcılar kütüphaneden ve R sınıfından normal sınıfları içe aktarırken karışıklığı önlemek için bu ad alanı, kütüphanenin kök sınıf paketiyle yakından eşleşmelidir.

AGP 7.0'dan itibaren, aşağıdaki kod örneğinde gösterildiği gibi uygulamanın build.gradle dosyasında adı alanı ayarlayabilirsiniz:

Groovy

android {
  namespace = 'com.example.library'
}

Kotlin

android {
  namespace = "com.example.library"
}

Ad alanı, kitaplığın geliştiricilere yönelik bir özelliğidir. applicationId özelliği kullanılarak ayarlanan uygulama kimliğiyle ilgili değildir.

AGP'nin önceki sürümlerinde hem applicationId mülkü (uygulama için) hem de namespace mülkü (kitaplık için) manifest'in package özelliği kullanılarak ayarlanabiliyordu. Bu durum karışıklıklara yol açıyordu.

minSdkVersion değeri seçin

Kitaplığınız için bir minSdkVersion seçmek, kitaplığınızı yayınlamanın önemli bir parçasıdır. minSdkVersion, kodunuzun destekleyebileceği minimum Android sürümünü yansıtmalıdır.

minSdkVersion seçerken aşağıdaki noktaları göz önünde bulundurun:

  • Düşük bir minSdkVersion seçmek, kitaplığınızın genellikle daha geniş bir kitle tarafından dağıtılmasına olanak tanır.

    Uygulama açıkça çağırmadığı sürece kitaplığın kodu genellikle yürütülmez. Bir uygulama, kitaplık temel uygulama işlevi için gerekli değilse kitaplığı çağırmadan önce çalışma zamanında kontroller yaparak kitaplık bağımlılığı tarafından gerekenden daha düşük bir Android sürümünde çalışmaya devam edebilir. Bu nedenle, kitaplığınızın minSdkVersion değerini, daha fazla kullanıcıya ulaşmanıza yardımcı olmak için uygulamalara yerleştirilebilecek ve mümkün olduğunda çağrılabilecek kadar düşük ayarlayın.

  • Yüksek bir minSdkVersion değeri seçmek, uygulamaların kitaplığı dahil etmesini engelleyebilir.

    AGP'deki bir adım olan manifest birleştirme işlemi, uygulamadan ve bağımlılıklarından gelen manifest dosyalarını birleştirir. Bu işlem, hiçbir bağımlılık değerinin uygulamadan daha yüksek minSdkVersion değerine sahip olmasını engeller.

  • Yüksek bir minSdkVersion değeri seçmek, uygulama geliştiricilerin manifest birleştirme güvenlik kontrollerini devre dışı bırakmasına neden olarak derleme sürecinde daha sonra sorunlara yol açabilir.

    Manifest birleştirme aracı, uygulama projelerinin uygulamadan daha yüksek minSdkVersion değerine sahip kitaplıklar eklemesini engellediğinden uygulama geliştiriciler, derleme hatalarını en aza indirmek için manifest birleştirme aracının güvenlik kontrollerini devre dışı bırakabilir. Ancak bu, aşağı akışta gerçek uyumsuzluk sorunlarına yol açabilir.

  • Kitaplığın manifest dosyasında bir yayın alıcısının veya kodun otomatik olarak tetiklendiği başka bir mekanizmanın bulunduğu özel durumlarda yüksek bir minSdkVersion değeri seçmek gerekebilir.

    Bu durumlarda, yüksek bir minSdkVersion değeri seçmek kodun çalıştırılabilmesini sağlar. Alternatif olarak, uygulamanın doğru kontrolleri yaptıktan sonra kitaplığı çalıştırmayı seçebilmesi için otomatik davranışı devre dışı bırakabilirsiniz.

Uygulamalara yerleştirilmesine izin vermek için kitaplığınızdaki RequiresApi ek açıklamasını kullanarak kitaplığı çağıranlara çalışma zamanında kontrol yapmaları gerektiğini belirtin. Android Lint, denetimleri için RequiresApi bilgilerini kullanır. API kodunuzu ve API'lerinizi iyileştirmek için ek açıklamaları kullanmayla ilgili daha fazla kaynak için Ek açıklamalarla kod incelemesini iyileştirme başlıklı makaleyi inceleyin.

AAR meta verilerini ayarlama

Android kitaplıkları Android Arşivi (AAR) dosyası biçiminde paketlenir. AAR meta verileri, AGP'nin kitaplıkları kullanmasına yardımcı olan özelliklerden oluşur. Kitaplığınız uyumsuz bir yapılandırma tarafından kullanılıyorsa ve AAR meta verileri ayarlandıysa kullanıcılara sorunu çözmelerine yardımcı olacak bir hata mesajı gösterilir.

minCompileSdk değeri seçin

AGP, 4.1 sürümünden itibaren minCompileSdk'yi destekler. Bu, tüketen projelerin kullanabileceği minimum compileSdk değerini gösterir. Kitaplığınız daha yeni platform özelliklerini kullanan manifest girişleri veya kaynakları içeriyorsa bu değeri ayarlamanız gerekir.

minCompileSdk değeri, modül düzeyindeki build.gradle dosyasında defaultConfig{}, productFlavors{} ve buildTypes{} bloklarında ayarlanabilir:

Groovy

android {
  defaultConfig {
    aarMetadata {
      minCompileSdk = 29
    }
  }
  productFlavors {
    foo {
      ...
      aarMetadata {
        minCompileSdk = 30
      }
    }
  }
}

Kotlin

android {
  defaultConfig {
    aarMetadata {
      minCompileSdk = 29
    }
  }
  productFlavors {
    register("foo") {
      ...
      aarMetadata {
        minCompileSdk = 30
      }
    }
  }
}

minCompileSdk ayarını birden fazla yerde belirlerseniz Gradle, derleme işlemi sırasında ayar konumlarına aşağıdaki şekilde öncelik verir:

  1. buildTypes{}

  2. productFlavors{}

  3. defaultConfig{}

minCompileSdk'nin hem defaultConfig{} hem de productFlavors{} içinde tanımlandığı önceki örnekte productFlavors{} öncelikli olur ve minCompileSdk 30 olarak ayarlanır.

Gradle'in kod ve kaynakları birleştirirken ayarlara nasıl öncelik verdiği hakkında daha fazla bilgi edinmek için Kaynak kümeleriyle derleme başlıklı makaleyi inceleyin.

Test fikstürlerini etkinleştirme

Test düzenleyicileri, genellikle test edilen kodu ayarlamak veya bir bileşenin testlerini kolaylaştırmak için kullanılır. 7.1 sürümünden itibaren AGP, uygulama ve dinamik özellik projelerinin yanı sıra kitaplık projeleri için de test armatürleri oluşturabilir.

Başkalarının kullanabileceği bir kitaplığı yayınlarken API'niz için test yapıları oluşturabilirsiniz. Test armatürleri, modül düzeyindeki build.gradle dosyasında etkinleştirilebilir:

Groovy

android {
  testFixtures {
    enable = true
  }
}

Kotlin

android {
  testFixtures {
    enable = true
  }
}

Test armatürlerini etkinleştirdiğinizde Gradle, test armatürleri yazabilmeniz için otomatik olarak bir src/testFixtures kaynak grubu oluşturur.

Daha fazla bilgi için Gradle'ın test donanımlarını kullanma ile ilgili belgelerine bakın.