API Düzeyi: 9
Geliştiriciler, Android 2.3
(GINGERBREAD
) platformu, Android SDK'sı için indirilebilir bir bileşen olarak sunulur. İ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 2.3'e yönelik uygulama geliştirmeye veya test etmeye başlamak için Android SDK Manager'ı kullanarak platformu SDK'nıza indirin.
API'ye Genel Bakış
Aşağıdaki bölümlerde, yeni özellikler ve çerçeve API'sinde önceki sürümden beri yapılan değişiklikler de dahil olmak üzere 2.3'te geliştiriciler için sunulan yeniliklere teknik bir genel bakış sunulmaktadır.
SIP tabanlı VoIP
Platformda artık geliştiricilerin internet telefon uygulamaları geliştirmesine olanak tanıyan bir SIP protokolü yığını ve çerçeve API'si bulunuyor. Uygulamalar, API'yi kullanarak oturumları, aktarım düzeyinde iletişimi veya sesleri yönetmek zorunda kalmadan sesli arama özellikleri sunabilir. Bunlar, platformun SIP API'si ve hizmetleri tarafından şeffaf bir şekilde işlenir.
SIP API, android.net.sip
paketinde mevcuttur. Anahtar sınıfı SipManager
olan uygulamalar, SIP profillerini oluşturup yönetmek, ardından sesli arama başlatmak ve sesli aramaları almak için bu sınıfı kullanır. Sesli arama yapıldığında, uygulamalar çağrıları sessize alabilir, hoparlör modunu açabilir, DTMF tonları gönderebilir ve daha pek çok şey yapabilir. Uygulamalar, genel SIP bağlantıları oluşturmak için SipManager
özelliğini de kullanabilir.
Platformun temel SIP yığını ve hizmetleri, üreticinin ve ilişkili operatörün takdirine bağlı olarak cihazlarda kullanılabilir. Bu nedenle uygulamalar, arama işlevini kullanıcılara göstermeden önce SIP desteğinin mevcut olup olmadığını kontrol etmek için isApiSupported()
yöntemini kullanmalıdır.
Uygulamaların, SIP API'yi kullanmak için manifest dosyalarında <uses-permission
android:name="android.permission.INTERNET">
ve <uses-permission
android:name="android.permission.USE_SIP">
değerlerini belirterek kullanıcıdan izin istemesi gerekir.
Ayrıca geliştiriciler, Google Play'de uygulamalarının, cihazlarında platformun SIP yığını ve hizmetleri bulunmayan kullanıcılar tarafından bulunamayacağı şekilde filtreleme isteğinde bulunabilirler. Filtreleme isteğinde bulunmak için uygulama manifest dosyasına <uses-feature
android:name="android.software.sip"
android:required="true">
ve <uses-feature
android:name="android.software.sip.voip">
öğelerini ekleyin.
Daha fazla bilgi için SIP geliştirici kılavuzunu okuyun.
Near Field Communication (NFC)
Android 2.3, geliştiricilerin çıkartmalara, akıllı posterlere ve hatta diğer cihazlara yerleştirilmiş öğeleri etiketlemek için NFC özellikli bir cihaza dokunduğunda keşfedilen NDEF etiketlerini okuyabilmelerini sağlayan bir NFC yığını ve çerçeve API'si içerir.
Platform, kapsama alanına giren etiketleri keşfetmek için cihaz donanımıyla çalışan temel NFC hizmetlerini sağlar. Platform, bir etiket keşfettiğinde bir Intent yayınlayarak uygulamaları bilgilendirir ve etiketin NDEF mesajlarını Intent'e ekstra olarak ekler. Uygulamalar, hedeflenen etiketleri ve mesajları tanımak ve işlemek için Intent filtreleri oluşturabilir. Örneğin, Intent ile etiket aldıktan sonra uygulamalar NDEF mesajlarını çıkarır, depolar, kullanıcıyı uyarır veya başka şekillerde işler.
NFC API, android.nfc
paketinde mevcuttur. Önemli sınıflar şunlardır:
NfcAdapter
, cihazdaki NFC donanımını temsil eder.NdefMessage
, bir NDEF veri mesajını temsil eder. Veri taşıyan "kayıtların", cihazlar ve etiketler arasında iletildiği standart biçimdir. Uygulamalar bu mesajlarıACTION_TAG_DISCOVERED
Intents'ten alabilir.NdefRecord
, paylaşılan verinin türünü açıklayan ve verileri taşıyan birNdefMessage
içinde sunulur.
NFC iletişimi, cihaz donanımındaki kablosuz teknolojiye bağlıdır. Bu nedenle, belirli cihazlarda platformun NFC özelliklerinin desteği, üreticileri tarafından belirlenir. Uygulamalar, mevcut cihazda NFC desteğini belirlemek amacıyla NfcAdapter
işlevini sorgulamak için isEnabled()
yöntemini çağırabilir. Ancak temel donanım desteğinden bağımsız olarak NFC API her zaman mevcuttur.
NFC API'yi kullanmak için uygulamaların, manifest dosyalarında <uses-permission
android:name="android.permission.NFC">
öğesini tanımlayarak kullanıcıdan izin istemesi gerekir.
Ayrıca geliştiriciler, Google Play'de uygulamalarının, cihazları NFC'yi desteklemeyen kullanıcılar tarafından bulunamayacağı şekilde filtreleme isteğinde bulunabilirler. Filtreleme isteğinde bulunmak için <uses-feature android:name="android.hardware.nfc"
android:required="true">
öğesini uygulamanın manifest dosyasına ekleyin.
NFC API'yi kullanan örnek bir uygulamaya bakmak için NFCDemo'ya bakın.
Jiroskop ve diğer sensörler
Android 2.3; jiroskop, dönme vektörü, doğrusal ivme, yerçekimi ve barometre gibi birçok yeni sensör okuma türü için platform ve API desteği ekliyor. Geliştiriciler, cihaz konumu ve hareketindeki hassas değişikliklere hızlı ve sorunsuz şekilde yanıt veren uygulamalar oluşturmak için yeni sensör ölçümlerini kullanabilir. Sensor API, uygulama çerçevesi üzerinde veya yerel kodda çalıştırılmaları fark etmeksizin, ilgili uygulamalardaki jiroskop ve diğer sensör değişikliklerini bildirir.
Bir cihazda kullanılabilen donanım sensörü grubunun, cihaz üreticisinin takdirine bağlı olarak değişebileceğini unutmayın.
Geliştiriciler, cihazlarında jiroskop sensörü olmayan kullanıcıların uygulamaları tarafından bulunamayacağı şekilde Google Play'de filtreleme isteğinde bulunabilirler. Bunu yapmak için uygulama manifest dosyasına <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
ekleyin.
API ayrıntıları için Sensor
sayfasına bakın.
Birden fazla kamera desteği
Uygulamalar artık bir cihazda mevcut olan tüm kameralardan (fotoğraf veya video çekimi için) yararlanabilir. Camera
, uygulamaların mevcut kamera sayısını ve her birinin benzersiz özelliklerini sorgulamasına olanak tanır.
- Yeni
Camera.CameraInfo
sınıfı kameranın konum özelliklerini (yön, öne veya arkaya) depolar. Camera
sınıfındaki yenigetNumberOfCameras()
vegetCameraInfo()
yöntemleri, uygulamaların mevcut kameraları sorgulamasına ve ihtiyaç duyduğu kamerayı açmasına olanak tanır.- Yeni
get()
yöntemi, uygulamaların belirli bir kamera içinCamcorderProfile
almasını sağlar. - Yeni
getJpegEncodingQualityParameter()
, uygulamaların belirli bir kamera için hareketsiz görüntü yakalama kalite düzeyini elde etmesine olanak tanır.
Ön kameraya erişmeye yönelik örnek koda bakmak için ApiDemos örnek uygulamasındaki KameraPreview.java bölümüne bakın.
Kamera API'si şunları da ekler:
- Kameralar için odak mesafesi, odak modu ve önizleme fps maksimum/minimum parametreleri gibi yeni parametreler. Kamera parametrelerini almak için yeni
getFocusDistances()
,getPreviewFpsRange()
vegetSupportedPreviewFpsRange()
özelliklerinin yanı sıra önizleme kare hızını ayarlamak içinsetPreviewFpsRange()
.
Karıştırılabilir ses efektleri
Platformun medya çerçevesi, her parçaya veya tüm dünyada kullanılan ses efektlerine (bas güçlendirme, kulaklık sanallaştırma, denkleştirme ve yankı gibi) destek sağlıyor.
- Yeni
android.media.audiofx
paketi, ses efektlerine erişmek için API sağlar. - Yeni
AudioEffect
, Android ses çerçevesi tarafından sağlanan ses efektlerini kontrol etmek için temel sınıftır. - Bir uygulamanın, bir ses efekti grubunu
AudioTrack
veyaMediaPlayer
örneğiyle ilişkilendirmesine olanak tanıyan yeni ses oturumu kimliği. - Belirli bir oturum kimliğiyle
AudioTrack
oluşturmanıza olanak tanıyan yeniAudioTrack
sınıfı oluşturucu. YeniattachAuxEffect()
,getAudioSessionId()
vesetAuxEffectSendLevel()
yöntemleri. - Yeni
attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
vesetAuxEffectSendLevel()
yöntemleri ile destekleyici türler.
Ses efektleri için örnek koda bakmak için ApiDemos örnek uygulamasında AudioFxDemo.java'ya bakın.
Medya çerçevesi şunları da ekler:
- JPEG dosyaları için EXIF meta verilerinde yeni rakım etiketi desteği. EXIF rakım etiketinin değerini almak için yeni bir
getAltitude()
yöntemi kullanır. - Yeni
setOrientationHint()
yöntemi, uygulamanın video çekimi sırasındaMediaRecorder
yönünü bildirmesine olanak tanır.
İndirme yöneticisi
Platformda, uzun süreli HTTP indirmelerini işleyen yeni bir DownloadManager
sistem hizmeti bulunuyor. Uygulamalar, bir URI'nın belirli bir hedef dosyaya indirilmesini isteyebilir. DownloadManager
, indirme işlemini arka planda gerçekleştirir, HTTP etkileşimleriyle ilgilenir ve hatalardan ya da bağlantı değişikliklerinden ve sistem yeniden başlatmalarından sonra indirmeleri yeniden dener.
- Uygulamalar,
getSystemService(String)
yöntemini çağırıpDOWNLOAD_SERVICE
ileterekDownloadManager
sınıfının bir örneğini elde edebilir. Bu API üzerinden indirme isteğinde bulunan uygulamalar, kullanıcı bir bildirimde veya İndirilenler kullanıcı arayüzünden çalıştırılan bir indirme işlemini tıkladığında uygun şekilde işlenmek üzereACTION_NOTIFICATION_CLICKED
için bir yayın alıcısı kaydetmelidir. DownloadManager.Request
sınıfı, bir uygulamanın yeni bir indirme işlemi istemek için gerekli tüm bilgileri (ör. istek URI'sı ve indirme hedefi) sağlamasına olanak tanır. İstek URI'si zorunlu tek parametredir. Varsayılan indirme hedefinin, sistem kullanımı için yer açması gerektiğinde sistemin dosyanızı silebileceği paylaşılan bir birim olduğunu unutmayın. İndirilen bir dosyanın kalıcı olarak depolanması için harici depolama alanında bir indirme hedefi belirtin (bkz.setDestinationUri(Uri)
).DownloadManager.Query
sınıfı, bir uygulamanın etkin indirmeleri sorgulamasına ve filtrelemesine olanak tanıyan yöntemler sunar.
KatıMod
Geliştiricilerin uygulamalarının performansını izlemelerine ve iyileştirmelerine yardımcı olmak için platform, StrictMode
adlı yeni bir sistem olanağı sunuyor.
StrictMode, bir uygulamada uygulandığında, uygulamanın ana iş parçacığında gerçekleşen etkinlik (kullanıcı arayüzü işlemlerinin alındığı ve animasyonların da gerçekleştiği durum) gibi uygulama performansını düşürebilecek, yanlışlıkla disk veya ağ etkinliğiyle ilgili olarak geliştiriciyi yakalar ve bilgilendirir.
Geliştiriciler, StrictMode'da ortaya çıkan ağ ve disk kullanım sorunlarını değerlendirip gerektiğinde bunları düzelterek ana iş parçacığının daha duyarlı olmasını sağlayabilir ve ANR iletişim kutularının kullanıcılara gösterilmesini engelleyebilir.
StrictMode
, çekirdek sınıftır ve sistemle sanal makine ile ana entegrasyon noktasıdır. Bu sınıf, örnek için geçerli olan iş parçacığı ve sanal makine politikalarını yönetmek için kullanışlı yöntemler sunar.StrictMode.ThreadPolicy
veStrictMode.VmPolicy
, tanımladığınız ve iş parçacığı ve sanal makine örneklerine uyguladığınız politikaları muhafaza eder.
Uygulamanızı optimize etmek üzere StrictMode'u nasıl kullanacağınız hakkında daha fazla bilgi için android.os.StrictMode
adresindeki sınıf belgelerine ve örnek koda bakın.
Kullanıcı Arayüzü Çerçevesi
- Fazla kaydırma desteği
- Görünümler ve widget'larda fazla kaydırma için yeni destek. Görünümler'de, uygulamalar belirli bir görünüm için fazla kaydırmayı etkinleştirebilir/devre dışı bırakabilir, fazla kaydırma modunu ayarlayabilir, fazla kaydırma mesafesini kontrol edebilir ve fazla kaydırmanın sonuçlarını işleyebilir.
- Widget'larda uygulamalar animasyon, geri dönüş ve fazla kaydırma mesafesi gibi fazla kaydırma özelliklerini kontrol edebilir. Daha fazla bilgi için
android.view.View
veandroid.widget.OverScroller
sayfalarına bakın. ViewConfiguration
,getScaledOverflingDistance()
vegetScaledOverscrollDistance()
yöntemlerini de sağlar.- Fazla kaydırma davranışını kontrol etmek için
<ListView>
öğeleri için yenioverScrollMode
,overScrollFooter
veoverScrollHeader
özellikleri.
- Dokunma filtreleme desteği
- Uygulamanın, hassas işlevlere erişim sağlayan Görünümler'in güvenliğini iyileştirmesini sağlayan yeni dokunma filtreleme desteği. Örneğin, dokunmatik filtreleme, izin isteği verme, ürün satın alma veya bir reklamı tıklama gibi kullanıcı işlemlerinin güvenliğini sağlamak için uygundur. Ayrıntılar için Sınıf belgelerini görüntüleme bölümüne bakın.
- Görünüm öğeleri için, görünüm penceresi başka bir görünür pencere tarafından gizlendiğinde dokunmaların filtrelenip filtrelenmeyeceğini belirten yeni
filterTouchesWhenObscured
özelliği."true"
olarak ayarlandığında, görünümün üzerinde bir kısa mesaj, iletişim kutusu veya başka bir pencere göründüğünde görünüm dokunmaları almaz. Ayrıntılar için Güvenlik belgelerini görüntüleme bölümüne bakın.
Dokunma filtreleme için örnek koda bakmak isterseniz ApiDemos örnek uygulamasındaki SecureView.java sayfasına bakın.
- Daha iyi etkinlik yönetimi
- Giriş etkinlikleri için yeni temel sınıf,
InputEvent
. Sınıfta uygulamalar, etkinliğin anlamını belirlemelerine olanak tanıyan yöntemler sağlar (örneğin, etkinliğin oluşturulduğu InputDevice'ı sorgulamak gibi).KeyEvent
veMotionEvent
,InputEvent
alt sınıflarıdır. - Giriş cihazları için yeni temel sınıf,
InputDevice
. Bu sınıf, belirli bir giriş cihazının özellikleri hakkındaki bilgileri depolar ve uygulamaların giriş cihazındaki etkinliklerin nasıl yorumlanacağını belirlemesine olanak tanıyan yöntemler sunar.
- Giriş etkinlikleri için yeni temel sınıf,
- İyileştirilmiş hareket etkinlikleri
MotionEvent
API'sinin kapsamı genişletilmiş "işaretçi kimliği" bilgisi sayesinde uygulamaların yukarı ve aşağı hareket eden ayrı ayrı parmakları takip edebilmesini sağlar. Sınıfta bir uygulamanın hareket etkinlikleriyle verimli bir şekilde çalışmasını sağlayacak çeşitli yöntemler eklenir.- Giriş sistemi artık yeni işaretçi kimliği bilgileriyle hareket etkinlikleri oluşturabiliyor ve yeni işaretçiler düşerken tanımlayıcıları sentezliyor. Sistem, bir hareket etkinliği sırasında birden fazla işaretçi kimliğini ayrı olarak izler ve son ve bir sonraki işaretçi grubu arasındaki mesafeyi değerlendirerek işaretçilerin uygun bir şekilde devamlılığını sağlar.
- Metin seçimi kontrolleri
- Yeni
setComposingRegion
yöntemi, bir uygulamanın mevcut stili koruyarak bir metin bölgesini metin oluşturan metin olarak işaretlemesine olanak sağlar.getSelectedText
yöntemi, seçilen metni uygulamaya döndürür. YöntemlerBaseInputConnection
,InputConnection
veInputConnectionWrapper
için kullanılabilir. <TextView>
için yenitextSelectHandle
,textSelectHandleLeft
,textSelectHandleRight
vetextSelectHandleWindowStyle
özellikleri, metin seçimi çapalarını ve kapsayıcı pencere stilini göstermek üzere kullanılacak çekilebilir öğeleri referans alıyor.
- Yeni
- Etkinlik kontrolleri
ActivityInfo
, Etkinlik yönünü yönetmek için yeni sabit değerler ekler:SCREEN_ORIENTATION_FULL_SENSOR
,SCREEN_ORIENTATION_REVERSE_LANDSCAPE
,SCREEN_ORIENTATION_REVERSE_PORTRAIT
,SCREEN_ORIENTATION_SENSOR_LANDSCAPE
veSCREEN_ORIENTATION_SENSOR_PORTRAIT
.ActivityManager.RunningAppProcessInfo
öğesindekiimportance
alanı için yeni sabitIMPORTANCE_PERCEPTIBLE
. Bu değer, belirli bir işlemin kullanıcı tarafından etkin olarak algılanabilir olarak kabul edilen bir işlem çalıştırdığını belirtir. Arka planda müzik çalan bir uygulama buna örnek olarak gösterilebilir.- Bir Etkinliği kalıcı olarak işaretlemek için kullanılan Activity.setPersistent(boole) yöntemi artık kullanımdan kaldırılmıştır. Uygulama artık işlemsizdir.
- Bildirim metni ve simge stilleri
- Bildirim stilini yönetmek için yeni
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
veTextAppearance.StatusBar.Title
.
- Bildirim stilini yönetmek için yeni
- Kalan OpenGL ES 2.0 yöntemlerini
glDrawElements()
veglVertexAttribPointer()
android.opengl.GLES20
sınıfına ekler. YV12
piksel biçimi, düzlemsel 4:2:0 YCrCb biçimi desteği eklendi.- Alarm kurmak veya alarm yönetmek için yeni
AlarmClock
sağlayıcı sınıfı. Sağlayıcı, bir alarm saat uygulamasında yeni alarm ayarlamak amacıyla bir Etkinlik başlatmak için kullanılabilecek birACTION_SET_ALARM
Intent işlemi ve ekstralar içerir.SET_ALARM
Intent'ini almak isteyen uygulamalar, SET_ALARM iznini gerektiren bir etkinlik oluşturmalıdır. Yeni bir alarm oluşturmak isteyen uygulamalarContext.startActivity()
işlevini kullanmalıdır. Böylece, kullanıcı hangi çalar saat uygulamasını kullanacağını belirleme seçeneğine sahip olur. MediaStore
, bir uygulamanın müzik medyasını aramasına ve mümkün olduğunda sonuçtaki içeriği otomatik olarak oynatmasına olanak tanıyan yeni bir Intent işlemini (PLAY_FROM_SEARCH
) destekler. Örneğin, bir uygulama müzik dinlemek için ses tanıma komutunun sonucu olarak bu Intent'i tetikleyebilir.MediaStore
, medya tarayıcısına, içeren dizindeki ve alt dizinlerindeki medyayı yoksaymasını bildiren yeni birMEDIA_IGNORE_FILENAME
işareti de ekler. Geliştiriciler bunu, grafiklerin Galeri'de görünmesini ve benzer şekilde uygulama seslerinin ve müziklerin Müzik uygulamasında görünmesini önlemek için kullanabilirler.Settings
sağlayıcısı, bir uygulamanın belirli bir uygulamaya ait ayrıntılar ekranını veya Uygulamaları yönet ekranını göstermesini sağlayan yeni EtkinlikAPPLICATION_DETAILS_SETTINGS
veMANAGE_ALL_APPLICATIONS_SETTINGS
işlemlerini ekler.ContactsContract
sağlayıcısı, bir kişinin SIP (internet telefon) adresini saklamak içinContactsContract.CommonDataKinds.SipAddress
veri türünü ekler.LocationManager
artık, uygulamayı tanımlayan sistem tarafından yönetilen bir sınıf olanWorkSource
'ye göre, uyanık kalma kilitleri veya kablosuz kilitlerle sonuçlanan uygulama isteklerini izliyor.LocationManager
, periyodik güncelleme isteyen tüm istemcileri izler ve minimum güncelleme sürelerini belirlerken sağlayıcılarına bunlarıWorkSource
parametresi olarak bildirir. Ağ konumu sağlayıcısı, bir uygulama tarafından başlatılan uyanık kalma ve kablosuz kilitlerini izlemek içinWorkSource
özelliğini kullanır ve bunu, Uygulama Yönetimi bölümünde bildirilen uygulamanın pil kullanımına ekler.LocationManager
, Etkinlik kaydının belirli ölçütlere göre periyodik veya tek seferlik konum güncellemeleri almasına olanak tanıyan çeşitli yeni yöntemler ekler (aşağıya bakın).- Yeni bir
Criteria
sınıfı, uygulamaların konum sağlayıcı seçmek için bir dizi ölçüt belirtmesine olanak tanır. Örneğin, sağlayıcılar doğruluk, güç kullanımı, rakım, hız, yön bilgisi ve parasal maliyete göre sıralanabilir. - Android 2.3, OBB (Opaque İkili Blob) dosyalarını destekleyen yeni bir
StorageManager
sunar. OBB için platform desteği Android 2.3'te mevcuttur, ancak OBB dosyalarını oluşturmaya ve yönetmeye yönelik geliştirme araçları 2011'in başlarına kadar kullanılabilir olmayacaktır. - Android 2.3 platformu, SD kart içermeyen cihazlar için resmi destek ekliyor (fiziksel SD kart bulunmadığında sanal SD Kart bölümü sağlıyor olsa da). Kolaylık yöntemi olan
isExternalStorageRemovable()
, uygulamaların fiziksel bir SD kartın olup olmadığını belirlemesine olanak tanır. - Donanım ve yazılım özelliklerini belirtmek için yeni sabit değerler. Aşağıdaki Yeni Özellik Sabitleri bölümündeki listeye bakın.
PackageInfo
, paket yükleme ve son güncelleme zamanını depolayan yenifirstInstallTime
velastUpdateTime
alanları ekler.- Belirli bir içerik sağlayıcı sınıfı hakkında bilinen tüm bilgileri almak için yeni
getProviderInfo()
yöntemi. TelephonyManager
, CDMA Rev B ağ türünü belirtmek içinNETWORK_TYPE_EVDO_B
sabitini ekler.- Yeni
getPsc()
yöntemi, UMTS ağında sunum yapan hücrenin birincil karıştırma kodunu döndürür. NativeActivity
, yaşam döngüsü geri çağırmalarının doğrudan yerel kodda uygulandığı yeni bir Etkinlik sınıfı türüdür. BirNativeActivity
ve altındaki yerel kod, diğer Etkinliklerde olduğu gibi sistemde çalışır. Özellikle Android uygulamasının sistem işleminde çalışır ve uygulamanın ana kullanıcı arayüzü iş parçacığında yürütülürler. Ayrıca, diğer Etkinliklerde olduğu gibi aynı yaşam döngüsü geri çağırmalarını alırlar.- Yeni
InputQueue
sınıfı ve geri çağırma arayüzü, yerel kodun etkinlik sırasını yönetmesini sağlar. - Yeni
SurfaceHolder.Callback2
arayüzü, yerel kodunSurfaceHolder
yönetmesine olanak tanır. Window
içindeki yenitakeInputQueue
vetakeSurface()
yöntemleri, yerel kodun etkinlikleri ve yüzeyleri yönetmesine olanak tanır.dalvik.system
, daha önce desteği sonlandırılmış çeşitli sınıfları kaldırır.- Dalvik temel kitaplıkları:
- Yeni koleksiyonlar:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- Yeni
Arrays
yardımcı programları:binarySearch()
,copyOf()
,copyOfRange()
ve diğerleri. HttpURLConnection
içinCookieManager
.- Daha eksiksiz ağ API'leri:
InterfaceAddress
,NetworkInterface
veIDN
File
okuma ve yazma denetimiString.isEmpty()
Normalizer
veNormalizer.Form
javax.net.ssl
sunucu yuvaları geliştirildi.
- Yeni koleksiyonlar:
- Uygulamanın ekstra geniş ekran form faktörlerini destekleyip desteklemediğini belirtmek için
<supports-screens>
öğesi için yenixlargeScreens
özelliği. Ayrıntılar için Birden Fazla Ekranı Destekleme bölümüne bakın. <activity>
öğesininandroid:screenOrientation
özelliği için yeni değerler:"reverseLandscape"
— Etkinlik, ekranın yatay yönde, normal yatay görünümün tersi yönde döndürülmesini ister."reversePortrait"
— Etkinlik, ekranın dikey yönde, normal dikeyin ters yönde döndürülmesini istiyor."sensorLandscape"
— Etkinlik, ekranın yatay yönde olmasını istiyor, ancak ekranın hangi yöne gittiğini değiştirmek için sensörü kullanabilir."sensorPortrait"
— Etkinlik, ekranın dikey yönde olmasını istiyor, ancak ekranın baktığı yönü değiştirmek için sensörü kullanabilir."fullSensor"
: Yön, fiziksel bir yön sensörüyle belirlenir: Ekran, kullanıcının cihazı nasıl hareket ettirdiğine bağlı olarak döner. Bu, cihazın normalde ne yapacağından bağımsız olarak 4 olası dönüşten herhangi birine izin verir (örneğin, bazı cihazlar normalde 180 derece döndürme kullanmaz).
com.android.permission.SET_ALARM
— Bir uygulamanın, kullanıcı için alarm ayarlamak üzere bir Intent yayınlamasına izin verir.SET_ALARM
Amaç işlemini işleyen bir Etkinlik için bu iznin verilmesi gerekir.android.permission.USE_SIP
— Bir uygulamanın internet çağrıları yapmak veya almak içinSIP API
kullanmasına izin verir.android.permission.NFC
— Bir uygulamanın, NFC etiketlerini okumak içinNFC API
kullanmasına izin verir.android.hardware.audio.low_latency
: Uygulama, cihazda düşük gecikmeli bir ses ardışık düzeni kullanır ve ses girişi ya da çıkışındaki gecikmelere veya gecikmelere karşı hassastır.android.hardware.camera.front
— Uygulama, cihazda ön kamera kullanır.android.hardware.nfc
— Uygulama, cihazdaki NFC radyo özelliklerini kullanır.android.hardware.sensor.barometer
: Uygulama, cihazın barometresini kullanır.android.hardware.sensor.gyroscope
: Uygulama, cihazın jiroskop sensörünü kullanır.android.software.sip
- Uygulama, cihazdaki SIP API'yi kullanır.android.software.sip.voip
— Uygulama, cihazda SIP tabanlı bir VoIP hizmeti kullanır.android.hardware.touchscreen.multitouch.jazzhand
— Uygulama, cihaz ekranında beş veya daha fazla noktayı bağımsız olarak tam olarak izlemek için gelişmiş çok noktalı çoklu dokunma özelliklerini kullanır.
Ekstra Büyük Ekranlar
Platform artık, tablet cihazlarda bulunanlar gibi ekstra büyük ekran boyutlarını desteklemektedir. Geliştiriciler, manifest dosyalarına bir <supports
screens ... android:xlargeScreens="true">
öğesi ekleyerek uygulamalarının ekstra büyük ekran boyutlarını destekleyecek şekilde tasarlandığını belirtebilirler. Uygulamalar, ekstra büyük ekranlara özel kaynakları etiketlemek için xlarge
adlı yeni kaynak niteleyiciyi kullanabilir. Ekstra büyük ve diğer ekran boyutlarının nasıl desteklendiğiyle ilgili ayrıntılar için Birden Fazla Ekranı Destekleme bölümüne bakın.
Grafik
İçerik Sağlayıcılar
Konum
Depolama
Paket Yöneticisi
Telefon Hizmeti
Etkinlik yaşam döngüsü, pencerelere yerel erişim
Android 2.3, yerel kod kullanan uygulamalara çok çeşitli API'leri sunar. Bu tür uygulamalara yönelik çerçeve sınıfları şunlardır:
Yerel kodla çalışma veya NDK'yı indirme hakkında ayrıntılı bilgi için Android NDK sayfasına bakın.
Dalvik Çalışma Zamanı
Yeni manifest öğeleri ve özellikleri
Yeni İzinler
Yeni Özellik Sabitleri
Platform, geliştiricilerin uygulama manifest dosyalarında uygulamalarının gerektirdiğini beyan edebilecekleri çeşitli yeni donanım özellikleri ekler. Bu sayede geliştiriciler, Google Play'de yayınlandığında uygulamalarının nasıl filtreleneceğini kontrol edebilirler.
Özellikleri bildirme ve filtreleme için kullanma hakkında ayrıntılı bilgi için <uses-feature>
dokümanlarına bakın.
API farklılıkları raporu
Android 2.3'teki (API Düzeyi 9) 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 2.3 platformu, çerçeve API'sinin güncellenmiş bir sürümünü sunar. Android 2.3 API'ye, sistemin kendisinde depolanan bir tam sayı tanımlayıcı (9) 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 2.3'te sunulan API'ları kullanmak için uygulamayı Android 2.3 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="9"
özelliği eklemeniz de gerekebilir. Uygulamanız yalnızca Android 2.3 ve sonraki sürümlerde çalışacak şekilde tasarlandıysa özelliğin bildirilmesi, uygulamanın platformun önceki sürümlerine yüklenmesini engeller.
Daha fazla bilgi için API Düzeyi nedir?