Destek Kitaplığı

Not: Android 9.0 (API düzeyi 28) sürümüyle birlikte, destek kitaplığının Jetpack'in bir parçası olan AndroidX adlı yeni bir sürümü var. AndroidX kitaplığı, mevcut destek kitaplığını ve en yeni Jetpack bileşenlerini içerir.

Destek kitaplığını kullanmaya devam edebilirsiniz. Tarihi eserler (27 ve önceki sürümlerle android.support.* olarak paketlenenler) Google Maven'da kullanılabilir olmaya devam eder. Ancak tüm yeni kitaplık geliştirmeleri AndroidX kitaplığında yapılacaktır.

Tüm yeni projelerde AndroidX kitaplıklarını kullanmanızı öneririz. Ayrıca mevcut projeleri AndroidX'e taşımayı da düşünebilirsiniz.

Birden çok API sürümünü destekleyen uygulamalar geliştirirken, Android'in önceki sürümlerinde daha yeni özellikler sunmak veya eşdeğer işlevlere rahatça odaklanmak isteyebilirsiniz. Platformun önceki sürümlerini yönetmek için kod oluşturmak yerine, bu uyumluluk katmanını sağlamak için bu kitaplıklardan yararlanabilirsiniz. Ayrıca Destek Kitaplıkları, daha fazla cihaz üzerinde geliştirme ve destek sürecini kolaylaştırmak için standart Framework API'sinde bulunmayan ek kolaylık sınıfları ve özellikler sağlar.

Başlangıçta uygulamalar için tek bir ikili kitaplık olan Android Destek Kitaplığı, zaman içinde uygulama geliştirmeye yönelik bir kitaplık paketine dönüştü. Bu kitaplıkların birçoğu, gerekli olmasa bile artık uygulama geliştirme sürecinin bir parçası olarak önemle tavsiye edilir.

Bu dokümanda, destek kitaplığının bileşenlerini ve uygulamanızda etkili bir şekilde nasıl kullanabileceğinizi anlamanıza yardımcı olacak bir genel bakış sunulmaktadır.

Dikkat: Destek Kitaplığı 26.0.0 sürümünden (Temmuz 2017) itibaren, çoğu destek kitaplığında desteklenen minimum API düzeyi çoğu kitaplık paketi için Android 4.0'a (API düzeyi 14) yükselmiştir. Daha fazla bilgi için bu sayfadaki Sürüm Desteği ve Paket Adları bölümüne bakın.

Destek Kitaplıklarının Kullanımları

Destek kitaplıklarının birkaç farklı kullanımı vardır. Platformun önceki sürümleri için geriye dönük uyumluluk sınıfları, bunlardan yalnızca biridir. Uygulamanızda destek kitaplıklarını kullanabileceğiniz yolların eksiksiz bir listesini aşağıda bulabilirsiniz:

  • Yeni API'ler için Geriye Dönük Uyumluluk: Destek kitaplıklarının büyük bir kısmı yeni çerçeve sınıfları ve yöntemleri için geriye dönük uyumluluk sağlar. Örneğin, Fragment destek sınıfı, Android 3.0'dan (API düzeyi 11) önceki sürümleri çalıştıran cihazlarda parçalar için destek sağlar.
  • Kolaylık ve Yardımcı Sınıflar: Destek kitaplıkları, özellikle kullanıcı arayüzü geliştirmeleri için çok sayıda yardımcı sınıf sağlar. Örneğin RecyclerView sınıfı, çok uzun listeleri görüntülemek ve yönetmek için bir kullanıcı arayüzü widget'ı sağlar. Bu widget, API düzeyi 7 ve üzeri Android sürümlerinde kullanılabilir.
  • Hata Ayıklama ve Yardımcı Programlar: Yöntem girişlerinde iyileştirilmiş kod lint denetimleri için support-annotations kitaplığı ve 65.536'dan fazla yöntemle uygulamaları yapılandırıp dağıtmaya yönelik Multidex desteği dahil olmak üzere uygulamanıza yerleştirdiğiniz kodun dışında fayda sağlayan çeşitli özellikler bulunur.

Destek ve Çerçeve API'lerini kullanma

Destek Kitaplıkları, Android Framework'teki API'lere çok benzeyen sınıflar ve yöntemler sağlar. Bunu öğrendikten sonra API'nin çerçeve sürümünü mü yoksa destek kitaplığındaki karşılığını mı kullanmanız gerektiğini merak edebilirsiniz. Aşağıda, Çerçeve API'leri yerine destek kitaplığı sınıflarını ne zaman kullanmanız gerektiğiyle ilgili yönergeler verilmiştir:

  • Belirli Bir Özellik için Uyumluluk: Platformun önceki sürümlerini çalıştıran cihazlarda yeni bir platform özelliğini desteklemek istiyorsanız destek kitaplığındaki eşdeğer sınıf ve yöntemleri kullanın.
  • İlgili Kitaplık Özellikleri için Uyumluluk: Daha gelişmiş destek kitaplığı sınıfları, bir veya daha fazla ek destek kitaplığı sınıfına bağlı olabilir. Bu nedenle, bu bağımlılıklar için destek kitaplığı sınıflarını kullanmanız gerekir. Örneğin, ViewPager destek sınıfı, FragmentPagerAdapter veya FragmentStatePagerAdapter destek sınıflarıyla kullanılmalıdır.
  • Genel Cihaz Uyumluluğu - Uygulamanızla geriye dönük uyumlu bir şekilde kullanmayı düşündüğünüz belirli bir platform özelliği yoksa, uygulamanızda destek kitaplığı sınıflarını kullanmak iyi bir fikirdir. Örneğin, Activity çerçevesi sınıfı yerine ActivityCompat kullanmak isteyebilirsiniz. Böylece daha sonra, Android 6.0'da kullanıma sunulan yeni izin modelini (API düzeyi 23 (API düzeyi 23) dahil etme gibi daha yeni özelliklerden yararlanabilirsiniz.

Platform API sınıflarının uyumlu bir uygulamasını sağlayan Destek Kitaplığı sınıfları, ana cihaz platform sürümünün sınırlamaları nedeniyle son sürümde bulunan işlevlerin tamamını sağlayamayabilir. Bu tür durumlarda Destek Kitaplığı sınıfları, sorunsuz bir şekilde indirgenecek şekilde tasarlanmıştır ve mevcut platform API'sinin tüm işlevlerini veya verilerini sağlamayabilir. Bu nedenle, kullandığınız kitaplık sınıfları ve yöntemleriyle ilgili referans dokümanları inceleyip uygulamanızın desteklediği platformun en eski sürümünü çalıştıran cihazlarda kapsamlı bir test yapmanız gerekir.

Not: Destek kitaplıkları, her çerçeve API'si için eşdeğer sınıflar ve yöntemler sağlamaz. Bazı durumlarda, bir çerçeve yöntemi çağrısını açık bir SDK sürüm kontrolüyle sarmanız ve cihazda kullanılamayan yöntemleri işlemek için alternatif kod sağlamanız gerekebilir. Kodunuzda sürüm kontrollerini kullanma hakkında daha fazla bilgi için Farklı Platform Sürümlerini Destekleme bölümüne bakın.

Sürüm Desteği ve Paket Adları

Bazı Destek Kitaplığı paketleri, support-v4 paketi gibi bir v# gösterimi kullanılarak başlangıçta destekledikleri minimum API düzeyini belirten paket adlarına sahiptir. Destek Kitaplığı 26.0.0 sürümünden (Temmuz 2017'de kullanıma sunulmuştur) itibaren tüm destek kitaplığı paketleri için desteklenen minimum API düzeyi Android 4.0 (API düzeyi 14) olarak değiştirilmiştir. Bu nedenle, destek kitaplığının en yeni sürümleriyle çalışırken v# paket gösteriminin minimum API destek düzeyini belirttiğini varsaymamalısınız. Son sürümlerdeki bu değişiklik, v4 ve v7 içeren kitaplık paketlerinin, destekledikleri minimum API düzeyine eşdeğer olduğu anlamına da gelir. Örneğin, hem support-v4 hem de support-v7 paketinin 26.0.0 ve üzeri sürümlerindeki Destek Kitaplığı sürümleri için en az 14 API düzeyi 14'ü destekler.

Destek Kitaplığı Sürüm Sürümleri

Destek Kitaplığı'nın 24.2.0 veya 25.0.1 gibi sürüm sürümü, ilgili sürümde tüm kitaplıklar tarafından desteklenen minimum API düzeyinden farklıdır.Sürüm sürümü numarası, platform API'sinin hangi sürümüne göre derlendiğini ve dolayısıyla, kitaplıkların bu sürümüne en yeni API'lerin içerebileceğini belirtir.

Özellikle sürüm numarasının ilk bölümü (ör. 24.2.0 sürümündeki 24 bölüm), genellikle platform API'sinin yayınlandığı sırada kullanıma sunulan sürümüne karşılık gelir. Destek kitaplığının sürüm düzeyi, bu API seviyesinin bazı özelliklerini içerdiğini gösterir ancak yeni platform API sürümünde yayınlanan tüm özelliklerle uyumluluk sağladığını varsaymamalısınız.

Kitaplık Bağımlılıkları

Android Destek Kitaplığı paketindeki çoğu kitaplık, bir veya daha fazla kitaplığa bağımlıdır. Örneğin, neredeyse tüm destek kitaplıklarının support-compat paketine bağımlılığı vardır. gradle derleme aracı, bağımlı kitaplıkları otomatik olarak dahil ederek kitaplık bağımlılıklarını sizin için yönettiğinden, genel olarak destek kitaplığı bağımlılıkları konusunda endişelenmenize gerek yoktur.

Uygulamanızda hangi kitaplıkların ve kitaplık bağımlılıklarının yer aldığını görmek isterseniz Android Destek Kitaplıkları ve diğer kitaplıklar dahil olmak üzere ilgili projenin bağımlılıklarının raporunu almak için uygulama geliştirme projenizin derleme kökünde aşağıdaki komutu çalıştırın:

gradle -q dependencies your-app-project:dependencies

Gradle kullanarak geliştirme projenize destek kitaplıkları ekleme hakkında daha fazla bilgi için Destek Kitaplığı Kurulumu sayfasını inceleyin. Gradle ile çalışma hakkında daha fazla bilgi için Derlemenizi Yapılandırma bölümüne bakın.

Tüm Android Destek Kitaplıklarının da son sürümlerde platformun belirli bir temel düzeyine (Android 4.0 (API düzeyi 14) veya sonraki sürümler) bağlı olduğunu unutmayın.