Android 3.2 API'leri

API Düzeyi: 13

Android 3.2 (HONEYCOMB_MR2), kullanıcılar ve geliştiriciler için yeni özellikler ekleyen artımlı bir platform sürümüdür. Aşağıdaki bölümlerde yeni özellikler ve geliştirici API'lerine genel bir bakış sunulmaktadır.

Android 3.2 platformu, geliştiriciler açısından Android SDK'sı için indirilebilir bir bileşen olarak mevcuttur. İndirilebilir platformda bir Android kitaplığı ve sistem görüntüsünün yanı sıra bir dizi emülatör görünümü ve daha fazlası yer alır. Android 3.2'ye yönelik uygulama geliştirmeye veya test etmeye başlamak için Android SDK Yöneticisi'ni kullanarak platformu SDK'nıza indirin.

Platformda Öne Çıkanlar

Yeni kullanıcı özellikleri

  • Daha geniş bir tablet yelpazesi için optimizasyonlar

    Android 3.2, daha geniş bir tablet cihaz yelpazesinde mükemmel bir kullanıcı deneyimi sağlamak için sistem genelinde çeşitli optimizasyonlar içerir.

  • Sabit boyutlu uygulamalar için uyumluluk yakınlaştırması

    Android 3.2, kullanıcılara sabit boyutlu uygulamaları daha büyük cihazlarda görüntülemeleri için yeni bir yol sağlayan yeni bir uyumluluk yakınlaştırma modunu kullanıma sunar. Yeni mod, tabletler gibi daha büyük ekran boyutlarında çalışacak şekilde tasarlanmamış uygulamalar için standart kullanıcı arayüzü genişletmesine alternatif olarak piksel ölçeklendirmeli bir alternatif sunar. Kullanıcılar bu yeni moda, uyumluluk desteğine ihtiyaç duyan uygulamalara sistem çubuğundaki bir menü simgesinden erişebilir.

  • SD karttan medya senkronizasyonu

    SD kartı destekleyen cihazlarda, kullanıcılar artık medya dosyalarını doğrudan SD karttan kullanan uygulamalara yükleyebilirler. Bir sistem özelliği, dosyalara sistem medya mağazasındaki uygulamalarla erişilebilmesini sağlar.

Yeni geliştirici özellikleri

  • Ekranları yönetmek için genişletilmiş API desteği

    Android 3.2, platformun ekran desteği API'sinde uzantılar sunarak geliştiricilere, çeşitli Android cihazlarda uygulama kullanıcı arayüzünü yönetmeleri için ek yollar sunuyor. API, yeni kaynak niteleyicileri ve yeni manifest özellikleri içerir. Bu özellikler, genelleştirilmiş boyut kategorileri yerine uygulamalarınızın farklı boyutlarda nasıl gösterildiği konusunda size daha hassas kontrol olanağı sunar.

    Platform, sabit boyutlu uygulamalarda ve çeşitli ekran boyutlarını sınırlı destekle mümkün olan en iyi görüntüyü sağlamak için kullanıcı arayüzünü daha küçük bir ekran alanında oluşturan, ardından ekrandaki mevcut alanı dolduracak şekilde ölçeklendiren yeni bir yakınlaştırma uyumluluk modu da sağlamaktadır. Ekran desteği API'si ve sağladığı denetimler hakkında daha fazla bilgi için aşağıdaki bölümlere bakın.

API'ye Genel Bakış

Screens Support API'ları

Android 3.2'de, uygulamaların farklı ekran boyutlarında görüntülenme şekli üzerinde daha fazla kontrol sahibi olmanızı sağlayan yeni ekran desteği API'ları kullanıma sunuluyor. API, platformun genel ekran yoğunluğu modeli de dahil olmak üzere mevcut ekran desteği API'sini temel alır ancak bu API'yi, genelleştirilmiş ekran boyutları (büyük veya çok büyük gibi) yerine, yoğunluktan bağımsız piksel birimlerinde (600 dp veya 720 dp gibi) ölçülen boyutlarına göre hassas bir şekilde hedefleme özelliğiyle genişletir.

Bir uygulamanın kullanıcı arayüzünü tasarlarken yoğunluk soyutlaması sağlaması için platforma güvenebilirsiniz. Bu, uygulamaların cihazlar arasında gerçek piksel yoğunluğundaki farklılıkları telafi etmesine gerek olmadığı anlamına gelir. Uygulama kullanıcı arayüzünü, kullanılabilen yatay veya dikey alan miktarına göre tasarlayabilirsiniz. Platform, kullanılabilir alan miktarını üç yeni özelliği kullanarak ifade eder: smallestWidth, width ve height.

  • Bir ekranın smallestWidth, yoğunluktan bağımsız piksel ("dp") birimleriyle ölçülen temel minimum boyutudur. Ekranın yüksekliği veya genişliğine göre ikisinden kısa olanıdır. Dikey yöndeki bir ekran için smallestWidth, normalde genişliğine, yatay yönde ise yüksekliğine bağlıdır. Her durumda, smallestWidth, ekranın sabit bir özelliğinden türetilir ve değer, yönde ne olursa olsun değişmez. SmallestWidth, sistem tarafından ayrılan ekran alanları hariç olmak üzere uygulama arayüzünün çizilmesi gereken mümkün olan en kısa genişliği temsil ettiğinden uygulamalar açısından önemlidir.
  • Buna karşılık bir ekranın genişliği ve yüksekliği, uygulama düzeni için kullanılabilen geçerli yatay veya dikey alanı temsil eder. Sistem tarafından ayrılmış ekran alanları hariç, "dp" birimleriyle ölçülür. Kullanıcı yatay ve dikey yön arasında geçiş yaptığında ekranın genişliği ve yüksekliği değişir.

Yeni ekranlar için destek API'si, uygulamanın kullanıcı arayüzünü mevcut ekranın en küçükGenişliğine göre yönetmenizi sağlayacak şekilde tasarlanmıştır. Gerekirse kullanıcı arayüzünü mevcut genişliğe veya yüksekliğe göre de yönetebilirsiniz. API bu amaçlar için şu araçları sağlar:

  • Düzenleri ve diğer kaynakları bir minimum smallestWidth, genişlik veya yüksekliğe göre hedeflemek için yeni kaynak niteleyicileri ve
  • Uygulamanın maksimum ekran uyumluluğu aralığını belirtmek için yeni manifest özellikleri

Ayrıca uygulamalar, platformun önceki sürümlerinde olduğu gibi çalışma zamanında sistemi sorgulamaya ve kullanıcı arayüzü ve kaynak yüklemesini yönetmeye devam edebilir.

Yeni API, küçükestWidth, genişlik ve yükseklik aracılığıyla ekranları daha doğrudan hedeflemenize olanak tanıdığından farklı ekran türlerinin tipik özelliklerini anlamak yararlı olacaktır. Aşağıdaki tabloda, "dp" birimlerinde ölçülen bazı örnekler verilmiştir.

Tablo 1. Yoğunluk ve boyutu dp cinsinden sık kullanılan cihazlar.

Tür Yoğunluk (genelleştirilmiş) Boyutlar (dp) en küçükGenişlik (dp)
Temel telefon MDP 320x480 320
Küçük tablet/büyük telefon MDP 480x800 480
7 inç tablet MDP 600x1024 600
10 inç tablet MDP 800 x 1.280 800

Aşağıdaki bölümlerde yeni ekran niteleyicileri ve manifest özellikleri hakkında daha fazla bilgi sağlanmaktadır. Ekran desteği API'sinin nasıl kullanılacağıyla ilgili tüm bilgiler için Birden Fazla Ekranı Destekleme bölümüne bakın.

Ekranlar desteği için yeni kaynak niteleyicileri

Android 3.2'deki yeni kaynak niteleyicileri, ekran boyutu aralıkları için düzenlerinizi daha iyi hedeflemenize olanak tanır. Niteleyicileri kullanarak, yoğunluktan bağımsız piksellerle ölçülen belirli bir minimum smallestWidth, geçerli genişlik veya geçerli yükseklik için tasarlanmış kaynak yapılandırmaları oluşturabilirsiniz.

Yeni niteleyiciler şu şekildedir:

  • swNNNdp — Kaynağın kullanılması gereken minimum smallestWidth değerini belirtir ve "dp" birimlerinde ölçülür. Yukarıda belirtildiği gibi, bir ekranın ensmallestWidth değeri, yönünden bağımsız olarak sabittir. Örnekler: sw320dp, sw720dp, sw720dp.
  • wNNNdp ve hNNNdp: Kaynağın kullanılması gereken minimum genişliği veya yüksekliği belirtir. "dp" birimleri cinsinden ölçülür. Yukarıda belirtildiği gibi, bir ekranın genişliği ve yüksekliği ekranın yönüne göre değişir ve yön her değiştiğinde değişir. Örnekler: w320dp, w720dp, h1024dp.

Gerekirse birden fazla çakışan kaynak yapılandırması da oluşturabilirsiniz. Örneğin, bazı kaynakları 480 dp'den geniş, diğerlerini 600 dp'den geniş ve diğerlerini 720 dp'den geniş ekranlarda kullanmak için etiketleyebilirsiniz. Belirli bir ekran için birden fazla kaynak yapılandırması onaylandığında, sistem en yakın eşleşme olan yapılandırmayı seçer. Belirli bir ekranda hangi kaynakların yükleneceği üzerinde tam kontrol sahibi olmak için kaynakları tek bir niteleyiciyle etiketleyebilir veya yeni ya da mevcut niteleyicileri birleştirebilirsiniz.

Daha önce listelenen tipik boyutlara dayalı olarak, yeni niteleyicileri nasıl kullanabileceğinize ilişkin bazı örnekler aşağıda verilmiştir:

res/layout/main_activity.xml   # For phones
res/layout-sw600dp/main_activity.xml   # For 7” tablets
res/layout-sw720dp/main_activity.xml   # For 10” tablets
res/layout-w600dp/main_activity.xml   # Multi-pane when enough width
res/layout-sw600dp-w720dp/main_activity.xml   # For large width

Platformun eski sürümleri, yeni niteleyicileri yok sayacaktır. Bu nedenle, uygulamanızın tüm cihazlarda iyi görünmesini sağlamak için bunları gerektiğinde karıştırabilirsiniz. Aşağıda birkaç örnek verilmiştir:

res/layout/main_activity.xml   # For phones
res/layout-xlarge/main_activity.xml   # For pre-3.2 tablets
res/layout-sw600dp/main_activity.xml   # For 3.2 and up tablets

Yeni niteleyicilerin nasıl kullanılacağıyla ilgili tüm bilgiler için Yeni boyut niteleyicilerini kullanma bölümüne bakın.

Ekran boyutu uyumluluğu için yeni manifest özellikleri

Çerçeve, uygulamanızın farklı ekran boyutlarında sağladığı desteği yönetmenizi sağlayan yeni bir <supports-screens> manifest özellikleri grubu sunar. Özellikle, uygulamanızın çalışmak üzere tasarlandığı en büyük ve en küçük ekranların yanı sıra, sistemin yeni ekran uyumluluk moduna gerek kalmadan, tasarlandığı en büyük ekranı belirtebilirsiniz. Yukarıda açıklanan kaynak niteleyicilerde olduğu gibi, yeni manifest özellikleri de smallestWidth tarafından belirtildiği gibi uygulamanın desteklediği ekran aralığını belirtir.

Ekran desteği için yeni manifest özellikleri şunlardır:

  • android:compatibleWidthLimitDp="numDp": Bu özellik, uygulamanın uyumluluk moduna gerek kalmadan çalıştırılabileceği maksimum smallestWidth değerini belirtebilmenizi sağlar. Geçerli ekran belirtilen değerden büyükse sistem, uygulamayı normal modda görüntüler ancak kullanıcının sistem çubuğundaki bir ayar aracılığıyla isteğe bağlı olarak uyumluluk moduna geçmesine izin verir.
  • android:largestWidthLimitDp="numDp": Bu özellik, uygulamanın çalışmak üzere tasarlandığı maksimum smallestWidth değerini belirtebilmenizi sağlar. Geçerli ekran belirtilen değerden büyükse sistem, geçerli ekranda en iyi görünümü sağlamak için uygulamayı ekran uyumluluğu moduna zorlar.
  • android:requiresSmallestWidthDp="numDp": Bu özellik, uygulamanın çalışabileceği minimum smallestWidth değerini belirtmenizi sağlar. Geçerli ekran belirtilen değerden küçükse sistem, uygulamanın cihazla uyumsuz olduğunu düşünür ancak uygulamanın yüklenip çalıştırılmasını engellemez.

Not: Google Play şu anda uygulamaları yukarıdaki özelliklere dayalı olarak filtrelememektedir. Filtreleme desteği, sonraki bir platform sürümüne eklenecektir. Ekran boyutuna göre filtreleme gerektiren uygulamalar mevcut <supports-screens> özelliklerini kullanabilir.

Yeni özelliklerin nasıl kullanılacağıyla ilgili tüm bilgiler için Ekran boyutu desteği bildirme bölümüne bakın.

Ekran uyumluluğu modu

Android 3.2, çalıştıkları ekran boyutu kadar büyük ekranları desteklemediğini açıkça belirten uygulamalara yeni bir ekran uyumluluğu modu sunar. Bu yeni "yakınlaştırma" modu piksel ölçeklidir. Uygulamayı daha küçük bir ekran alanında oluşturur ve geçerli ekranı dolduracak şekilde pikselleri ölçeklendirir.

Varsayılan olarak sistem, ekran uyumluluğu modunu bunu gerektiren uygulamalar için kullanıcı seçeneği olarak sunar. Kullanıcılar, sistem çubuğunda bulunan bir denetimi kullanarak yakınlaştırma modunu açıp kapatabilir.

Yeni ekran uyumluluğu modu tüm uygulamalar için uygun olmayabileceğinden platform, uygulamanın manifest özelliklerini kullanarak bunu devre dışı bırakmasına izin verir. Uygulama tarafından devre dışı bırakıldığında sistem, uygulama çalışırken kullanıcılara "yakınlaştırma" uyumluluk modunu seçenek olarak sunmaz.

Not: Uygulamalarınızda uyumluluk modunu nasıl kontrol edeceğinizle ilgili önemli bilgiler için lütfen Android Geliştiricileri Blogu'ndaki Büyük Ekranlardaki Uygulamalar için Yeni Mod makalesini inceleyin.

720p televizyonlar ve benzer cihazlar için yeni ekran yoğunluğu

Android 3.2, 720p televizyonlarda veya orta yoğunlukta ekranlara sahip benzer cihazlarda çalışan uygulamaların ihtiyaçlarını karşılamak için yaklaşık 213 dpi ile yeni bir genel yoğunluklu tvdpi sunar. Uygulamalar, densityDpi içindeki yeni yoğunluğu sorgulayabilir ve televizyonlar ile benzer cihazların kaynaklarını etiketlemek için yeni tvdpi niteleyicisini kullanabilir. Örnek:

res/drawable-tvdpi/my_icon.png   # Bitmap for tv density

Genel olarak, uygulamaların bu yoğunlukla çalışması gerekmez. 720p ekran için çıktının gerekli olduğu durumlarda kullanıcı arayüzü öğeleri, platform tarafından otomatik olarak ölçeklendirilebilir.

kullanıcı arayüzü çerçevesi

  • Parçalar
    • Yeni Fragment.SavedState sınıfı, saveFragmentInstanceState() aracılığıyla bir parça örneğinden alınan durum bilgilerini tutar.
    • Yeni saveFragmentInstanceState() yöntemi, belirtilen Parçanın mevcut örnek durumunu kaydeder. Durum, daha sonra Parçanın mevcut durumla eşleşen yeni bir örneği oluşturulurken kullanılabilir.
    • Yeni setInitialSavedState() yöntemi, bir Fragment'ın ilk oluşturulma sırasındaki ilk kaydedilen durumunu ayarlar.
    • Yeni onViewCreated() geri çağırma yöntemi, onCreateView() öğesinin döndürdüğünü ancak herhangi bir kayıtlı durum Görünüme geri yüklenmeden önce Parçaya bildirir.
    • isDetached() yöntemi, Parçanın kullanıcı arayüzünden açıkça ayrılıp ayrılmadığını belirler.
    • Yeni attach() ve detach() yöntemleri, bir uygulamanın kullanıcı arayüzündeki parçaları yeniden eklemesine veya çıkarmasına olanak tanır.
    • Yeni bir setCustomAnimations() aşırı yükleme yöntemi, giriş/çıkış işlemleri için ve özellikle de arka yığını açarken çalışacak belirli animasyon kaynakları ayarlamanıza olanak tanır. Mevcut uygulama, geri yığın açılırken parçaların farklı davranışlarını dikkate almaz.
  • ActivityInfo ve ApplicationInfo'daki ekran boyutu bilgileri
  • WindowManager'dan görüntü boyutu alma yardımcıları
  • Herkese açık yeni "holografik" stiller
    • Platform artık metinler, işlem çubuğu widget'ları, sekmeler ve daha fazlası için herkese açık çeşitli "holografik" stiller sunuyor. Tam liste için R.style sayfasını inceleyin.
  • LocalActivityManager, ActivityGroup ve LocalActivityManager desteği sonlandırıldı
    • Yeni uygulamalarda bu sınıflar yerine Parçalar kullanılmalıdır. Platformun eski sürümlerinde çalışmaya devam etmek için Android SDK'da bulunan v4 Destek Kitaplığı'nı (uyumluluk kitaplığı) kullanabilirsiniz. v4 Destek Kitaplığı, Fragment API'nin Android 1.6 (API düzeyi 4) ile uyumlu bir sürümünü sunar.
    • Android 3.0 (API düzeyi 11) veya sonraki bir sürüme göre geliştirilen uygulamalarda sekmeler, genellikle kullanıcı arayüzünde yeni ActionBar.newTab() ve işlem çubuğu alanlarına sekmeler yerleştirmek için kullanılan ilgili API'ler kullanılarak sunulur.

Medya çerçevesi

  • Platformun medya sağlayıcısını (MediaStore) kullanan uygulamalar artık medya verilerini cihazın desteklediği durumlarda doğrudan çıkarılabilir SD karttan okuyabilir. Uygulamalar, MTP API'yi kullanarak doğrudan SD kart dosyalarıyla da etkileşimde bulunabilir.

Grafik

IME çerçevesi

  • Değiştirici tuşların mevcut durumunu almak için yeni getModifiers() yöntemi.

USB çerçevesi

  • Cihazın ham USB tanımlayıcılarını almak için yeni getRawDescriptors() yöntemi. Bu yöntemi, üst düzey API'ler aracılığıyla doğrudan desteklenmeyen tanımlayıcılara erişmek için kullanabilirsiniz.

Telefon Hizmeti

Temel yardımcı programlar

Yeni özellik sabitleri

Platform, Google Play gibi harici varlıkları gerekli donanım ve yazılım özellikleri hakkında bilgilendirmek için uygulama manifest dosyalarında bildirebileceğiniz yeni donanım özelliği sabitleri ekler. Bunları ve diğer özellik sabitlerini <uses-feature> manifest öğelerinde tanımlarsınız.

Google Play, uygulamaların yalnızca gereksinimlerinin karşılandığı cihazlarda kullanılabilmesini sağlamak için uygulamaları <uses-feature> özelliklerine göre filtreler.

  • Yatay veya dikey koşullar için özellik sabitleri

    Android 3.2, uygulamaların yatay yönde mi, dikey yönde mi, yoksa ikisinde birden görüntüleme gerektirip gerektirmediklerini belirtmelerine olanak tanıyan yeni özellik sabit değerlerini sunar. Bu sabit değerlerin bildirilmesi, uygulamanın ilgili yönü sunmayan bir cihaza yüklenmemesi gerektiğini gösterir. Bunun tersine, sabit değerlerden biri veya her ikisi de bildirilmezse, uygulamanın bildirilmeyen yönler için bir tercihi olmadığı ve bunları sunmayan bir cihaza yüklenebileceği anlamına gelir.

    Hem yatay hem de dikey yönlerde düzgün çalışan tipik bir uygulamanın normalde yön gerekliliği tanımlaması gerekmez. Daha çok, öncelikli olarak tek bir yön için tasarlanmış bir uygulama (örneğin, bir televizyon için tasarlanmış uygulama), o yönü sağlamayan cihazlarda kullanılamadığından emin olmak için sabit değerlerden birini belirtebilir.

    Manifest isteğinde belirtilen etkinliklerden herhangi biri, android:screenOrientation özelliğini kullanarak belirli bir yönde çalıştırılıyorsa uygulamanın bu yönü gerektirdiğini de beyan eder.

  • Diğer özellik sabitleri

API Farkları Raporu

Android 3.2'deki (API Düzeyi 13) tüm API değişikliklerinin ayrıntılı görünümü için API Farkları Raporu'na bakın.

API Düzeyi

Android 3.2 platformu, çerçeve API'sinin güncellenmiş bir sürümünü sunar. Android 3.2 API'ye, sistemin kendisinde depolanan bir tam sayı tanımlayıcı (13) atanır. "API Düzeyi" adı verilen bu tanımlayıcı, sistemin bir uygulamanın uygulamayı yüklemeden önce sistemle uyumlu olup olmadığını doğru şekilde belirlemesine olanak tanır.

Uygulamanızda Android 3.2'de sunulan API'ları kullanmak için uygulamayı Android 3.2 SDK platformunda sağlanan Android kitaplığına göre derlemeniz gerekir. İhtiyaçlarınıza bağlı olarak, uygulamanın manifest dosyasındaki <uses-sdk> öğesine bir android:minSdkVersion="13" özelliği eklemeniz de gerekebilir.

Daha fazla bilgi için API Düzeyi nedir?