Android 2.0, Rilis 1

API Level: 5

Android 2.0 adalah rilis platform utama yang dapat di-deploy ke handset berbasis Android mulai November 2009. Rilis ini mencakup fitur baru untuk pengguna dan developer, serta perubahan di API framework Android.

Untuk developer, platform Android 2.0 tersedia sebagai komponen yang dapat didownload untuk Android SDK. Platform yang dapat didownload mencakup library Android dan image sistem yang sepenuhnya kompatibel, serta serangkaian skin emulator, aplikasi contoh, dan lainnya. Platform yang dapat didownload sepenuhnya mematuhi dan tidak menyertakan library eksternal.

Untuk mulai mengembangkan atau menguji platform Android 2.0, gunakan Android SDK dan alat AVD Manager untuk mendownload platform tersebut ke SDK Anda.

Sorotan Platform

Untuk mengetahui daftar fitur pengguna baru dan sorotan platform, lihat dokumen Sorotan Platform Android 2.0.

Aplikasi Bawaan

Image sistem yang disertakan dalam platform yang dapat didownload menyediakan aplikasi bawaan ini:

  • Beker
  • Browser
  • Kalkulator
  • Perekam video
  • Kamera
  • Kontak
  • Lokalitas Kustom (aplikasi developer)
  • Alat Developer (aplikasi developer)
  • Dialer
  • Email
  • Galeri
  • Builder Gestur
  • IME untuk input teks bahasa Jepang
  • Messaging
  • Musik
  • Setelan
  • Spare Parts (aplikasi developer)

Locales

Image sistem yang disertakan dalam platform yang dapat didownload menyediakan berbagai lokalitas bawaan. Dalam beberapa kasus, string khusus wilayah tersedia untuk lokalitas. Pada kasus lain, versi default bahasa akan digunakan. Bahasa yang tersedia dalam image sistem Android 2.0 tercantum di bawah ini (dengan deskriptif lokal language_country/region).

  • China, RRC (zh_CN)
  • China, Taiwan (zh_TW)
  • Ceko (cs_CZ)
  • Belanda, Belanda (nl_NL)
  • Belanda, Belgia (nl_BE)
  • Inggris, Amerika Serikat (en_US)
  • Inggris, Inggris Raya (en_GB)
  • Inggris, Kanada (en_CA)
  • Inggris, Australia (en_AU)
  • Inggris, Selandia Baru (en_NZ)
  • Inggris, Singapura(en_SG)
  • Prancis, Prancis (fr_FR)
  • Prancis, Belgia (fr_BE)
  • Prancis, Kanada (fr_CA)
  • Prancis, Swiss (fr_CH)
  • Jerman, Jerman (de_DE)
  • Jerman, Austria (de_AT)
  • Jerman, Swiss (de_CH)
  • Jerman, Liechtenstein (de_LI)
  • Italia, Italia (it_IT)
  • Italia, Swiss (it_CH)
  • Jepang (ja_JP)
  • Korea (ko_KR)
  • Polandia (pl_PL)
  • Rusia (ru_RU)
  • Spanyol (es_ES)
  • String UI yang dilokalkan cocok dengan lokalitas yang dapat diakses melalui Setelan.

    Skin Emulator

    Platform yang dapat didownload mencakup serangkaian skin emulator yang dapat Anda gunakan untuk membuat model aplikasi dalam berbagai ukuran dan resolusi layar. Skin emulator adalah:

    • QVGA (240x320, kepadatan rendah, layar kecil)
    • WQVGA (240x400, kepadatan rendah, layar normal)
    • FWQVGA (240x432, kepadatan rendah, layar normal)
    • HVGA (320x480, kepadatan sedang, layar normal)
    • WVGA800 (480x800, kepadatan tinggi, layar normal)
    • WVGA854 (kepadatan tinggi 480x854, layar normal)

    Untuk mengetahui informasi selengkapnya tentang cara mengembangkan aplikasi yang ditampilkan dan berfungsi dengan baik di semua perangkat Android, lihat Mendukung Beberapa Layar.

    Fitur Developer

    Bagian di bawah ini menyediakan informasi tentang fitur developer baru yang ditawarkan oleh komponen platform Android 2.0 yang dapat didownload.

    Dukungan Semut

    • Penandatanganan aplikasi mode debug dan mode rilis. Penandatanganan mode rilis mencakup dukungan terintegrasi untuk pengoptimalan zipalign. Untuk informasi selengkapnya, lihat Menandatangani Aplikasi.
    • Menambahkan sistem build Ant baru dengan dukungan untuk project instrumentasi Emma (cakupan kode).

    API Framework

    Bagian di bawah ini memberikan informasi tentang API framework aplikasi yang disediakan oleh platform Android 2.0.

    Level API

    Platform Android 2.0 menyediakan versi terbaru dari API framework. Seperti versi sebelumnya, Android 2.0 API diberi ID bilangan bulat — 5 — yang disimpan dalam sistem itu sendiri. ID ini, yang disebut "API Level", memungkinkan sistem menentukan dengan benar apakah aplikasi kompatibel dengan sistem, sebelum menginstal aplikasi.

    Untuk menggunakan API yang diperkenalkan di Android 2.0 dalam aplikasi, Anda perlu menetapkan nilai yang tepat, "5", dalam atribut elemen <uses-sdk> dalam manifes aplikasi.

    Untuk mengetahui informasi selengkapnya tentang cara menggunakan API Level, lihat dokumen API Level.

    Ringkasan perubahan API

    Bluetooth

    • Mengaktifkan/menonaktifkan Bluetooth
    • Penemuan perangkat dan layanan
    • Menghubungkan ke perangkat jarak jauh menggunakan RFCOMM dan mengirim/menerima data
    • Beriklan layanan RFCOMM dan dengarkan koneksi RFCOMM yang masuk

    Adaptor sinkronisasi

    • API baru untuk adaptor sinkronisasi agar dapat terhubung ke backend apa pun

    Pengelola Akun

    • API pengelola akun terpusat untuk menyimpan dan mengakses token/sandi autentikasi dengan aman

    Kontak

    • API kontak baru yang memungkinkan data dari beberapa akun
    • API framework Quick Contact yang baru memungkinkan developer membuat badge kontak di aplikasi mereka. Mengklik badge akan membuka jendela berisi daftar cara menghubungi orang tersebut dengan sekali klik.

    WebView

    • Class yang tidak digunakan lagi: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    Kamera

    • Parameter baru untuk efek warna, mode scene, mode flash, mode fokus, keseimbangan putih, rotasi, dan setelan lainnya.
    • Antarmuka ZoomCallback baru untuk melakukan tindakan saat tingkat zoom berubah.

    Media

    • MediaScanner kini membuat thumbnail untuk semua gambar saat disisipkan ke MediaStore.
    • Thumbnail API baru untuk mengambil thumbnail gambar dan video sesuai permintaan.

    Framework Lainnya

    • Tema sistem baru di android.R.style untuk menampilkan aktivitas dengan mudah di atas wallpaper sistem saat ini atau menjaga aktivitas sebelumnya tetap terlihat di latar belakang.
    • WallpaperManager API baru menggantikan dan memperluas API wallpaper yang sebelumnya berada dalam Konteks, sehingga aplikasi dapat meminta dan menyetel wallpaper sistem.
    • API Layanan baru untuk membantu aplikasi menangani siklus proses Layanan dengan benar, khususnya situasi memori rendah ketika Layanan mungkin dimatikan saat berjalan.
      • Service.setForeground() tidak digunakan lagi dan sekarang tidak melakukan operasi apa pun secara efektif. Ini diganti dengan API baru, startForeground(), yang membantu (dan mewajibkan) mengaitkan notifikasi yang sedang berlangsung dengan status latar depan.
    • MotionEvent kini dapat melaporkan informasi sentuhan simultan untuk perangkat yang mendukungnya. Maksimum tiga pointer dapat dilacak secara bersamaan.
    • KeyEvent memiliki API pengiriman tombol baru, untuk membantu menerapkan perilaku action-on-up dan tekan lama, serta mekanisme baru untuk membatalkan penekanan tombol (untuk tombol virtual).
    • WindowManager.LayoutParams memiliki konstanta baru yang memungkinkan jendela mengaktifkan layar saat ditampilkan dan menampilkan jendela meskipun layar terkunci. Hal ini memungkinkan aplikasi untuk mengimplementasikan hal-hal seperti jam alarm dengan lebih rapi, yang akan membangunkan perangkat.
    • Intent API baru yang menyiarkan status terpasang ke dok perangkat dan memungkinkan aplikasi meluncurkan aktivitas khusus saat perangkat diletakkan di desktop atau dok mobil.

    Peristiwa tombol dieksekusi saat key-up

    Android 2.0 didesain untuk berjalan di perangkat yang menggunakan tombol virtual untuk HOME, MENU, BACK, dan SEARCH, bukan tombol fisik. Untuk mendukung pengalaman pengguna terbaik di perangkat tersebut, platform Android kini menjalankan tombol ini pada key-up, untuk pasangan key-down/key-up, bukan key-down. Hal ini membantu mencegah peristiwa tombol yang tidak disengaja dan memungkinkan pengguna menekan area tombol, lalu menarik keluar darinya tanpa membuat peristiwa.

    Perubahan perilaku ini hanya akan memengaruhi aplikasi Anda jika menangkap peristiwa tombol dan mengambil tindakan saat key-down, bukan pada key-up. Terutama jika aplikasi Anda mencegat tombol KEMBALI, Anda harus memastikan bahwa aplikasi menangani peristiwa tombol dengan benar.

    Secara umum, mencegat tombol KEMBALI dalam aplikasi tidak direkomendasikan, tetapi, jika aplikasi Anda melakukannya dan memanggil beberapa tindakan pada tombol ditekan, bukan tombol dilepaskan, Anda harus mengubah kode.

    Jika aplikasi Anda akan menggunakan API yang diperkenalkan di Android 2.0 (API Level 5), Anda dapat memanfaatkan API baru untuk mengelola pasangan peristiwa kunci:

    • Jika Anda mencegat tombol KEMBALI dalam aktivitas atau dialog, cukup terapkan metode onBackPressed() baru.
    • Jika mencegat tombol BACK dalam tampilan, Anda harus melacak peristiwa tombol pada tombol bawah (melalui metode startTracking() baru), lalu memanggil tindakan pada tombol ke atas. Berikut adalah pola yang dapat Anda gunakan:
    • 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);
          }
      

    Jika ingin mengupdate aplikasi lama agar penanganan tombol BACK berfungsi dengan baik untuk Android 2.0 dan versi platform yang lebih lama, Anda dapat menggunakan pendekatan yang mirip dengan yang ditunjukkan di atas. Kode Anda dapat menangkap peristiwa tombol target saat tombol ditekan, menetapkan tanda untuk melacak peristiwa tombol, lalu juga menangkap peristiwa saat tombol dilepaskan, yang akan menjalankan tindakan yang diinginkan jika tanda pelacakan ditetapkan. Anda juga perlu memantau perubahan fokus dan menghapus tanda pelacakan saat mendapatkan/kehilangan fokus.

    Laporan perbedaan API

    Untuk melihat tampilan mendetail tentang perubahan API di Android 2.0 (API Level 5), dibandingkan dengan versi sebelumnya, lihat Laporan Perbedaan API.