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 di API framework Android.

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

Untuk memulai pengembangan atau pengujian terhadap Android Android 2.0, gunakan Android SDK dan alat AVD Manager untuk download platform ke SDK Anda.

Sorotan Platform

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

Aplikasi Bawaan

Image sistem yang disertakan dalam platform yang dapat didownload memberikan informasi aplikasi bawaan:

  • Beker
  • Browser
  • Kalkulator
  • Perekam video
  • Kamera
  • Kontak
  • Lokalitas Kustom (aplikasi developer)
  • Dev Tools (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 spesifik per region tersedia untuk lokalitas. Dalam kasus lain, versi default bahasa akan digunakan. Tujuan bahasa yang tersedia di sistem Android 2.0 gambar tercantum di bawah (dengan lokalitas language_negara/wilayah deskripsi).

  • 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 memberikan informasi tentang fitur developer baru yang ditawarkan oleh komponen platform Android 2.0 yang dapat didownload.

    Dukungan Ant

    • Penandatanganan aplikasi dalam mode debug dan 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).

    Framework API

    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 framework yang telah diupdate Compute Engine API. 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 untuk menentukan dengan benar apakah suatu aplikasi kompatibel dengan sistem, sebelum menginstal aplikasi.

    Untuk menggunakan API yang diperkenalkan di Android 2.0 di aplikasi, Anda harus setel nilai yang tepat, "5", di atribut <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 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 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 pemandangan, 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.
    • Service API baru untuk membantu aplikasi menangani siklus proses Layanan dengan benar, terutama dalam situasi memori rendah saat Layanan dapat dihentikan saat sedang berjalan.
      • Service.setForeground() tidak digunakan lagi dan sekarang tidak melakukan operasi apa pun secara efektif. Ini diganti dengan API baru, startForeground(), yang membantu (dan mengharuskan) mengaitkan notifikasi berkelanjutan dengan status latar depan.
    • MotionEvent kini dapat melaporkan informasi sentuhan simultan untuk perangkat yang mendukungnya. Hingga 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 untuk mengaktifkan layar saat ditampilkan dan menampilkan jendela meskipun layar terkunci. Hal ini memungkinkan aplikasi menerapkan hal-hal seperti jam alarm yang akan mengaktifkan perangkat dengan lebih bersih.
    • 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 utama yang dijalankan saat tombol dilepaskan

    Android 2.0 dirancang 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 kejadian tombol yang tidak disengaja dan memungkinkan pengguna menekan area tombol lalu menyeretnya tanpa perlu membuat peristiwa.

    Perubahan perilaku ini hanya akan memengaruhi aplikasi Anda jika mencegat kejadian tombol dan mengambil tindakan pada {i>key-down<i}, bukan pada kunci ke atas. Khususnya jika aplikasi Anda menginterupsi tombol BACK, Anda harus pastikan aplikasi Anda 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 Anda mencegat tombol KEMBALI dalam tampilan, Anda harus melacak peristiwa tombol saat tombol ditekan (melalui metode startTracking() baru), lalu memanggil tindakan saat tombol dilepaskan. 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 pada saat {i>key-down<i}, menyetel penanda untuk melacak peristiwa tombol, dan juga menangkap peristiwa saat key-up, mengeksekusi tindakan yang diinginkan jika penanda diatur. 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.