Bu sayfada, modül düzeyindeki build.gradle.kts
dosyasında bulunan faydalı uygulama ayarları açıklanmaktadır. build.gradle.kts
dosyasında ayarlanan önemli özelliklere genel bir bakış sunmanın yanı sıra aşağıdakileri de öğrenin:
- Farklı derleme yapılandırmaları için uygulama kimliğini değiştirin.
- Ad alanını uygulama kimliğinden bağımsız olarak güvenli bir şekilde ayarlayın.
Uygulama kimliğini ayarlama
Her Android uygulamasının, Java veya Kotlin paketi adı gibi görünen benzersiz bir uygulama kimliği vardır (ör. com.example.uygulamam). Bu kimlik, uygulamanızı cihazda ve Google Play Store'da benzersiz bir şekilde tanımlar.
Uygulama kimliğiniz, burada gösterildiği gibi modülünüzün build.gradle.kts
dosyasında bulunan applicationId
mülkü tarafından tanımlanır. com.example.myapp
değerini uygulamanızın kimliğiyle değiştirerek applicationId
değerini güncelleyin:
Kotlin
android { defaultConfig { applicationId = "com.example.myapp" minSdk = 15 targetSdk = 24 versionCode = 1 versionName = "1.0" } ... }
Groovy
android { defaultConfig { applicationId "com.example.myapp" minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" } ... }
Uygulama kimliği geleneksel bir Kotlin veya Java paketi adına benzese de uygulama kimliği için geçerli adlandırma kuralları biraz daha kısıtlayıcıdır:
- En az iki segmenti (bir veya daha fazla nokta) olmalıdır.
- Her segment bir harfle başlamalıdır.
- Tüm karakterler alfanümerik veya alt çizgi [a-zA-Z0-9_] olmalıdır.
Android Studio'da yeni bir proje oluşturduğunuzda, applicationId
'ye kurulum sırasında seçtiğiniz paket adı otomatik olarak atanır. Bu tarihten itibaren iki mülkü teknik olarak bağımsız olarak değiştirebilirsiniz ancak bu önerilmez.
Uygulama kimliğini ayarlarken aşağıdakileri yapmanız önerilir:
- Uygulama kimliğini ad alanıyla aynı tutun. Bu iki mülk arasındaki fark biraz kafa karıştırıcı olabilir ancak aynı tutarsanız endişelenmenize gerek yoktur.
- Uygulamanızı yayınladıktan sonra uygulama kimliğini değiştirmeyin. Değiştirirseniz Google Play Store, sonraki yüklemeyi yeni bir uygulama olarak değerlendirir.
- Uygulama kimliğini açıkça tanımlayın. Uygulama kimliği,
applicationId
mülkü kullanılarak açıkça tanımlanmazsa otomatik olarak ad alanıyla aynı değeri alır. Bu, ad alanının değiştirilmesiyle uygulama kimliğinin de değişeceği anlamına gelir. Bu genellikle istediğiniz bir durum değildir.
Test için uygulama kimliğini değiştirme
Derleme araçları varsayılan olarak, .test
eklenmiş belirli bir derleme varyantının uygulama kimliğini kullanarak araç testi APK'nize bir uygulama kimliği uygular. Örneğin, com.example.myapp.free
derleme varyantı için bir test APK'sı com.example.myapp.free.test
uygulama kimliğine sahiptir.
Gerekli olmasa da defaultConfig
veya productFlavor
bloğunuzda testApplicationId
mülkünü tanımlayarak uygulama kimliğini değiştirebilirsiniz.
Ad alanını ayarlama
Her Android modülünün bir ad alanı vardır. Bu ad alanı, oluşturulan R
ve BuildConfig
sınıfları için Kotlin veya Java paket adı olarak kullanılır.
Ad alanınız, aşağıdaki kod snippet'inde gösterildiği gibi modülünüzün build.gradle.kts
dosyasında bulunan namespace
mülkü tarafından tanımlanır. namespace
, başlangıçta projenizi oluştururken seçtiğiniz paket adıyla ayarlanır.
Kotlin
android { namespace = "com.example.myapp" ... }
Groovy
android { namespace "com.example.myapp" ... }
Android derleme araçları, uygulamanızı nihai uygulama paketine (APK) derlerken uygulamanızın oluşturulan R
sınıfının ad alanını ad alanı olarak kullanır. Bu sınıf, uygulama kaynaklarınıza erişmek için kullanılır.
Örneğin, önceki derleme dosyasında R
sınıfı com.example.myapp.R
adresinde oluşturulur.
build.gradle.kts
dosyasındaki namespace
mülkü için belirlediğiniz ad, her zaman etkinliklerinizi ve diğer uygulama kodlarınızı tuttuğunuz projenizin temel paket adıyla eşleşmelidir. Projenizde başka alt paketler olabilir ancak bu dosyaların namespace
mülkünden gelen ad alanını kullanarak R
sınıfını içe aktarması gerekir.
Daha basit bir iş akışı için varsayılan olarak olduğu gibi ad alanınızı uygulama kimliğinizle aynı tutun.
Ad alanını değiştirme
Çoğu durumda, ad alanını ve uygulama kimliğini varsayılan olarak olduğu gibi tutmanız gerekir. Ancak, kodunuzu yeniden düzenlerseniz veya ad alanı çakışmalarını önlemek isterseniz bir noktada ad alanını değiştirmeniz gerekebilir.
Bu gibi durumlarda, uygulama kimliğinden bağımsız olarak modülünüzün build.gradle.kts
dosyasında namespace
mülkünü güncelleyerek ad alanını değiştirin. Bunu yapmadan önce, uygulama adınızın açıkça tanımlandığından emin olun. Böylece, ad alanının değiştirilmesi uygulama kimliğini de değiştirmez. Ad alanının uygulama kimliğini nasıl etkileyebileceği hakkında daha fazla bilgi edinmek için Uygulama kimliğini ayarlama başlıklı makaleyi inceleyin.
namespace
ve Gradle applicationId
için farklı adlarınız varsa derleme araçları, derlemenin sonunda uygulama kimliğini uygulamanızın nihai manifest dosyasına kopyalar.
Bu nedenle, bir derlemeden sonra AndroidManifest.xml
dosyanızı incelerseniz package
özelliği uygulama kimliğine ayarlanır. Birleştirilmiş manifest'in package
özelliği, Google Play Store ve Android platformunun uygulamanızı tanımlamak için baktığı yerdir.
Test için ad alanını değiştirme
androidTest
ve test
kaynak kümeleri için varsayılan ad alanı, sonuna .test
eklenmiş ana ad alanıdır. Örneğin, build.gradle
dosyasındaki namespace
özelliği com.example.myapp
ise test ad alanı varsayılan olarak com.example.myapp.test
olarak ayarlanır.
Test için ad alanını değiştirmek üzere aşağıdaki kod snippet'inde gösterildiği gibi testNamespace
mülkünü kullanın:
Kotlin
android { namespace = "com.example.myapp" testNamespace = "com.example.mytestapp" ... }
Groovy
android { namespace "com.example.myapp" testNamespace "com.example.mytestapp" ... }
Dikkat: testNamespace
ve namespace
değerlerini aynı değere ayarlamayınız. Aksi takdirde ad alanı çakışmaları meydana gelir.
Test hakkında daha fazla bilgi edinmek için Android'de uygulamaları test etme başlıklı makaleyi inceleyin.