Android 2.0, Rilis 1

Level API: 5

Android 2.0 adalah rilis platform utama yang dapat diterapkan ke handset yang didukung Android mulai November 2009. Rilis ini mencakup fitur baru untuk pengguna dan developer, serta perubahan dalam 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 mematuhi kebijakan, serta serangkaian skin emulator, aplikasi contoh, dan lainnya. 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 ke SDK.

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 berikut:

  • Beker
  • Browser
  • Kalkulator
  • Perekam video
  • Kamera
  • Kontak
  • Lokalitas Kustom (aplikasi developer)
  • Alat Developer (aplikasi developer)
  • Dialer
  • Email
  • Galeri
  • Pembuat Gestur
  • IME untuk input teks Jepang
  • Fitur 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 ini (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 ini berisi serangkaian skin emulator yang bisa 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 (480x854 kepadatan tinggi, layar normal)

    Untuk informasi selengkapnya tentang cara mengembangkan aplikasi yang ditampilkan dan berfungsi dengan baik pada 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 menyertakan 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 menyediakan 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 diberikan 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 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

    • Mengaktifkan/menonaktifkan Bluetooth
    • Penemuan perangkat dan layanan
    • Menghubungkan ke perangkat jarak jauh menggunakan RFCOMM dan kirim/terima data
    • Mengiklankan layanan RFCOMM dan memproses koneksi RFCOMM yang masuk

    Adaptor sinkronisasi

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

    Pengelola Akun

    • API Account Manager terpusat untuk menyimpan dan mengakses token/sandi autentikasi dengan aman

    Kontak

    • API kontak baru yang mengizinkan 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.
    • Thumbnail API baru untuk mengambil thumbnail gambar dan video on demand.

    Framework Lainnya

    • Tema sistem baru di android.R.style untuk menampilkan aktivitas dengan mudah di atas wallpaper sistem saat ini atau mempertahankan aktivitas sebelumnya di latar belakang.
    • WallpaperManager API baru menggantikan dan memperluas API wallpaper yang sebelumnya ada dalam Context, untuk memungkinkan aplikasi meminta dan menyetel wallpaper sistem.
    • API Layanan baru untuk membantu aplikasi menangani siklus proses Layanan dengan benar, dalam situasi memori rendah, yang dapat mengakibatkan Layanan dimatikan saat sedang berjalan.
      • Service.setForeground() tidak digunakan lagi dan sekarang secara efektif tidak menjalankan operasi. Hal ini diganti dengan API baru, startForeground(), yang membantu (dan memerlukan) mengaitkan notifikasi yang sedang berlangsung 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 tekan lama, serta mekanisme baru untuk membatalkan penekanan tombol (untuk tombol virtual).
    • WindowManager.LayoutParams memiliki konstanta baru yang memungkinkan jendela untuk mengaktifkan layar saat ditampilkan dan menampilkan jendela meskipun layar terkunci. Hal ini memungkinkan aplikasi mengimplementasikan hal-hal seperti jam alarm yang seharusnya membangunkan perangkat dengan lebih rapi.
    • Intent API baru yang menyiarkan status terpasang ke dok perangkat dan mengizinkan aplikasi untuk meluncurkan aktivitas khusus ketika perangkat diletakkan di desktop atau dok mobil.

    Peristiwa tombol dijalankan saat tombol ditekan

    Android 2.0 didesain untuk berjalan pada 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 saat key-up, untuk pasangan key-down/key-up, bukan key-down. Hal ini akan membantu mencegah peristiwa tombol yang tidak disengaja dan memungkinkan pengguna menekan area tombol, lalu menariknya keluar tanpa menghasilkan peristiwa.

    Perubahan perilaku ini hanya akan memengaruhi aplikasi Anda jika aplikasi mengintersep peristiwa tombol dan melakukan tindakan saat tombol ditekan, bukan saat tombol ditekan. Terutama jika aplikasi mengintersepsi tombol KEMBALI, Anda harus memastikan aplikasi menangani peristiwa tombol dengan benar.

    Secara umum, mengintersep tombol KEMBALI dalam aplikasi tidak direkomendasikan, tetapi jika aplikasi Anda melakukannya dan memanggil tindakan saat key-down, bukan key-up, Anda harus mengubah kode.

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

    • Jika Anda menghentikan tombol KEMBALI dalam aktivitas atau dialog, cukup implementasikan metode onBackPressed() baru.
    • Jika Anda mengintersep tombol KEMBALI dalam tampilan, Anda harus melacak peristiwa tombol saat tombol ditekan (melalui metode startTracking() baru), lalu memanggil tindakan saat 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 Anda ingin mengupdate 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 target ditekan, menetapkan tanda untuk melacak peristiwa tombol, dan juga menangkap peristiwa saat tombol target dijalankan, menjalankan tindakan yang diinginkan jika tanda pelacakan ditetapkan. Anda juga harus memperhatikan perubahan fokus dan menghapus tanda pelacakan saat mendapatkan/kehilangan fokus.

    Laporan perbedaan API

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