Android 2.0, Sürüm 1

API Düzeyi: 5

Android 2.0, Kasım 2009'dan itibaren Android destekli telefonlara dağıtılabilen büyük bir platform sürümüdür. Sürüm, kullanıcılar ve geliştiriciler için yeni özelliklerin yanı sıra Android Framework API'deki değişiklikleri de içeriyor.

Android 2.0 platformu, geliştiriciler açısından Android SDK'sı için indirilebilir bir bileşen olarak mevcuttur. İ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 platformuna göre geliştirmeye veya test etmeye başlamak için Android SDK ve AVD Manager aracını kullanarak platformu SDK'nıza indirin.

Platformda Öne Çıkanlar

Yeni kullanıcı özelliklerinin ve platformda öne çıkan özelliklerin listesi için Android 2.0 Platformunda Öne Çıkanlar belgesine bakın.

Yerleşik Uygulamalar

İndirilebilir platformda bulunan sistem görüntüsü, aşağıdaki yerleşik uygulamaları sunar:

  • Çalar Saat
  • Tarayıcı
  • Hesap Makinesi
  • Video Kamera
  • Kamera
  • Kişiler
  • Özel Yerel Ayar (geliştirici uygulaması)
  • Geliştirici Araçları (geliştirici uygulaması)
  • Dialer
  • E-posta
  • Galeri
  • Hareket Oluşturucu
  • Japonca metin girişi için IME
  • Mesajlaşma
  • Müzik
  • Ayarlar
  • Yedek Parçalar (geliştirici uygulaması)

Yerel Ayarlar

İndirilebilir platformda bulunan 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 birlikte).

  • Çince, Çin Halk Cumhuriyeti (zh_CN)
  • Çince, Tayvan (zh_TW)
  • Çekçe (cs_CZ)
  • Felemenkçe, Hollanda (nl_NL)
  • Felemenkçe, Belçika (nl_BE)
  • İngilizce, ABD (en_US)
  • İngilizce, İngiltere (en_GB)
  • İngilizce, Kanada (en_CA)
  • İngilizce, Avustralya (en_AU)
  • İngilizce, Yeni Zelanda (en_NZ)
  • İngilizce, Singapur (en_SG)
  • Fransızca, Fransa (fr_FR)
  • Fransızca, Belçika (fr_BE)
  • Fransızca, Kanada (fr_CA)
  • Fransızca, İsviçre (fr_CH)
  • Almanca, Almanya (de_DE)
  • Almanca, Avusturya (de_AT)
  • Almanca, İsviçre (de_CH)
  • Almanca, Liechtenstein (de_LI)
  • İtalyanca, İtalya (it_IT)
  • İtalyanca, İsviçre (it_CH)
  • Japonca (ja_JP)
  • Korece (ko_KR)
  • Lehçe (pl_PL)
  • Rusça (ru_RU)
  • İspanyolca (es_ES)
  • Yerelleştirilmiş kullanıcı arayüzü dizeleri, Ayarlar aracılığıyla erişilebilen yerel ayarlarla eşleşir.

    Emülatör Kaplamaları

    İndirilebilir platform, uygulamanızı farklı ekran boyutlarında ve çözünürlüklerinde modellemek için kullanabileceğiniz bir dizi emülatör dış görünümü içerir. Emülatör dış 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ğunluklu, normal ekran)
    • WVGA800 (480x800, yüksek yoğunluk, normal ekran)
    • WVGA854 (480x854 yüksek yoğunluk, 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 edinmek için Birden Fazla Ekranı Destekleme bölümüne bakın.

    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.

    Karınca Desteği

    • Hata ayıklama ve sürüm modu uygulama imzalama Sürüm modu imzalaması, zipalign optimizasyonu için entegre destek içerir. Daha fazla bilgi için Uygulamalarınızı İmzalama konusuna bakın.
    • Emma araç projelerini destekleyen yeni Ant derleme sistemi eklendi (kod kapsamı).

    Ç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 sistemin kendisinde depolanan bir tam sayı tanımlayıcı (5) atanmıştı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.0'da sunulan API'leri kullanmak için uygulamanızın manifest dosyasındaki <uses-sdk> öğesinin özelliklerinde uygun değeri ("5") ayarlamanız gerekir.

    API Level'ın nasıl kullanılacağı hakkında daha fazla bilgi için API Düzeyleri belgesine bakın.

    API değişikliklerinin özeti

    Bluetooth

    • Bluetooth'u açın/kapatın
    • Cihaz ve hizmet keşfi
    • 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

    Adaptörleri senkronize etme

    • Senkronizasyon bağdaştırıcılarının herhangi bir arka uca bağlanması için yeni API'ler

    Hesap Yöneticisi

    • Kimlik doğrulama jetonlarını/şifrelerini güvenli bir şekilde depolamak ve bunlara erişmek için merkezi hesap yöneticisi API'si

    Kişiler

    • Birden fazla hesaptan verilere izin veren yeni kişiler API'leri
    • Yeni Hızlı İletişim çerçevesi API'ları, 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 yöntemlerinin listesinin yer aldığı bir pencere açılır.

    Web Görünümü

    • Kullanımdan kaldı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.
    • Zum düzeyi değiştiğinde işlem gerçekleştirmek için yeni ZoomCallback arayüzü.

    Medya

    • MediaScanner, artık MediaStore'a eklendiklerinde tüm resimler için küçük resimler oluşturuyor.
    • İsteğe bağlı olarak resim ve video küçük resimlerini almak için yeni Thumbnail API'si.

    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'daki 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 olan duvar kağıdı API'lerinin yerini alıp genişletiyor.
    • Yeni Hizmet API'leri, uygulamaların, özellikle bir Hizmet çalışırken kapatılabileceği düşük bellek durumlarında Hizmet yaşam döngüsünü doğru şekilde işlemesine yardımcı olur.
      • Service.setForeground() desteği sonlandırıldı ve artık etkin bir şekilde işlem gerçekleştirmiyor. Bu değişiklik, devam eden bir bildirimi ön plan durumuyla ilişkilendirmeye yardımcı olan (ve bunu gerektiren) yeni bir API olan startForeground() ile değiştirilmiştir.
    • MotionEvent, artık destekleyen cihazlar için eşzamanlı dokunma bilgilerini raporlayabiliyor. Eş zamanlı olarak en fazla üç işaretçi takip edilebilir.
    • KeyEvent'te, başlatma ve uzun basma davranışının uygulanmasına yardımcı olacak yeni anahtar dağıtma API'leri ve tuşlara basmaları iptal edecek yeni bir mekanizma (sanal tuşlar için) bulunmaktadır.
    • WindowManager.LayoutParams'da yeni sabit değerler var. Bu değerler, görüntülendiğinde pencerenin uyandırmasına ve ekran kilitli olsa bile pencereyi göstermesine olanak tanır. Bu, uygulamaların cihazı uyandırması gereken çalar saatler gibi daha temiz bir şekilde uygulamasına olanak tanır.
    • Cihazın yuvaya yerleştirilmesi durumunu yayınlayan ve cihaz bir masaüstü veya araç yuvasına yerleştirildiğinde uygulamaların özel etkinlikler başlatmasına izin veren yeni Intent API'leri.

    Anahtar ekleme sırasında yürütülen önemli etkinlikler

    Android 2.0, fiziksel tuşlar yerine ANA EKRAN, MENÜ, GERİ ve ARAMA 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şu basılı tutmak yerine tuş/aşağı/tuş çifti için tuşu basılı tutarken çalıştırıyor. Bu, yanlışlıkla meydana gelen düğme etkinliklerini ö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.

    Davranıştaki bu değişiklik, uygulamanızı yalnızca düğme etkinliklerine müdahale ediyor ve tuşu basılı tutmak yerine tuşu basılı tutarken işlem yapıyorsa etkilemelidir. Özellikle uygulamanız GERİ tuşuna müdahale ediyorsa önemli etkinlikleri doğru bir şekilde işlediğinden emin olmalısınız.

    Genel olarak, bir uygulamada GERİ tuşuna müdahale etmeniz önerilmez. Ancak uygulamanız bunu yapıyorsa ve tuşa basmadan sonra bir işlem gerçekleştiriyorsa kodunuzu değiştirmeniz gerekir.

    Uygulamanız Android 2.0'da (API Düzeyi 5) sunulan API'leri kullanacaksa anahtar-etkinlik ç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 uygulayın.
    • Bir görünümde GERİ tuşuna müdahale ediyorsanız tuşu basılı tutarken önemli etkinliği izlemeli (yeni startTracking() yöntemi aracılığıyla) ve daha sonra, tuşu basılı tutarken işlemi başlatmalısınız. Şu kalıbı kullanabilirsiniz:
    • 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ı, GERİ tuşunun hem Android 2.0 hem de daha eski platform sürümlerinde düzgün çalışması için güncellemek isterseniz yukarıda gösterilene benzer bir yaklaşım kullanabilirsiniz. Kodunuz, key-down ile hedef düğme etkinliğini yakalayabilir, önemli etkinliği izlemek için bir işaret ayarlayabilir ve ardından, izleme bayrağı ayarlanmışsa istenen işlemi gerçekleştirerek etkinliği tuşlamada yakalayabilir. Ayrıca, odaklanma değişikliklerini takip etmek ve odağı kazanıp kaybolurken izleme işaretini temizlemek de iyi bir fikir olabilir.

    API farklılıkları raporu

    Önceki sürümle karşılaştırıldığında Android 2.0'daki (API Düzeyi 5) API değişikliklerinin ayrıntılı görünümü için API Farkları Raporu'na bakın.