Android 2.0, Rilis 1

Level API: 5

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

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

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

Sorotan Platform

Untuk 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)
  • Developer Tools (aplikasi developer)
  • Dialer
  • Email
  • Galeri
  • Pembuat Gestur
  • IME untuk input teks bahasa Jepang
  • Pesan
  • Musik
  • Setelan
  • Suku Cadang (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. Dalam kasus lain, versi default bahasa akan digunakan. Bahasa yang tersedia di image sistem Android 2.0 tercantum di bawah (dengan deskriptor lokalitas language_country/region).

  • China, RRC (zh_CN)
  • China, Taiwan (zh_TW)
  • Ceko (cs_CZ)
  • Belanda, Belanda (nl_NL)
  • Belanda, Belgia (nl_BE)
  • Inggris, AS (en_US)
  • Inggris, Inggris (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 sekumpulan 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 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 Ant

    • Penandatanganan aplikasi mode rilis dan debug. 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 menghadirkan versi terbaru dari API framework. Seperti pada 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 tersebut, sebelum menginstal aplikasi.

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

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

    Ringkasan perubahan API

    Bluetooth

    • Aktifkan/nonaktifkan Bluetooth
    • Penemuan perangkat dan layanan
    • Menghubungkan ke perangkat jarak jauh menggunakan RFCOMM dan mengirim/menerima data
    • Iklankan layanan RFCOMM dan dengarkan koneksi RFCOMM yang masuk

    Adaptor sinkronisasi

    • API baru untuk adaptor sinkronisasi agar 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 baru memungkinkan developer membuat badge kontak di aplikasi mereka. Mengklik badge akan membuka jendela yang berisi daftar cara untuk menghubungi orang tersebut dengan sekali klik.

    WebView

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

    Kamera

    • Parameter baru untuk efek warna, mode adegan, mode flash, mode fokus, white balance, rotasi, dan setelan lainnya.
    • Antarmuka ZoomCallback baru untuk melakukan tindakan saat tingkat zoom telah berubah.

    Media

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

    Framework Lainnya

    • Tema sistem baru di android.R.style untuk dengan mudah menampilkan aktivitas di atas wallpaper sistem saat ini atau membuat aktivitas sebelumnya tetap terlihat di latar belakang.
    • WallpaperManager API baru menggantikan dan memperluas API wallpaper yang sebelumnya berada dalam Konteks, untuk memungkinkan aplikasi meminta dan menyetel wallpaper sistem.
    • Service API baru untuk membantu aplikasi menangani siklus proses Layanan dengan benar, dalam situasi memori rendah tertentu yang menyebabkan Service dapat dimatikan saat sedang berjalan.
      • Service.setForeground() tidak digunakan lagi dan kini secara efektif tidak menjalankan operasi. Ini diganti dengan API baru, startForeground(), yang membantu (dan memerlukan) mengaitkan notifikasi berkelanjutan dengan status latar depan.
    • MotionEvent sekarang dapat melaporkan informasi sentuh simultan untuk perangkat yang mendukungnya. Hingga tiga pointer dapat dilacak secara bersamaan.
    • KeyEvent memiliki API pengiriman kunci baru, untuk membantu mengimplementasikan perilaku tindakan atas dan penekanan 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 dok perangkat dan memungkinkan aplikasi meluncurkan aktivitas khusus saat perangkat ditempatkan di desktop atau dok mobil.

    Peristiwa tombol dieksekusi saat tombol naik

    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 mengeksekusi tombol ini saat 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 menariknya tanpa menghasilkan peristiwa.

    Perubahan perilaku ini hanya akan memengaruhi aplikasi Anda jika aplikasi mencegat peristiwa tombol dan melakukan tindakan saat tombol bawah, 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 disarankan, namun, jika aplikasi Anda melakukannya dan memanggil beberapa tindakan saat key-down, bukan key-up, Anda harus mengubah kode.

    Jika aplikasi Anda akan menggunakan API yang diperkenalkan dalam 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 implementasikan metode onBackPressed() baru.
    • Jika Anda mencegat tombol KEMBALI dalam tampilan, Anda harus melacak peristiwa tombol saat tombol bawah (melalui metode startTracking() baru), lalu memanggil tindakan saat tombol naik. 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 Anda ingin memperbarui aplikasi lama agar penanganan tombol KEMBALI 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, dan juga menangkap peristiwa saat tombol ditekan, sehingga menjalankan tindakan yang diinginkan jika tanda pelacakan ditetapkan. Anda juga dapat memantau perubahan fokus dan menghapus tanda pelacakan saat mendapatkan/kehilangan fokus.

    Laporan perbedaan API

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