Bu sayfada, Android kitaplığı projenizi Android Gradle eklentisi (AGP) kullanarak yayına hazırlamak için gereken özellikler ve seçenekler açıklanmaktadır. Bu özelliklerden bazılarını kitaplığınızı oluştururken ayarlamış olsanız bile ayarlarınızı optimize etmek için aşağıdaki yönergeleri inceleyin.
Ad alanı seçin
Android kitaplıklarının, kaynakları derlendiğinde benzersiz bir R
sınıfı oluşturabilmesi için bir ad alanı bildirmesi gerekir. Kullanıcılar kitaplıktan ve onun R
sınıfından normal sınıfları içe aktardığında karışıklık olmaması için bu ad alanı, kitaplığın kök sınıf paketiyle yakından eşleşmelidir.
AGP 7.0 ile başlayarak, aşağıdaki kod örneğinde gösterildiği gibi, uygulamanın build.gradle
dosyasında ad alanını ayarlayabilirsiniz:
Modern
android { namespace = 'com.example.library' }
Kotlin
android { namespace = "com.example.library" }
Ad alanı, kitaplığın geliştiricilere yönelik bir mülküdür. applicationId
özelliği kullanılarak ayarlanan uygulama kimliğiyle ilgili değildir.
AGP'nin önceki sürümlerinde hem applicationId
özelliği (bir uygulama için) hem de namespace
özelliği (kitaplık için) manifestin package
özelliği kullanılarak ayarlanabiliyordu ve bu da karışıklığa neden oluyordu.
minSdkVersion
değeri seçin
Kitaplığınız için bir minSdkVersion
seçmek, kitaplığınızı yayınlamanın önemli bir unsurudur. minSdkVersion
, kodunuzun destekleyebileceği minimum Android sürümünü yansıtmalıdır.
minSdkVersion
seçerken aşağıdakilere dikkat edin:
Düşük bir
minSdkVersion
seçmek, genellikle kitaplığınızın daha geniş bir kitleye dağıtılmasını sağlar.Bir kitaplığın kodu, uygulama açık bir şekilde çağırmadığı sürece genellikle yürütülmez. Uygulamalar, kitaplık bağımlılığının gerektirdiğinden daha düşük bir Android sürümünde (kitaplık, temel uygulama işlevselliği için gerekli değilse) çalışmaya devam edebilir. Bunun için kitaplığı çağırmadan önce çalışma zamanı kontrolleri yapabilir. Bu nedenle, daha fazla kullanıcıya ulaşmak için kitaplığınızın
minSdkVersion
değerini, uygulamalara yerleştirilebilen ve mümkün olduğunda çağrılabilecek kadar düşük bir değere ayarlayın.Yüksek bir
minSdkVersion
seçilmesi uygulamaların kitaplığı dahil etmesini engelleyebilir.AGP'de, uygulamadaki ve bağımlılıklarındaki manifest dosyalarını birleştiren bir adım olan manifest birleştirme işlemi, hiçbir bağımlılığın uygulamadan daha yüksek bir
minSdkVersion
değerine sahip olmasını zorunlu kılar.Yüksek bir
minSdkVersion
seçilmesi, uygulama geliştiricilerinin manifest birleştirme güvenliği kontrollerini devre dışı bırakmasına neden olabilir ve bu da derleme işleminin ilerleyen aşamalarında sorunlara neden olabilir.Manifest birleştirme işlemi, uygulama projelerinin uygulamanın kendisinden daha yüksek bir
minSdkVersion
değerine sahip kitaplıkları içermesini engellediğinden uygulama geliştiricileri, derleme hatalarını en aza indirmek için manifest birleştirmenin güvenlik kontrollerini devre dışı bırakabilir. Ancak bu durum, aşağı akışta gerçek uyumsuzluk sorunlarını ortaya çıkarabilir.Bir kitaplık manifestinin, yayın alıcısı ya da kodunun otomatik olarak tetiklenmesini sağlayan başka bir mekanizma içerdiği özel durumlarda yüksek bir
minSdkVersion
seçilmesi gerekebilir.Bu gibi durumlarda, yüksek bir
minSdkVersion
seçilmesi kodun çalışabilmesini sağlar. Alternatif olarak, uygulamanın doğru kontrolleri yaptıktan sonra kitaplığı yürütmeye dahil edilebilmesi için otomatik davranışı devre dışı bırakabilirsiniz.
Uygulamalarda yerleştirmeye izin vermek için arayanlara çalışma zamanı kontrolleri yapmaları gerektiğini belirtmek üzere kitaplığınızdaki RequiresApi
ek açıklamasını kullanın. Android Lint, denetimleri için RequiresApi
bilgilerini kullanır. API kodunuzu ve API'lerinizi iyileştirmek amacıyla ek açıklamaları kullanma hakkında daha fazla kaynak için Ek açıklamalarla kod incelemesini iyileştirme bölümüne bakın.
AAR meta verilerini ayarlama
Android kitaplığı, Android Arşivi (AAR) dosyası biçiminde paketlenir. AAR meta verileri, AGP'nin kitaplıkları tüketmesine yardımcı olan özelliklerden oluşur. Kitaplığınız uyumlu olmayan bir yapılandırma tarafından tüketiliyorsa ve AAR meta verileri ayarlanmışsa kullanıcılara sorunu çözmelerine yardımcı olmak için bir hata mesajı sunulur.
minCompileSdk değeri seçin
4.1 sürümünden itibaren AGP, minCompileSdk
sürümünü destekler.
Tüketen projelerin kullanabileceği minimum compileSdk
değerini belirtir. Kitaplığınız manifest girişleri veya daha yeni platform özelliklerinden yararlanan kaynaklar içeriyorsa bu değeri ayarlamanız gerekir.
minCompileSdk
değeri, modül düzeyindeki build.gradle
dosyasındaki defaultConfig{}
, productFlavors{}
ve buildTypes{}
bloklarında ayarlanabilir:
Modern
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { foo { ... aarMetadata { minCompileSdk = 30 } } } }
Kotlin
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { register("foo") { ... aarMetadata { minCompileSdk = 30 } } } }
minCompileSdk
öğesini birden fazla yerde ayarlarsanız Gradle, derleme işlemi sırasında ayar konumlarına aşağıdaki gibi öncelik verir:
buildTypes{}
productFlavors{}
defaultConfig{}
minCompileSdk
öğesinin hem defaultConfig{}
hem de productFlavors{}
içinde tanımlandığı önceki örnekte, productFlavors{}
değerine öncelik verilir ve minCompileSdk
30 olarak ayarlanmıştır.
Gradle'ın kod ve kaynakları birleştirirken ayarlara nasıl öncelik verdiği hakkında daha fazla bilgi edinmek için Kaynak kümeleriyle derleme bölümüne bakın.
Test armatürlerini etkinleştir
Test armatürleri, genellikle test edilen kodu ayarlamak veya bir bileşenin testlerini kolaylaştırmak için kullanılır. Sürüm 7.1'den itibaren AGP, uygulama ve dinamik özellik projelerine ek olarak kütüphane projeleri için test armatürleri oluşturabilmektedir.
Başkalarının kullanması için bir kitaplık yayınlarken API'niz için test donanımları oluşturmayı düşünün. Test armatürleri, modül düzeyindeki build.gradle
dosyasında etkinleştirilebilir:
Modern
android { testFixtures { enable = true } }
Kotlin
android { testFixtures { enable = true } }
Test armatürlerini etkinleştirdiğinizde Gradle, otomatik olarak test armatürleri yazabileceğiniz bir src/testFixtures
kaynak kümesi oluşturur.
Daha fazla bilgi için Gradle'ın test ekipmanlarını kullanma ile ilgili dokümanlarına bakın.