API Düzeyi: 9
Geliştiriciler, Android 2.3
(GINGERBREAD
) platformu, Android SDK'sı için indirilebilir bir bileşen olarak kullanılabilir. İ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 2.3'e göre geliştirmeye veya test etmeye başlamak için Android SDK Yöneticisi'ni kullanarak platformu SDK'nıza indirin.
API'ye Genel Bakış
Aşağıdaki bölümlerde, yeni özellikler ve önceki sürümden bu yana çerçeve API'sinde yapılan değişiklikler de dahil olmak üzere geliştiricilerin 2.3 sürümündeki yeniliklere dair 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 gerçekleştirilir.
SIP API, android.net.sip
paketinde mevcuttur. Anahtar sınıfı SipManager
'dir. Uygulamalar, SIP profillerini oluşturup yönetmek, ardından sesli arama başlatmak ve sesli arama almak için bu sınıfı kullanır. Sesli arama oluşturulduktan sonra, uygulamalar çağrıları sessize alabilir, hoparlör modunu açabilir, DTMF tonları gönderebilir ve daha fazlasını 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">
tanımlayarak kullanıcıdan izin istemesi gerekir.
Ayrıca geliştiriciler, Google Play'de uygulamalarının, cihazlarında platformun SIP yığınını ve hizmetlerini içermeyen kullanıcılar tarafından bulunamayacağı şekilde filtreleme isteğinde bulunabilirler. Filtreleme isteğinde bulunmak için uygulama manifestine <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, NFC özellikli bir cihaza dokunduğunda keşfedilen NDEF etiketlerini okumasına olanak tanıyan bir NFC yığını ve çerçeve API'si içerir. Bu etiketler, çıkartmalara, akıllı posterlere ve hatta diğer cihazlara yerleştirilmiş öğeleri etiketlemek için kullanılır.
Platform, kapsama alanına giren etiketleri keşfetmek için cihaz donanımıyla çalışan temel NFC hizmetlerini sağlar. Platform, bir etiketi keşfettiğinde bir Intent yayınlayarak uygulamaları bilgilendirir ve etiketin NDEF mesajlarını Intent olarak Intent'e ekler. Uygulamalar, hedeflenen etiketleri ve mesajları tanımak ve işlemek için Intent filtreleri oluşturabilir. Örneğin, Intent'i kullanarak bir 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. En önemli sınıflar şunlardır:
NfcAdapter
, cihazdaki NFC donanımını temsil eder.NdefMessage
, NDEF veri mesajını temsil eder. Bu, 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 veri 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 desteklenmesi, üreticilerin üreticileri tarafından belirlenir. Uygulamalar, geçerli cihazda NFC desteğini belirlemek üzere NfcAdapter
işlevini sorgulamak için isEnabled()
işlevini ç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">
belirterek kullanıcıdan izin istemesi gerekir.
Ayrıca geliştiriciler, uygulamalarının NFC'yi desteklemeyen kullanıcılar tarafından bulunamaması için Google Play'de filtreleme isteğinde bulunabilirler. Filtreleme isteğinde bulunmak için uygulamanın manifest dosyasına <uses-feature android:name="android.hardware.nfc"
android:required="true">
ekleyin.
NFC API'yi kullanan örnek bir uygulamaya bakmak için NFCDemo'ya bakın.
Jiroskop ve diğer sensörler
Android 2.3'te jiroskop, dönme vektörü, doğrusal ivme, yerçekimi ve barometre gibi çeşitli yeni sensör okuma türleri için platform ve API desteği sunulmaktadır. Geliştiriciler, yeni sensör ölçümlerini kullanarak cihaz konumu ve hareketteki hassas değişikliklere hızlı ve sorunsuz yanıt veren uygulamalar oluşturabilir. Sensor API'si, uygulama çerçevesi veya yerel kod üzerinde çalışan ilgili uygulamalarda jiroskop ve diğer sensör değişikliklerini raporlar.
Herhangi bir cihazda kullanılabilen donanım sensörü grubunun, cihaz üreticisinin takdirine bağlı olarak değişiklik gösterdiğini unutmayın.
Geliştiriciler, uygulamalarının, cihazlarında jiroskop sensörü bulunmayan kullanıcılar tarafından bulunamayacağı şekilde Google Play'de filtreleme isteğinde bulunabilirler. Bunu yapmak için uygulama manifestine <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
dosyasını ekleyin.
API ayrıntıları için Sensor
sayfasına bakın.
Birden fazla kamera desteği
Uygulamalar artık cihazda mevcut olan tüm kameralardan (fotoğraf veya video çekmek 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 bakan) 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 etmesini sağlar.
Ön kameraya erişmeye ilişkin ö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, odaklama modu ve maksimum/minimum önizleme fps'sini içeren 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; bas güçlendirme, kulaklık sanallaştırma, dengeleme ve yankı gibi yeni parça başına ya da küresel ses efektleri için 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 kullanılan temel sınıftır. - Bir uygulamanın, bir grup ses efektini
AudioTrack
veyaMediaPlayer
örneğiyle ilişkilendirmesine olanak tanıyan yeni ses oturumu kimliği. - Belirli bir oturum kimliğine sahip bir
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
getAltitude()
yöntemi. - Yeni
setOrientationHint()
yöntemi, uygulamanın video çekimi sırasında yönüMediaRecorder
'ne bildirmesini sağlar.
İndirme yöneticisi
Platformda, uzun süreli HTTP indirmelerini işleyen yeni bir DownloadManager
sistem hizmeti bulunuyor. Uygulamalar, bir URI'nin belirli bir hedef dosyaya indirilmesini isteyebilir. DownloadManager
, indirme işlemini arka planda gerçekleştirir, HTTP etkileşimlerini halleder ve hatalardan ya da bağlantı değişikliklerinden ve sistem yeniden başlatmalarından sonra indirme işlemlerini yeniden dener.
- Uygulamalar,
getSystemService(String)
yöntemini çağırıpDOWNLOAD_SERVICE
değerini 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 indirmeyi tıkladığındaACTION_NOTIFICATION_CLICKED
için bir yayın alıcısı kaydetmelidir. DownloadManager.Request
sınıfı, bir uygulamanın yeni bir indirme isteğinde bulunmak için gerekli olan tüm bilgileri (ör. istek URI'sı ve indirme hedefi) sağlamasına olanak tanır. İstek URI'si yalnızca gerekli parametredir. Varsayılan indirme hedefinin, dosyanın sistem kullanımı için yer açması gerekiyorsa sistemin dosyanızı silebileceği paylaşılan bir birim olduğunu unutmayın. İndirilen bir öğenin 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
Platform, geliştiricilerin uygulamalarının performansını izleyip iyileştirmesine yardımcı olmak için StrictMode
adlı yeni bir sistem tesisi sunuyor.
Bir uygulamada uygulandığında, StrictMode, uygulamanın ana iş parçacığında gerçekleşen etkinlikler (kullanıcı arayüzü işlemlerinin alındığı ve animasyonların da yapıldığı) gibi uygulama performansını düşürebilecek ağ etkinliklerini veya uygulama performansını düşürebilir. Yanlışlıkla yapılan disk veya ağ etkinliklerini geliştiriciye yakalayıp bilgilendirir.
Geliştiriciler, StrictMode'da ortaya çıkan ağ ve disk kullanım sorunlarını değerlendirip gerekirse bunları düzelterek ana iş parçacığını daha duyarlı hale getirebilir ve ANR iletişim kutularının kullanıcılara gösterilmesini engelleyebilir.
StrictMode
, çekirdek sınıftır ve sistem ve sanal makine ile ana entegrasyon noktasıdır. Sınıf, örneğe uygulanan iş parçacığı ve sanal makine politikalarını yönetmek için pratik yöntemler sunar.StrictMode.ThreadPolicy
veStrictMode.VmPolicy
, iş parçacığı ve sanal makine örnekleri için tanımladığınız ve uyguladığınız politikaları barındırır.
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 dokümanlarına 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ümde fazla kaydırmayı etkinleştirebilir/devre dışı bırakabilir, fazla kaydırma modunu ayarlayabilir, fazla kaydırma mesafesini kontrol edebilir ve fazla kaydırma işleminin sonuçlarını işleyebilir.
- Widget'larda uygulamalar animasyon, geri sarma 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.<ListView>
öğeleri için yenioverScrollMode
,overScrollFooter
veoverScrollHeader
özellikleri; fazla kaydırma davranışını kontrol etmek için kullanılır.
- 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, 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ün 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 penceresinin üzerinde bir kısa mesaj, iletişim kutusu veya başka bir pencere göründüğünde görünüme dokunmaz. 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 bölümüne bakın.
- Daha iyi etkinlik yönetimi
- Giriş etkinlikleri için yeni temel sınıf,
InputEvent
. Sınıfta, uygulamaların etkinliğin oluşturulduğu mesajı sorgulamak gibi yöntemlerle etkinliğin anlamını belirlemesine olanak tanıyan yöntemler sunulur.KeyEvent
veMotionEvent
,InputEvent
alt sınıflarıdır. - Giriş cihazları için yeni temel sınıf,
InputDevice
. Sınıfta, belirli bir giriş cihazının özellikleri hakkındaki bilgiler depolanır ve uygulamaların giriş cihazındaki etkinliklerin nasıl yorumlanacağını belirlemesine olanak tanıyan yöntemler sunulur.
- 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 içerir. Bu bilgi, uygulamaların yukarı ve aşağı hareket ederken her bir parmakla ilgili izleme yapmasına olanak tanır. Sınıfta bir uygulamanın hareket etkinlikleriyle verimli bir şekilde çalışmasını sağlayan çeşitli yöntemler yer alıyor.- Giriş sistemi artık yeni işaretçi kimlik bilgileriyle hareket etkinlikleri oluşturma mantığına sahiptir ve yeni işaretçiler azaldıkça tanımlayıcıları sentezler. Sistem, bir hareket etkinliği sırasında birden fazla işaretçi kimliğini ayrı ayrı izler ve son ve bir sonraki işaretçi grubu arasındaki mesafeyi değerlendirerek işaretçilerin uygun devamlılığını sağlar.
- Metin seçimi kontrolleri
- Yeni
setComposingRegion
yöntemi, bir uygulamanın mevcut stili koruyarak bir metin bölgesini oluşturulan 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 sabitlerini ve kapsayıcı pencerenin stilini görüntülemek için kullanılacak çekilebilir öğelerine referansta bulunur.
- 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
içindekiimportance
alanı için yeni sabitIMPORTANCE_PERCEPTIBLE
. Değer, belirli bir işlemin kullanıcı tarafından etkin olarak algılanabilen bir şey çalıştırdığını belirtir. Arka planda müzik çalan bir uygulama buna örnek olarak verilebilir.- 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 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
android.opengl.GLES20
sınıfında kalanglDrawElements()
veglVertexAttribPointer()
OpenGL ES 2.0 yöntemlerini ekler.- Düzlemsel 4:2:0 YCrCb biçimi olan
YV12
piksel biçimi için destek ekler. - Alarm kurmak veya alarm kullanmak için yeni
AlarmClock
sağlayıcı sınıfı. Sağlayıcı, birACTION_SET_ALARM
Amaç işlemi ve alarm saat uygulamasında yeni bir alarm ayarlamak için Etkinlik başlatmak üzere kullanılabilecek ekstralar içerir.SET_ALARM
amacını 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ı seçebilir. MediaStore
, bir uygulamanın müzik medyasını aramasına ve mümkün olduğunda sonuçtan 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 kullanılan ses tanıma komutunun sonucu olarak bu Intent'i tetikleyebilir.MediaStore
, medya tarayıcısına kapsayıcı dizindeki ve alt dizinlerindeki medyaları yoksaymasını bildiren yeni birMEDIA_IGNORE_FILENAME
işareti de ekler. Geliştiriciler bunu kullanarak grafiklerin Galeri'de görünmesini ve benzer şekilde uygulama seslerinin ve müziklerinin Müzik uygulamasında görünmesini engelleyebilirler.Settings
sağlayıcısı, yeni Etkinlik işlemleriniAPPLICATION_DETAILS_SETTINGS
veMANAGE_ALL_APPLICATIONS_SETTINGS
ekler. Bu işlemler, bir uygulamanın belirli bir uygulama için ayrıntılar ekranını veya Uygulamaları yönet ekranını göstermesini sağlar.ContactsContract
sağlayıcısı, 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
'a göre, uyanık kalma kilitleri veya kablosuz kilitlerle sonuçlanan uygulama isteklerini izler.LocationManager
, düzenli 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ı, bir uygulama tarafından başlatılan uyanık kalma ve kablosuz bağlantı kilitlerini izlemek içinWorkSource
özelliğini kullanır ve bunu, Uygulamaları Yönet bölümünde raporlanan uygulama pil kullanımına ekler.LocationManager
, bir Etkinlik kaydının belirtilen kriterlere 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 belirleme ve parasal maliyete göre sıralanabilir. - Android 2.3, OBB (Opaque Binary Blob) dosyalarını destekleyen yeni bir
StorageManager
ekler. OBB için platform desteği Android 2.3'te bulunsa da OBB dosyalarını oluşturmaya ve yönetmeye yönelik geliştirme araçları 2011'in başlarına kadar kullanılamayacaktı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 olup olmadığını belirlemesini sağlar. - 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ğındaki sunum 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 ona ait 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 ve 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 kodun birSurfaceHolder
öğesini yönetmesine olanak tanır. Window
kapsamındaki yenitakeInputQueue
vetakeSurface()
yöntemleri, yerel kodun etkinlikleri ve platformları yönetmesini sağlar.dalvik.system
, daha önce kullanımdan kaldırılan birkaç sınıfı 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ı iyileştirildi.
- Yeni koleksiyonlar:
<supports-screens>
öğesi için uygulamanın ekstra büyük ekran form faktörlerini destekleyip desteklemediğini gösteren 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 dikey yönden ters yönde döndürülmesini ister."sensorLandscape"
: Etkinlik, ekranın yatay yönde olmasını ister ancak ekranın hangi yöne baktığını değiştirmek için sensörü kullanabilir."sensorPortrait"
: Etkinlik, ekranın dikey yönde olmasını ister ancak sensörü kullanarak ekranın hangi yöne baktığını değiştirebilir."fullSensor"
: Yön, fiziksel 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
— Uygulamalara, kullanıcı için alarm ayarlamak üzere Intent yayınlama izni verir.SET_ALARM
Intent işlemini gerçekleştiren bir Etkinlik için bu iznin olması gerekir.android.permission.USE_SIP
— Bir uygulamaya internet çağrıları yapmak veya almak içinSIP API
uygulamasını kullanma izni verir.android.permission.NFC
— 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 bir ö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, beş veya daha fazla noktayı bağımsız olarak takip etmek için cihaz ekranında çok noktalı gelişmiş ç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, çok büyük ekranlara özel kaynakları etiketlemek için xlarge
adlı yeni bir 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üne, pencerelere yerel erişim
Android 2.3, yerel kod kullanan uygulamalara çok sayıda API sunar. Bu tür uygulamalar için önemli olan ç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ını inceleyin.
Dalvik Çalışma Zamanı
Yeni manifest öğeleri ve özellikleri
Yeni İzinler
Yeni Özellik Sabitleri
Platform, geliştiricilerin uygulama manifestlerinde uygulamalarının gerektirdiğini beyan edebilecekleri çeşitli yeni donanım özellikleri ekler. Bu sayede geliştiriciler, Google Play'de yayınlandıkları zaman uygulamalarının nasıl filtreleneceğini kontrol edebilirler.
Özellikleri beyan etme 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 Farklılıkları 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" 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 2.3'te sunulan API'leri 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, uygulama manifestindeki <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?