Android 2.0, Rilis 1

Level API: 5

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

Untuk pengembang, platform Android 2.0 tersedia sebagai yang dapat didownload untuk Android SDK. Platform yang dapat didownload berisi library Android dan image sistem yang sepenuhnya kompatibel, serta serangkaian emulator {i>skin<i}, contoh aplikasi, dan banyak lagi. Platform yang dapat didownload sepenuhnya mematuhi kebijakan 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)
  • Alat Developer (aplikasi developer)
  • Dialer
  • Email
  • Galeri
  • Pembuat Gestur
  • IME untuk input teks bahasa Jepang
  • Messaging
  • Musik
  • Setelan
  • Suku Cadang (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. Pada 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, CHN (zh_CN)
  • China, Taiwan (zh_TW)
  • Ceko (cs_CZ)
  • Belanda, Belanda (nl_NL)
  • Belanda, Belgia (nl_BE)
  • Inggris, Amerika Serikat (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 bisa diakses melalui Setelan.

    Skin Emulator

    Platform yang dapat didownload ini berisi serangkaian skin emulator yang bisa Anda gunakan untuk memodelkan 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 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 menyediakan informasi tentang API kerangka kerja 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 di 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 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
    • Mengiklankan layanan RFCOMM dan memproses 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 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 on demand.

    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 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 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 dirancang untuk berjalan pada perangkat yang menggunakan tombol virtual untuk BERANDA, MENU, BACK, dan SEARCH, bukan tombol fisik. Untuk mendukung pengguna terbaik di perangkat tersebut, platform Android sekarang mengeksekusi tombol-tombol ini {i>key-up<i}, untuk pasangan {i>key-down/key-up<i}, bukan {i>key-down<i}. 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 BACK dalam aplikasi tidak disarankan, namun, jika aplikasi Anda melakukannya dan memanggil beberapa tindakan pada {i>key-down<i}, bukan {i>key-up<i}, Anda harus mengubah kodenya.

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

    • Jika Anda mencegat tombol BACK dalam aktivitas atau dialog, cukup implementasikan metode onBackPressed() baru.
    • Jika mencegat tombol BACK dalam tampilan, Anda harus melacak tombol peristiwa saat key-down (melalui startTracking() baru ), kemudian panggil aksi saat menekan tombol. 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 lama, Anda bisa 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 pada key-up, mengeksekusi tindakan yang diinginkan jika penanda diatur. Anda juga ingin mengamati perubahan fokus dan menghapus 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.