API Düzeyi: 5
Android 2.0, Kasım 2009'dan itibaren Android destekli telefonlara dağıtılabilen ana platform sürümlerinden biridir. Sürüm, kullanıcılar ve geliştiriciler için yeni özelliklerin yanı sıra Android framework API'sinde yapılan değişiklikleri içerir.
Geliştiriciler için Android 2.0 platformu, Android SDK için indirilebilir bir bileşen olarak sunulmaktadır. İndirilebilir platform; tamamen uyumlu bir Android kitaplığı ve sistem görüntüsünün yanı sıra bir dizi emülatör dış görünümü, örnek uygulamalar ve daha fazlasını içerir. İndirilebilir platform tamamen uyumludur ve harici kitaplık içermez.
Android 2.0 platformunda geliştirme veya test yapmaya başlamak için Android SDK'sını ve AVD Yöneticisi aracını kullanarak platformu SDK'nıza indirin.
Platformda Öne Çıkanlar
Yeni kullanıcı özelliklerinin ve platformdaki öne çıkan özelliklerin listesi için Android 2.0 Platform Öne Çıkan Özellikleri belgesine bakın.
Yerleşik Uygulamalar
İndirilebilir platforma dahil edilen sistem resmi, aşağıdaki yerleşik uygulamaları sağlar:
|
|
Yerel Ayarlar
İndirilebilir platformdaki sistem görüntüsü, çeşitli yerleşik yerel ayarlar sağlar. Bazı durumlarda, yerel ayarlar için bölgeye özgü dizeler kullanılabilir. Diğer durumlarda, dilin varsayılan sürümü kullanılır. Android 2.0 sistem görüntüsünde kullanılabilen diller aşağıda listelenmiştir (language_country/region yerel ayar tanımlayıcısıyla).
|
|
Yerelleştirilmiş kullanıcı arayüzü dizeleri, Ayarlar üzerinden erişilebilen yerel ayarlarla eşleşir.
Emülatör Kaplamaları
İndirilebilir platform, uygulamanızı farklı ekran boyutları ve çözünürlüklerde modellemek için kullanabileceğiniz bir dizi emülatör dış görünümü içerir. Emülatör görünümleri:
- QVGA (240x320, düşük yoğunluk, küçük ekran)
- WQVGA (240x400, düşük yoğunluk, normal ekran)
- FWQVGA (240x432, düşük yoğunluk, normal ekran)
- HVGA (320x480, orta yoğunluk, normal ekran)
- WVGA800 (480x800, yüksek yoğunluk, normal ekran)
- WVGA854 (480x854 yüksek yoğunluklu, normal ekran)
Android destekli tüm cihazlarda düzgün bir şekilde görüntülenen ve çalışan bir uygulamanın nasıl geliştirileceği hakkında daha fazla bilgi için Birden Fazla Ekranı Destekleme başlıklı makaleyi inceleyin.
Geliştirici Özellikleri
Aşağıdaki bölümlerde, indirilebilir Android 2.0 platform bileşeni tarafından sunulan yeni geliştirici özellikleri hakkında bilgi verilmektedir.
Ant Desteği
- Hata ayıklama ve yayınlama modunda uygulama imzalama. Sürüm modunda imzalama,
zipalign
optimizasyonu için entegre destek içerir. Daha fazla bilgi için Uygulamalarınızı imzalama başlıklı makaleyi inceleyin. - Emma enstrümantasyon projeleri için desteğe sahip yeni Ant derleme sistemi (kod kapsamı) eklendi.
Çerçeve API'sı
Aşağıdaki bölümlerde Android 2.0 platformu tarafından sağlanan uygulama çerçevesi API'si hakkında bilgi verilmektedir.
API seviyesi
Android 2.0 platformu, çerçeve API'sinin güncellenmiş bir sürümünü sunar. Önceki sürümlerde olduğu gibi, Android 2.0 API'ye sistemde depolanan bir tam sayı tanımlayıcı (5) atanır. "API Seviyesi" 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.
Android 2.0'da kullanıma sunulan API'leri uygulamanızda kullanmak için uygulamanızın manifest dosyasındaki <uses-sdk>
öğesinin özelliklerinde uygun değeri ("5") ayarlamanız gerekir.
API Düzeyi'nin nasıl kullanılacağı hakkında daha fazla bilgi için API Düzeyleri belgesine bakın.
API değişiklikleri özeti
Bluetooth
- Bluetooth'u aç/kapat
- Cihaz ve hizmet bulma
- RFCOMM kullanarak uzak bir cihaza bağlanma ve veri gönderme/alma
- RFCOMM hizmetlerinin reklamını yapın ve gelen RFCOMM bağlantısını dinleyin
Senkronizasyon bağdaştırıcıları
- Senkronizasyon bağdaştırıcıların herhangi bir arka uca bağlanabilmesi için yeni API'ler
Hesap Yöneticisi
- Kimlik doğrulama jetonlarını/şifreleri güvenli bir şekilde depolamak ve bunlara erişmek için merkezi hesap yöneticisi API'si
Kişiler
- Birden fazla hesaptan veri kullanımına olanak tanıyan yeni kişi API'leri
- Yeni Hızlı İletişim çerçevesi API'leri, geliştiricilerin uygulamalarında kişi rozetleri oluşturmalarına olanak tanır. Rozeti tıkladığınızda kişiyle tek tıklamayla iletişim kurma yollarının listelendiği bir pencere açılır.
Web Görünümü
- Desteği sonlandırılan sınıflar: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
Kamera
- Renk efekti, sahne modu, flaş modu, odak modu, beyaz dengesi, döndürme ve diğer ayarlar için yeni parametreler.
- Yakınlaştırma düzeyi değiştiğinde işlem gerçekleştirmek için yeni ZoomCallback arayüzü.
Medya
- MediaScanner, artık MediaStore'a eklenen tüm görüntüler için küçük resimler oluşturuyor.
- İsteğe bağlı olarak resim ve video küçük resimlerini almak için yeni Thumbnail API.
Diğer Çerçeve
- Etkinlikleri mevcut sistem duvar kağıdının üzerinde kolayca görüntülemek veya önceki etkinliği arka planda görünür tutmak için android.R.style'da yeni sistem temaları.
- Yeni WallpaperManager API, uygulamaların sistem duvar kağıdını istemesine ve ayarlamasına izin vermek için daha önce Context'te bulunan duvar kağıdı API'lerini değiştirip genişletir.
- Uygulamaların, özellikle de bir hizmetin çalışırken kapatılabileceği düşük bellek durumlarında hizmet yaşam döngüsünü doğru şekilde yönetmesine yardımcı olacak yeni hizmet API'leri.
- Service.setForeground() desteği sonlandırıldı ve bu işlev artık etkin bir şekilde işlem yapmıyor. Bunun yerine, devam eden bir bildirimin ön plan durumuyla ilişkilendirilmesine yardımcı olan (ve bunu gerektiren) yeni bir API olan startForeground() kullanılmaktadır.
- MotionEvent artık bu özelliği destekleyen cihazların eş zamanlı dokunma bilgilerini raporlayabiliyor. Aynı anda en fazla üç işaretçi izlenebilir.
- KeyEvent'te işlem açma ve uzun basma davranışının uygulanmasına yardımcı olacak yeni anahtar gönderme API'lerinin yanı sıra tuşa basma işlemlerini iptal eden yeni bir mekanizma (sanal tuşlar için) vardır.
- WindowManager.LayoutParams, bir pencerenin gösterildiğinde ekranı uyandırmasına ve ekran kilitli olsa bile pencereyi göstermesine olanak tanıyan yeni sabitlere sahiptir. Bu, uygulamaların cihazı uyandıracak çalar saatler gibi şeyleri daha temiz bir şekilde uygulamasına olanak tanır.
- Cihazın bağlantı durumunu yayınlayan ve cihaz masaüstüne veya araba bağlantısına yerleştirildiğinde uygulamaların özel etkinlikler başlatmasına olanak tanıyan yeni Intent API'leri.
Tuş yukarı düğmesine basıldığında gerçekleştirilen önemli etkinlikler
Android 2.0, fiziksel tuşlar yerine EV, MENÜ, GERİ ve ARA için sanal tuşlar kullanan cihazlarda çalışacak şekilde tasarlanmıştır. Bu cihazlarda en iyi kullanıcı deneyimini desteklemek için Android platformu artık bu düğmeleri tuş aşağı yerine tuş yukarı anında yürütüyor. Bu, yanlışlıkla düğme etkinliklerinin oluşmasını önlemeye yardımcı olur ve kullanıcının düğme alanına basıp etkinlik oluşturmadan dışarı sürüklemesine olanak tanır.
Bu davranış değişikliği, uygulamanızı yalnızca düğme etkinliklerine müdahale ediyorsa ve tuşu basılı tutmak yerine tuş sırasında işlem yaptığında etkiler. Özellikle uygulamanız BACK anahtarını engelliyorsa uygulamanızın önemli etkinlikleri düzgün şekilde işlediğinden emin olmanız gerekir.
Genel olarak, bir uygulamada BACK tuşunun alınması önerilmez. Ancak uygulamanız bunu yapıyorsa ve tuş yukarı yerine aşağı basıldığında bir işlem çağrıyorsa kodunuzu değiştirmeniz gerekir.
Uygulamanız Android 2.0'da (API düzeyi 5) kullanıma sunulan API'leri kullanıyorsa anahtar-olay çiftlerini yönetmek için yeni API'lerden yararlanabilirsiniz:
- Bir etkinlik veya iletişim kutusunda GERİ tuşuna müdahale ediyorsanız yeni
onBackPressed()
yöntemini uygulamanız yeterlidir. - Bir görünümde GERİ tuşuna müdahale ediyorsanız anahtar aşağı tıklama sırasında önemli etkinliği (yeni
startTracking()
yöntemi aracılığıyla) izlemeli, ardından açılışta işlemi çağırmalısınız. Kullanabileceğiniz bir kalıbı aşağıda bulabilirsiniz:
Kotlin
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.repeatCount == 0) { event.startTracking() true } else { false } } ... else -> super.onKeyDown(keyCode, event) } } override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean { return when (keyCode) { KeyEvent.KEYCODE_BACK -> { if (event.isTracking && !event.isCanceled) { // *** DO ACTION HERE *** true } else { false } } ... else -> super.onKeyUp(keyCode, event) } }
Java
public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** DO ACTION HERE *** return true; } return super.onKeyUp(keyCode, event); }
Eski bir uygulamayı, BACK anahtarının kullanımı hem Android 2.0 hem de daha eski platform sürümlerinde düzgün şekilde çalışacak şekilde güncellemek istiyorsanız yukarıda gösterilene benzer bir yaklaşım kullanabilirsiniz. Kodunuz, tuş aşağı basıldığında hedef düğme etkinliğini yakalayabilir, önemli etkinliği izlemek için bir işaret ayarlayabilir ve ardından tuş yukarı basıldığında etkinliği yakalayarak izleme işareti ayarlanmışsa istenen işlemi yürütebilir. Ayrıca odak değişikliklerine dikkat etmeli ve odaklanmayı kazandırırken/kaybettiğinde izleme işaretini temizlemelisiniz.
API farklılıkları raporu
Önceki sürüme kıyasla Android 2.0'daki (API Düzeyi 5) API değişikliklerinin ayrıntılı bir görünümü için API Farklılıkları Raporu'na bakın.