Android'de Application ID, Package Name ve Kaynak ID'lerini Ayırt Etme

Kerem Aydın·7 Temmuz 2026·⏱3 dk

Kısa cevap: Application ID, Play Store ve sistemdeki uygulamanın benzersiz tanımlayıcısıdır (build.gradle içinde belirtilir), package name kod ve manifest için ad alanıdır (src/main/java klasörleri ve AndroidManifest.xml içindeki package özniteliği), kaynak ID'leri ise R.* şeklinde üretilen sabitlerdir (strings, drawable, layout vb. öğelere erişim için kullanılır).

Application ID Nedir ve Nerede Değiştirilir

Application ID, uygulamanızın evrensel benzersiz tanımlayıcısıdır (ters domain formatında, örneğin com.mycompany.myapp). Yayınlamayla ilişkilendirilir: Farklı Application ID'lere sahip iki APK farklı uygulamalar olarak kabul edilir.

Nerede görüntülenir ve değiştirilir:

  • app/build.gradle (veya build.gradle.kts) modülünde: applicationId "com.mycompany.myapp" alanı.
  • Yayınlanmadan önce değiştirilebilir; sürüm sonrası değişiklik Google Play'de yeni bir uygulama oluşturulmasına yol açar.

Pratik tavsiye:

  • Şirket domainini kullanın: com.mycompany.app. Bu, çakışma riskini azaltır.

Özellik sanallaştırması (flavors) planlıyorsanız, applicationId Gradle'da flavor başına özelleştirilebilir.

Package Name Nedir ve Bununla Nasıl Çalışılır

Package name, Java/Kotlin sınıflarınız için ad alanı ve AndroidManifest.xml içindeki package özniteliğinin değeridir. Örnek: com.mycompany.myapp.ui.

Nerede aranır ve nasıl güvenle değiştirilir:

  • AndroidManifest.xml: package özniteliği.
  • Proje klasörleri: app/src/main/java/com/mycompany/myapp.
  • Yeniden adlandırmak için Android Studio → Refactor → Rename kullanın — araç import'ları ve manifest'i günceller.

Application ID'den farkı:

  • package name kod organizasyonu içindir; applicationId ise sistemde ve mağazada uygulamanın kimliği içindir. Aynı olabilirler ancak olmak zorunda değiller.

Kaynak ID'leri (R.*): Yapısı ve Kullanım Alanları

Kaynak ID'leri, derleme sırasında R sınıfında üretilen tamsayı sabitleridir. res/ klasöründeki öğelere referans verirler:

  • res/values/strings.xml → R.string.name
  • res/drawable/ → R.drawable.icon
  • res/layout/ → R.layout.activity_main getString(R.string.name), setImageResource(R.drawable.icon), setContentView(R.layout.activity_main) şeklinde kullanın.

Nerede görüntülenir:

  • res/ klasöründeki dosyalar.
  • Üretilen R sınıfı kodda görünür olacaktır (ancak elle düzenlenmez).

R.java dosyasını elle düzenlemeyin — derleme sırasında üzerine yazılır. res içindeki isim çakışmalarında projeyi temizleyin (Build → Clean Project) ve yinelenenleri kontrol edin.

Sık Yapılan Hatalar

  • Yayın sonrası applicationId değiştirmek → kullanıcılar güncellemeleri alamaz.
  • Refactor olmadan paket yeniden adlandırma → bozuk import'lar ve çalışma zamanı hataları.
  • res/ içinde yinelenen isimler → derleme hataları.
  • Kütüphane migrasyonunda manifest/gradle güncellemeyi unutmak → imza uyumsuzluğu.

Sürüm Öncesi Hızlı Kontrol Listesi

  • applicationId'nin Play Console'dakiyle eşleştiğinden emin olun.
  • Kod içindeki paketler mantıklı şekilde organize edilmiş ve Refactor ile yeniden adlandırılmış olmalı.
  • Tüm kaynaklar benzersiz isimlere sahip olmalı (dosyalar için lower_snake_case).
  • Sürüm yapısını oluşturun ve kontrol edin: adb shell pm list packages | grep yourapp

SSS

  • Yayın sonrası applicationId değiştirilebilir mi? Hayır — bu mağazada yeni bir uygulama oluşturur.
  • package name applicationId ile aynı mı olmalı? Hayır, ancak basitlik açısından genellikle aynı yapılır.
  • Kaynak ID hataları nerede bulunur? Derleme loglarında ve res klasöründe — genellikle isim çakışması veya yanlış XML sözdizimi.

Bu kurallara uyarak, yeniden yapılandırma ve yayınlama sırasında çoğu sorunu önleyebilirsiniz.