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 dış görünümü ve daha fazlası bulunur. Android 3.2'ye yönelik 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 çeşitli tablet cihazlarda 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ülemenin yeni bir yolunu sunan yeni uyumluluk yakınlaştırma modunu kullanıma sunuyor. Yeni mod, tablet 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 yeni moda, uyumluluk desteği gereken uygulamalar için sistem çubuğundaki bir menü simgesinden erişebilirler.

  • SD karttan medya senkronizasyonu

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

Yeni geliştirici özellikleri

  • Ekran desteği yönetimi için genişletilmiş API

    Android 3.2, platformun ekran desteği API'sinde uzantılar sunarak geliştiricilere, çeşitli Android destekli 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 kategorilerine bağlı kalmak yerine, uygulamalarınızın farklı boyutlarda nasıl görüntüleneceği konusunda daha hassas bir kontrole sahip olmanızı sağlar.

    Platform, çeşitli ekran boyutlarını sınırlı olarak destekleyen sabit boyutlu uygulamalarda ve uygulamalarda mümkün olan en iyi görüntüyü sunmak 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 uyumluluğu modu da sunar. 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ış

Ekran Desteği API'leri

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 ekranları destekleyen API'ler 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 belirli ekran aralıklarını, genelleştirilmiş ekran boyutları (büyük veya xlarge gibi) yerine yoğunluktan bağımsız piksel birimleri (600 dp veya 720 dp genişliği gibi) olarak ö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ı için platforma güvenebilirsiniz. Diğer bir deyişle, uygulamaların cihazlar arasında gerçek piksel yoğunluğundaki farklılıkları telafi etmesi gerekmez. Uygulama kullanıcı arayüzünü, kullanılabilen yatay veya dikey alan miktarına göre tasarlayabilirsiniz. Platform, kullanılabilir alan miktarını şu üç yeni özelliği kullanarak ifade eder: smallestwidth, width ve height.

  • Bir ekranın smallestwidth, yoğunluktan bağımsız piksel ("dp") birimleri cinsinden ölçülen temel minimum boyutudur. Ekran yüksekliği veya genişliği, ikisinden daha 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. Tüm durumlarda, smallestwidth, ekranın sabit bir özelliğinden türetilir ve değer, yönden bağımsız olarak değişmez. Smallestwidth; sistem tarafından ayrılan ekran alanları hariç olmak üzere, uygulama kullanıcı 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 width ve height değerleri, sistem tarafından ayrılmış ekran alanları hariç olmak üzere "dp" birimleri olarak ölçülen, uygulama düzeni için mevcut yatay veya dikey alanı temsil eder. 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, uygulama kullanıcı arayüzünü mevcut ekranın en küçük Genişliğine göre yönetmenize olanak tanıyacak şekilde tasarlanmıştır. Ayrıca, gerektiğinde kullanıcı arayüzünü mevcut genişliğe veya yüksekliğe göre de yönetebilirsiniz. API bu amaçlar için aşağıdaki araçları sağlar:

  • Düzenleri ve diğer kaynakları minimum smallestwidth, genişlik veya yüksekliğe göre hedeflemek için yeni kaynak niteleyiciler
  • 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 sorgulayabilir ve kullanıcı arayüzü ve kaynak yüklemesini yönetmeye devam edebilir.

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

Tablo 1. dp cinsinden yoğunluk ve boyuta sahip normal cihazlar.

Tür Yoğunluk (genelleştirilmiş) Boyutlar (dp) SmallestGenişliği (dp)
Temel telefon mdpi 320x480 320
Küçük tablet/büyük telefon mdpi 480x800 480
7 inç tablet mdpi 600 x 1.024 600
10 inç tablet mdpi 800x1.280 800

Aşağıdaki bölümlerde yeni ekran niteleyicileri ve manifest özellikleri hakkında daha fazla bilgi verilmektedir. 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 için yeni kaynak niteleyiciler desteği

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 şunlardır:

  • swNNNdp: Kaynağın kullanılması gereken minimum smallestWIDTH değerini belirtir ve "dp" birimleri cinsinden ölçülür. Yukarıda belirtildiği gibi, bir ekranın en küçük Genişliği yönü ne olursa olsun 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 bahsedildiğ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 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ş ekranlarda ve diğerlerini 720 dp'den geniş herhangi bir ekranda kullanmak için etiketleyebilirsiniz. Belirli bir ekran için birden fazla kaynak yapılandırması uygun olduğunda, sistem en yakın eşleşme olan yapılandırmayı seçer. Belirli bir ekranda hangi kaynakların yükleneceğini hassas bir şekilde kontrol etmek 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 yoksayacaktır. Dolayısıyla uygulamanızın tüm cihazlarda iyi görünmesini sağlamak için bunları gerektiği gibi 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 verdiği desteği yönetmenize olanak tanıyan 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, tasarlandığı en büyük ekranın yanı sıra sistemin yeni ekran uyumluluk moduna gerek kalmadan çalışacağını belirtebilirsiniz. Yukarıda açıklanan kaynak niteleyicilerde olduğu gibi yeni manifest özellikleri, smallestwidth tarafından belirtilen şekilde 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 belirtmenizi sağlar. Geçerli ekran belirtilen değerden büyükse sistem, uygulamayı normal modda görüntüler, ancak kullanıcının isteğe bağlı olarak sistem çubuğundaki bir ayar aracılığıyla uyumluluk moduna geçmesine izin verir.
  • android:largestWidthLimitDp="numDp" - Bu özellik, uygulamanın çalışmak için tasarlandığı maksimum smallestWIDTH değerini belirtmenizi 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ıştırılabileceği minimum smallestWIDTH değerini belirtmenizi sağlar. Geçerli ekran belirtilen değerden küçükse sistem, uygulamanın cihazla uyumsuz olduğunu varsayar ancak uygulamanın yüklenip çalıştırılmasını engellemez.

Not: Google Play şu anda uygulamaları yukarıdaki özelliklerden herhangi birine göre filtrelememektedir. Filtreleme desteği sonraki bir platform sürümünde 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 uygulamalar için yeni bir ekran uyumluluğu modu sağlar. Bu yeni "yakınlaştırma" modu piksel ölçeğine dayalıdır ve uygulamayı daha küçük bir ekran alanında oluşturur. Ardından pikselleri, mevcut ekranı dolduracak şekilde ölçeklendirir.

Varsayılan olarak sistem, ekran uyumluluğu modunu 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'ye sahip yeni bir genel yoğunluklu yoğunluğu (tvdpi) kullanıma sunar. Uygulamalar, densityDpi içindeki yeni yoğunluğu sorgulayabilir ve televizyonlar ve benzer cihazlar için kaynakları etiketlemek üzere yeni tvdpi niteleyicisini kullanabilir. Örneğin:

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

Genel olarak, uygulamaların bu yoğunlukla çalışması gerekmez. 720p ekranda çı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 içerir.
    • 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ğini oluştururken kullanılabilir.
    • Yeni yöntem (setInitialSavedState()), bir parçanın ilk oluşturulma sırasındaki ilk kaydedilen durumunu belirler.
    • Yeni onViewCreated() geri çağırma yöntemi, kaydedilen herhangi bir durum Görünüme geri yüklenmeden önce onCreateView() öğesinin geri döndüğünü Fragment'a bildirir.
    • isDetached() yöntemi, Parçanın kullanıcı arayüzünden açık bir şekilde 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 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ı başlatırken parçaların farklı davranışlarını hesaba katmaz.
  • ActivityInfo ve ApplicationInfo'daki ekran boyutu bilgileri
  • WindowManager'dan görüntüleme boyutunu alma yardımcıları
  • Yeni herkese açık "holografik" stiller
    • Platformda metin, işlem çubuğu widget'ları, sekmeleri ve daha fazlası için herkese açık çeşitli "holografik" stiller gösteriliyor. Tam liste için R.style sayfasını ziyaret edin.
  • LocalActivityManager, ActivityGroup ve LocalActivityManager desteği sonlandırıldı
    • Yeni uygulamalar, bu sınıflar yerine Fragments (Fragment) kullanmalı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ü sağlar.
    • Android 3.0 (API düzeyi 11) veya sonraki sürümlere göre geliştirilen uygulamalarda sekmeler, genellikle kullanıcı arayüzünde yeni ActionBar.newTab() ve sekmelerin işlem çubuğu alanına yerleştirilmesi için ilgili API'ler kullanılarak sunulur.

Medya çerçevesi

  • Platformun medya sağlayıcısını (MediaStore) kullanan uygulamalar artık medya verilerini doğrudan çıkarılabilir SD karttan okuyabilir (cihaz tarafından desteklendiği durumlarda). 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 için ham USB tanımlayıcılarını almak için yeni getRawDescriptors() yöntemi. Bu yöntemi, doğrudan üst düzey API'ler aracılığıyla 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 açıklarsı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 her iki yönde mi görüntüleme gerektirdiklerini belirtmelerini sağlayan yeni özellik sabitleri sunar. Bu sabit değerlerin belirtilmesi, uygulamanın ilgili yönü sunmayan bir cihaza yüklenmemesi gerektiğini gösterir. Bunun aksine, sabit değerlerden biri veya her ikisi de bildirilmezse uygulamanın beyan edilmeyen yönler için bir tercihinin olmadığını ve bunları sunmayan bir cihaza yüklenebileceğini gösterir.

    Hem yatay hem de dikey yönlerde düzgün çalışan tipik bir uygulamanın yön şartı beyan etmesi gerekmez. Bunun yerine, televizyon için tasarlanmış bir uygulama gibi öncelikli olarak bir yön için tasarlanmış bir uygulama, bu yönü sağlamayan cihazlarda kullanılamadığını garanti etmek için sabit değerlerden birini belirtebilir.

    Manifest isteğinde tanımlanan herhangi bir etkinlik, android:screenOrientation özelliğini kullanarak belirli bir yönde çalıştırılıyorsa uygulamanın bu yönü gerektirdiğini de belirtir.

  • 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 Farklılıkları 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" olarak adlandırılan bu tanımlayıcı, sistemin, uygulamayı yüklemeden önce uygulamanın sistemle uyumlu olup olmadığını doğru şekilde belirlemesine olanak tanır.

Uygulamanızda Android 3.2'de sunulan API'leri 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 uygulama manifestindeki <uses-sdk> öğesine bir android:minSdkVersion="13" özelliği de eklemeniz gerekebilir.

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