API Düzeyi: 13
Android 3.2 (HONEYCOMB_MR2
), yeni özellikler ve
olanaklar sağlıyor. Aşağıdaki bölümlerde genel bakış sunulmaktadır
hakkında bilgi edindiniz.
Geliştiriciler, Android 3.2 platformu Android SDK için indirilebilir bileşen. İndirilebilir platform şunları içerir: Android kitaplığı ve sistem görüntüsünün yanı sıra bir dizi emülatör görünümü ve daha fazla. Android 3.2'yi kullanarak geliştirmeye veya test etmeye başlamak için Platformu SDK'nıza indirmek için Android SDK Yöneticisi'ni kullanın.
Platformda Öne Çıkanlar
Yeni kullanıcı özellikleri
- Daha geniş bir tablet yelpazesi için optimizasyon
Android 3.2, sistem genelinde çeşitli optimizasyonlar içerir 'u kullanıma sunuyoruz.
- Sabit boyutlu uygulamalar için uyumluluk yakınlaştırması
Android 3.2, yeni bir uyumluluk yakınlaştırma modu sunuyor. kullanıcılarına daha büyük cihazlarda sabit boyutlu uygulamaları görüntülemenin yeni bir yolunu sunuyor. Yeni mod, olmayan uygulamalar için standart kullanıcı arayüzü uzatmaya alternatif olarak piksel ölçekli daha büyük ekran boyutlarında (ör. tabletler) çalışacak şekilde tasarlanır. Yeni mod Google Play Store'a giriş yapmak için uyumluluk desteği.
- SD karttan medya senkronizasyonu
SD kartı destekleyen cihazlarda kullanıcılar artık medya dosyalarını doğrudan yükleyebilir bunları kullanan uygulamalara taşımanızı sağlar. Bir sistem özelliği, dosyaları sistem medya mağazasındaki uygulamalar tarafından erişilebilir.
Yeni geliştirici özellikleri
- Ekran desteği yönetmek için genişletilmiş API
Android 3.2, aşağıdakileri yapmak için platformun ekran desteği API'sine uzantılar sunuyor. geliştiricilere uygulama kullanıcı arayüzünü pek çok farklı cihazda yönetmeleri için Android destekli cihazlar. Bu API, yeni kaynak niteleyiciler ve yeni verileri nasıl etkileyebileceğinizle ilgili daha hassas kontrol uygulamalar, genelleştirilmiş veriler yerine farklı boyutlarda görüntülenir. beden kategorileri.
Sabit boyutlu uygulamalarda ve sınırlı sayıda kullanılabilen uygulamalarda mümkün olan en iyi görüntüyü sağlamak için çeşitli ekran boyutlarını desteklemesine rağmen platform yeni bir yakınlaştırma Kullanıcı arayüzünü daha küçük ekran alanında oluşturan ve sonra ölçeklendiren uyumluluk modu kadar dolduracaktır. Daha fazla bilgi için 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 Desteği API'leri
Android 3.2 size daha fazla bilgi veren API'leri destekleyen yeni ekranları ve uygulamalarının farklı ekran boyutlarında nasıl görüntüleneceğini kontrol edebilirler. API, mevcut ekran desteği API'sini temel alır. Platformun modelinizi genelleştirilmiş ekran yoğunluğu modeliyle genişletir, ancak Belirli ekran aralıklarını boyutlarına göre hedeflemeleri gerekir: yerine, yoğunluktan bağımsız piksel birimleri (ör. 600 dp veya 720 dp genişlik) genel ekran boyutlarına göre (büyük veya çok büyük gibi)
Bir uygulamanın kullanıcı arayüzünü tasarlarken, yüksek performans gösteren Bu, uygulamaların yoğunluğa göre soyutlama yapmak zorunda olmadığı anlamına gelir. arasındaki gerçek piksel yoğunluğundaki farkları telafi etmektir. Siz kullanıcı arayüzünü yatay veya dikey boyuta göre kullanılabilir alan. Platform, kullanılabilir alan adını üç yeni öğe ile ifade ediyor. özellikler: smallestWidth, width ve height.
- Bir ekranın smallestWidth, temel minimum boyutudur. yoğunluktan bağımsız piksel ("dp") birimleriyle ölçülür. Ekranın yüksekliği veya seçildiğinde, ikisi de kısa olanıdır. Dikey yönlü bir ekran için SmallestGenişliği normalde genişliğine, yatay yönde ise yüksek bir değere sahip olmalıdır. Her durumda, en küçük genişlik, ekranda yer alır ve yön ne olursa olsun değer değişmez. En küçükGenişlik mümkün olan en kısa genişliği temsil ettiği için ekran alanları hariç, uygulama arayüzünün çizilmesi gereken öğeler ayırtılması için gereklidir.
- Buna karşılık, bir ekranın genişliği ve yüksekliği uygulama düzeni için kullanılabilir mevcut yatay veya dikey alan, ölçülen "dp" içinde (sistem tarafından ayrılmış ekran alanları hariç) Genişlik ve Kullanıcı yatay yön arasında geçiş yaptığında ekranın yüksekliği değişiyor ve dikey.
Yeni ekranlar desteği API'si, uygulama kullanıcı arayüzünü yönetmenizi sağlamak için tasarlanmıştır geçerli ekranın en küçükGenişliği'ne göre değiştirirsiniz. Ayrıca, Kullanıcı arayüzü, gerekirse mevcut genişliğe veya yüksekliğe göre. Bu amaçlar doğrultusunda API, şu araçları sağlar:
- Bir kullanıcı düzeyinde düzen ve diğer kaynakları hedeflemek için yeni kaynak niteleyiciler minimum genişlik, genişlik veya yükseklik ve
- Uygulamanın maksimum değerini belirtmek için kullanılan yeni manifest özellikleri ekran uyumluluğu aralığı
Buna ek olarak, uygulamalar sistemi sorgulamaya, kullanıcı arayüzünü yönetmeye ve (platformun önceki sürümlerinde olduğu gibi) çalışma zamanında kaynak yükleme.
Yeni API, ekranları SmallestWidth aracılığıyla daha doğrudan hedeflemenize olanak tanıdığından her bir genişliği ve yüksekliği kabul etmekle üç temel cihaz bulunur. Aşağıdaki tabloda "dp" olarak ölçülen örnekler birimleridir.
Tablo 1. Yoğunluğa sahip normal cihazlar ve dp cinsinden boyut belirtin.
Tür | Yoğunluk (genelleştirilmiş) | Boyutlar (dp) | en küçükGenişlik (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 niteleyiciler hakkında daha fazla bilgi verilmektedir. ve manifest özellikleri için de geçerlidir. Ekranı nasıl kullanacağınızla ilgili eksiksiz bilgi için support API, bkz. Çoklu Destekleme Ekranlar.
Ekran desteği için yeni kaynak niteleyiciler
Android 3.2'deki yeni kaynak niteleyiciler, düzenlerinizi daha iyi hedeflemenize olanak tanır. ekran boyutu aralıkları için kullanabilirsiniz. Niteleyicileri kullanarak, bir proje yöneticisinin veya belirli bir minimum genişlik, geçerli genişlik ya da yoğunluktan bağımsız piksel cinsinden ölçülen geçerli yükseklik.
Yeni niteleyiciler:
swNNNdp
— Yayınlanacak en küçük genişlikteki kaynak kullanılmalıdır (dp "dp" cinsinden ölçülür). birimleridir. Yukarıda belirtildiği gibi, ekranın en küçükGenişliği, yönünden bağımsız olarak sabittir. Örnekler:sw320dp
,sw720dp
,sw720dp
.wNNNdp
vehNNNdp
: Minimum değeri belirtir kaynağın kullanılması gereken genişlik veya yükseklik ("dp" cinsinden ölçülür) birimleridir. Farklı yukarıda belirtildiği gibi, bir ekranın genişliği ve yüksekliği ekranın ve yön değiştikçe değişir. Örnekler:w320dp
,w720dp
h1024dp
.
Gerekirse birden fazla çakışan kaynak yapılandırması da oluşturabilirsiniz. Örneğin, bazı kaynakları 480 pikselden geniş herhangi bir ekranda kullanmak için etiketleyebilirsiniz. 600 dp'den geniş olanlar için dp, diğerleri 600 dp'den geniş boyutlar için. Zaman söz konusu ekran için uygun olan birden çok kaynak yapılandırması varsa, en yakın eşleşme olan yapılandırmayı seçer. Üzerinde hassas kontrol sağlamak için hangi kaynakların yüklendiğini görmek isterseniz, kaynakları tek bir ya da birkaç yeni veya mevcut niteleyiciyi birleştirmeniz gerekir.
Daha önce listelenen tipik boyutlara göre aşağıdaki örnekler yeni niteleyicileri kullanabilirsiniz:
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 yoksayacağından Gerektiğinde karıştırarak uygulamanızın tüm cihazlarda iyi görünmesini sağlayın. Burası 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 niteleyicileri kullanma boyut niteleyicileri kullanın.
Ekran boyutu uyumluluğu için yeni manifest özellikleri
Çerçeve, bir dizi yeni <supports-screens>
manifest özelliğini sunar.
uygulamanızın farklı ekran boyutları için
desteklenmesini yönetmeniz gerekir.
Özellikle, uygulamanızın gösterileceği en büyük ve en küçük ekranları belirtebilirsiniz.
tasarlandığı en büyük ekranın yanı sıra
cihazın yeni ekranına ihtiyaç duymadan
uyumluluk modundan emin olun. Yukarıda açıklanan kaynak niteleyicilerde olduğu gibi, yeni
manifest özellikleri, uygulamanın desteklediği ekran aralığını belirtir
ile belirtildiği gibi kullanabilirsiniz.
Ekran desteği için yeni manifest özellikleri şunlardır:
android:compatibleWidthLimitDp="numDp"
- Bu özelliği, uygulamanın etkileneceği maksimum küçük genişlikteki ve uyumluluk moduna ihtiyaç duymadan çalışabilir. Geçerli ekran boyutu sınırından daha büyükse sistem uygulamayı normal modda görüntüler ancak kullanıcının isteğe bağlı olarak tıklayın.android:largestWidthLimitDp="numDp"
- Bu özelliği, uygulamanın etkileneceği maksimum küçük genişlikteki çalışacak şekilde tasarlanır. Geçerli ekran belirtilen değerden büyükse sistem, uygulamanın en iyi şekilde çalışmasını sağlamak için uygulamayı ekran uyumluluk moduna geçerli ekranda görüntüleyin.android:requiresSmallestWidthDp="numDp"
- Bu özelliği, uygulamanın görüntüleneceği en küçük genişlik değerini çalıştırılabilir. Mevcut ekran belirtilen değerden küçükse sistem uygulamanın cihazla uyumsuz olduğunu belirler ancak bunu engellemez yüklenmesini ve çalışmasını engeller.
Not: Google Play şu anda filtreleme özelliğini kullanmamaktadır.
yukarıdaki özelliklerden herhangi birine dayalı reklamlar. Filtreleme desteği,
sonraki bir platform sürümünde eklenmiştir. Şunları gerektiren uygulamalar:
ekran boyutuna göre filtreleme özelliği, mevcut <supports-screens>
özelliğini kullanabilir
özellikleri hakkında daha fazla bilgi edinin.
Yeni özelliklerin nasıl kullanılacağıyla ilgili tüm bilgiler için bkz. ekran boyutu desteği ile ilgili daha fazla bilgi edinin.
Ekran uyumluluğu modu
Android 3.2, uygulamalar için yeni bir ekran uyumluluğu modu sağlar TV'deki kadar büyük ekranları desteklemediğini açıkça beyan ederek reklam birimi. Bu yeni "yakınlaştırma" özelliği bir piksel ölçeklidir. uygulamayı daha küçük bir ekran alanında oluşturur ve ardından pikselleri geçerli ekranı doldur.
Sistem, uygulamalar için kullanıcı seçeneği olarak ekran uyumluluk modunu varsayılan olarak sunar. gerekir. Kullanıcılar, mevcut bir denetimi kullanarak yakınlaştırma modunu açıp kapatabilir tıklayın.
Yeni ekran uyumluluk modu, söz konusu olduğunda, platform, uygulamanın manifest kullanarak bunu devre dışı bırakmasına izin verir. özellikleri hakkında daha fazla bilgi edinin. Uygulama tarafından devre dışı bırakıldığında, sistem "yakınlaştırma" özelliğini sunmuyor. uyumluluk modunu kullanabilirsiniz.
Not: Google Drive'ın nasıl çalıştığıyla ilgili Uygulamalarınızdaki uyumluluk modunu kontrol etmek için lütfen Android'deki Büyük Ekranlardaki Uygulamalar için Yeni Mod makalesini inceleyin Geliştirici Blogu.
720p televizyonlar ve benzer cihazlar için yeni ekran yoğunluğu
720p televizyonlarda veya benzeri bilgisayarlarda çalıştırılan uygulamaların
Android 3.2'de yeni bir genel yoğunluk özelliği kullanıma sunuluyor.
tvdpi
(yaklaşık 213 dpi ile). Uygulamalar,
densityDpi
cinsinden yeni yoğunluk ve
televizyonlar ve televizyonlar için kaynakları etiketlemek üzere yeni tvdpi
niteleyicisi
benzer cihazlar. Örnek:
res/drawable-tvdpi/my_icon.png # Bitmap for tv density
Genel olarak, uygulamaların bu yoğunlukla çalışması gerekmez. Bazı durumlarda 720p ekran için çıktının gerekli olduğu yerlerde kullanıcı arayüzü öğeleri ölçeklendirilebilir otomatik olarak da oluşturabilirsiniz.
Kullanıcı arayüzü çerçevesi
- Parçalar
- Eyalet, yeni
Fragment.SavedState
sınıfında bir parça örneğinden alınan bilgilersaveFragmentInstanceState()
. - Yeni yöntem
saveFragmentInstanceState()
şu anki örnek durumunu kaydeder: devam eder. Bu durum daha sonra yeni bir örnek oluştururken kullanılabilir geçerli durumla eşleşen Parçanın işaretini kaldırın. - Yeni yöntem
setInitialSavedState()
bir Parçanın ilk oluşturulma sırasında kaydedilen ilk durumunu belirler. - Yeni
onViewCreated()
geri çağırma yöntemi, ParçayaonCreateView()
geri döndü, ancak kayıtlı durumları Görünüm'e geri yüklenmeden önce. isDetached()
yöntemi, Parça, kullanıcı arayüzünden açıkça ayrılmışsa- Yeni
attach()
vedetach()
yöntemleri, uygulamanın kullanıcı arayüzündeki parçaları yeniden eklemesini veya çıkarmasını sağlar. - Yeni bir
setCustomAnimations()
aşırı yükleme yöntemi, belirli animasyonları ayarlayabilmenizi sağlar giriş/çıkış işlemleri için çalıştırılacak ve özellikle de tekrar patlatılıyor. Mevcut uygulama, bir kontrol listesi oluşturun.
- Eyalet, yeni
- ActivityInfo ve ApplicationInfo'daki ekran boyutu bilgileri
ActivityInfo
,CONFIG_SCREEN_SIZE
ekliyor ve bit maskeleri olarakCONFIG_SMALLEST_SCREEN_SIZE
configChanges
içinde. Bitler, bir Etkinliğin ve en küçük ekran boyutuyla başa çıkabilir.ApplicationInfo
eklemelargestWidthLimitDp
compatibleWidthLimitDp
, verequiresSmallestWidthDp
alanı için, ilgili<supports-screens>
özelliklerinden türetilir izni verilmelidir.
- WindowManager'dan görüntü boyutunu alma yardımcıları
- Yeni
getSize()
vegetRectSize()
yöntemleri, uygulamaların ekranın ham boyutunu almasını sağlar.
- Yeni
- Yeni herkese açık "holografik" stiller
- Platform artık herkese açık çeşitli "holografik" bilgileri açığa çıkarıyor. stiller
metin, işlem çubuğu widget'ları, sekmeler ve daha fazlası için. Görüntüleyin
Tam liste için
R.style
.
- Platform artık herkese açık çeşitli "holografik" bilgileri açığa çıkarıyor. stiller
metin, işlem çubuğu widget'ları, sekmeler ve daha fazlası için. Görüntüleyin
Tam liste için
LocalActivityManager
,ActivityGroup
veLocalActivityManager
artık kullanımdan kaldırıldı- Yeni uygulamalarda bu sınıflar yerine Fragments kullanılmalıdır. Alıcı: eski sürümlerinde çalışmaya devam etmek istiyorsanız v4 Desteği'ni Kitaplığı (uyumluluk kitaplığı), Android SDK'da kullanılabilir. v4 Desteği Kitaplık, Fragment API'nin aşağıdaki sürümlerle uyumlu olan bir sürümünü sunar: Android 1.6 (API düzeyi 4).
- Android 3.0 (API düzeyi) sürümüne göre geliştirme yapan uygulamalar için
11) veya daha yüksek bir düzeyde, sekmeler genellikle kullanıcı arayüzünde yeni
ActionBar.newTab()
ve ilgili API'ler sekmeleri işlem çubuğu alanına yerleştirmek için kullanılabilir.
Medya çerçevesi
- Platformun medya sağlayıcısını (
MediaStore
) kullanan uygulamalar artık medya verilerini doğrudan SD kart (cihaz tarafından desteklendiği durumlarda). Uygulamalar ayrıca şunları da yapabilir: SD kart dosyalarıyla, MTP API'sını kullanarak doğrudan etkileşimde bulunurlar.
Grafik
- Point ve PointF'te ayrıştırılabilir yardımcı programlar
Point
PointF
sınıflar artıkParcelable
arayüzü vedescribeContents()
,readFromParcel()
vewriteToParcel()
yardımcı program yöntemlerini içeriyor.
IME çerçevesi
- Şunun için yeni
getModifiers()
yöntemi: değiştirici tuşlarının mevcut durumunu geri alamazsınız.
USB çerçevesi
- Şunun için yeni
getRawDescriptors()
yöntemi: cihazın ham USB tanımlayıcılarını alma. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için doğrudan daha yüksek düzeydeki desteklenmeyen tanımlayıcılara erişme yöntemini daha fazla bilgi edineceksiniz.
Ağ
- Ağ türü sabitleri
ConnectivityManager
,TYPE_ETHERNET
veTYPE_BLUETOOTH
sabitlerini toplar.
Telefon Hizmeti
- Yeni
NETWORK_TYPE_HSPAP
ağ türü sabiti.
Temel yardımcı programlar
- Ayrıştırılabilir kamu hizmetleri
- Yeni arayüz
Parcelable.ClassLoaderCreator
şunu sağlar: öğenin oluşturulmakta olduğu ClassLoader'ı alacak uygulamaya. - Yönetim için yeni
adoptFd
,dup()
vefromFd()
ParcelFileDescriptor
nesne.
- Yeni arayüz
- Bağlayıcı ve IBinder
- Yeni yöntem
dumpAsync()
Binder
veIBinder
içinde uygulamaların belirli bir dosyaya döküm yaparak hedefin eşzamansız olarak yürütülmesini sağlar. - Yeni
IBinder
protokolü işlem kodu (TWEET_TRANSACTION
), uygulamaların tweet göndermesine olanak tanır eklemeniz gerekir.
- Yeni yöntem
Yeni özellik sabitleri
Platform, bildirebileceğiniz yeni donanım özelliği sabitleri ekler
Google gibi harici tüzel kişileri bilgilendirmek amacıyla
Gerekli donanım ve yazılım özelliklerinin Play'de oynanması. Siz bunları beyan edin
ve <uses-feature>
manifest öğelerindeki diğer özellik sabitleri için geçerlidir.
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 gereksinimler 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 sunuyor. Bu sabit değerlerin bildirilmesi, uygulamanın, ilgili yönü sunmayan bir cihaza yüklenmemesi gerektiği anlamına gelir. Bunun aksine, sabit değerlerden biri veya her ikisi de bildirilmezse uygulamanın, bildirilmeyen yönler için bir tercihi olmadığını ve bu yönleri sunmayan bir cihaza yüklenebileceğini belirtir.
android.hardware.screen.landscape
— Uygulama, şurada görüntülenmelidir: yatay yönde.android.hardware.screen.portrait
— Uygulama, şurada görüntülenmelidir: dikey yönde.
Hem yatay hem de dikey yönlerde düzgün çalışan tipik bir uygulamanın normalde yön şartı beyan etmesi gerekmez. Daha ziyade, tek bir yön için tasarlanmış bir uygulama (ör. televizyon için tasarlanmış bir uygulama), belirli bir yönü sağlamayan cihazlarda kullanılamamasını sağlamak için sabit değerlerden birini beyan edebilir.
Manifest isteğinde belirtilen etkinliklerden herhangi biri belirli bir yönde gerçekleştiriliyorsa
android:screenOrientation
özelliği kullanılarak; bu işlem, uygulamanın bu yönün kullanılmasını gerektirir. - Diğer özellik sabitleri
android.hardware.faketouch.multitouch.distinct
: Uygulama, iki veya daha fazla noktanın ayrı şekilde izlenebildiği emülasyonlu çoklu giriş desteği gerektirir.android.hardware.faketouch.multitouch.jazzhand
: Uygulama, beş veya daha fazla noktanın ayrı şekilde takip edildiği emülasyonlu çoklu giriş desteği gerektiriyor.
API Farkları Raporu
Android 3.2'deki (API) tüm API değişikliklerinin ayrıntılı görünümü için Seviye 13) API'sine bakın. Farklılıklar Raporu.
API Düzeyi
Android 3.2 platformu, çerçeve API'si. Android 3.2 API bir tam sayı tanımlayıcısına atanır — 13: yani sistemde depolanır. "API Düzeyi" adı verilen bu tanımlayıcı, sistemiyle uyumlu olup olmadığını doğru şekilde belirlemek amacıyla kullanılabilir. sisteme yükleyin.
Android 3.2'de kullanıma sunulan API'leri uygulamanızda kullanmak için
uygulamayı, verilen Android kitaplığına göre derlemeniz gerekir
Android 3.2 SDK platformu. İhtiyaçlarınıza bağlı olarak,
şunu yapabilir:
bir android:minSdkVersion="13"
eklemeniz de gerekiyor
özelliğinin <uses-sdk>
öğesine
manifest'ini kullanabilirsiniz.
Daha fazla bilgi için API nedir? Düzey mi?