Android 2.0, Bản phát hành 1

Cấp độ API: 5

Android 2.0 là một bản phát hành nền tảng lớn có thể triển khai cho các điện thoại di động chạy Android bắt đầu từ tháng 11 năm 2009. Bản phát hành bao gồm các tính năng mới cho người dùng và nhà phát triển, cũng như các thay đổi trong API khung Android.

Đối với các nhà phát triển, nền tảng Android 2.0 có sẵn dưới dạng một thành phần có thể tải xuống cho SDK Android. Nền tảng có thể tải xuống này bao gồm một thư viện Android và hình ảnh hệ thống hoàn toàn tuân thủ, cũng như một tập hợp các giao diện trình mô phỏng, các ứng dụng mẫu, v.v. Nền tảng có thể tải xuống này hoàn toàn tuân thủ và không có thư viện bên ngoài.

Để bắt đầu phát triển hoặc kiểm thử trên nền tảng Android 2.0, hãy sử dụng công cụ SDK Android và Trình quản lý thiết bị ảo Android để tải nền tảng xuống SDK của bạn.

Thông tin nổi bật về nền tảng

Để biết danh sách các tính năng mới dành cho người dùng và thông tin nổi bật về nền tảng, hãy xem tài liệu Những điểm nổi bật của nền tảng Android 2.0.

Ứng dụng tích hợp sẵn

Hình ảnh hệ thống trong nền tảng có thể tải xuống cung cấp các ứng dụng tích hợp sẵn sau:

  • Đồng hồ báo thức
  • Trình duyệt
  • Máy tính
  • Máy quay video
  • Camera
  • Danh bạ
  • Ngôn ngữ tùy chỉnh (ứng dụng của nhà phát triển)
  • Công cụ cho nhà phát triển (ứng dụng của nhà phát triển)
  • Dialer
  • Email
  • Thư viện
  • Trình tạo cử chỉ
  • IME để nhập văn bản tiếng Nhật
  • Nhắn tin
  • Nhạc
  • Cài đặt
  • Phụ tùng (ứng dụng của nhà phát triển)

Ngôn ngữ

Hình ảnh hệ thống trong nền tảng có thể tải xuống cung cấp nhiều ngôn ngữ tích hợp. Trong một số trường hợp, các chuỗi theo khu vực cụ thể cũng có sẵn cho ngôn ngữ. Trong các trường hợp khác, hệ thống sẽ sử dụng phiên bản mặc định của ngôn ngữ. Các ngôn ngữ có sẵn trong ảnh hệ thống Android 2.0 được liệt kê dưới đây (kèm theo mã mô tả ngôn ngữ ngôn ngữ _quốc gia/khu vực).

  • Tiếng Trung, PRC (zh_CN)
  • Tiếng Trung, Đài Loan (zh_TW)
  • Tiếng Séc (cs_CZ)
  • Tiếng Hà Lan, Hà Lan (nl_NL)
  • Tiếng Hà Lan, Bỉ (nl_BE)
  • Tiếng Anh, Mỹ (en_US)
  • Tiếng Anh, Anh (en_GB)
  • Tiếng Anh, Canada (en_CA)
  • Tiếng Anh, Úc (en_AU)
  • Tiếng Anh, New Zealand (en_NZ)
  • Tiếng Anh, Singapore(en_SG)
  • Tiếng Pháp, Pháp (fr_FR)
  • Tiếng Pháp, Bỉ (fr_BE)
  • Tiếng Pháp, Canada (fr_CA)
  • Tiếng Pháp, Thuỵ Sĩ (fr_CH)
  • Tiếng Đức, Đức (de_DE)
  • Tiếng Đức, Áo (de_AT)
  • Tiếng Đức, Thuỵ Sĩ (de_CH)
  • Tiếng Đức, Liechtenstein (de_LI)
  • Tiếng Ý, Ý (it_IT)
  • Tiếng Ý, Thuỵ Sĩ (it_CH)
  • Tiếng Nhật (ja_JP)
  • Tiếng Hàn (ko_KR)
  • Tiếng Ba Lan (pl_PL)
  • Tiếng Nga (ru_RU)
  • Tiếng Tây Ban Nha (es_ES)
  • Chuỗi giao diện người dùng đã bản địa hoá khớp với ngôn ngữ mà bạn có thể truy cập thông qua phần Cài đặt.

    Giao diện trình mô phỏng

    Nền tảng có thể tải xuống này bao gồm một tập hợp giao diện trình mô phỏng mà bạn có thể sử dụng để lập mô hình ứng dụng ở nhiều kích thước và độ phân giải màn hình. Các giao diện của trình mô phỏng là:

    • QVGA (240x320, mật độ thấp, màn hình nhỏ)
    • WQVGA (240x400, mật độ thấp, màn hình bình thường)
    • FWQVGA (240x432, mật độ thấp, màn hình bình thường)
    • HVGA (320 x 480, mật độ trung bình, màn hình bình thường)
    • WVGA800 (480x800, mật độ cao, màn hình bình thường)
    • WVGA854 (480x854 mật độ cao, màn hình bình thường)

    Để biết thêm thông tin về cách phát triển một ứng dụng hiển thị và hoạt động đúng cách trên tất cả các thiết bị chạy Android, hãy xem phần Hỗ trợ nhiều màn hình.

    Các tính năng của nhà phát triển

    Các phần dưới đây cung cấp thông tin về các tính năng mới dành cho nhà phát triển do thành phần nền tảng Android 2.0 có thể tải xuống cung cấp.

    Hỗ trợ kiến

    • Ký ứng dụng ở chế độ gỡ lỗi và phát hành. Tính năng ký ở chế độ phát hành bao gồm dịch vụ hỗ trợ tích hợp cho việc tối ưu hoá zipalign. Để biết thêm thông tin, hãy xem phần Ký ứng dụng.
    • Thêm hệ thống xây dựng Ant mới có hỗ trợ các dự án đo lường Emma (mức độ sử dụng mã).

    API khung

    Các phần dưới đây cung cấp thông tin về API khung ứng dụng do nền tảng Android 2.0 cung cấp.

    Cấp độ API

    Nền tảng Android 2.0 cung cấp phiên bản cập nhật của API khung. Giống như các phiên bản trước, API Android 2.0 được chỉ định một giá trị nhận dạng bằng số nguyên — 5 — được lưu trữ trong chính hệ thống. Giá trị nhận dạng này được gọi là "Cấp độ API" cho phép hệ thống xác định chính xác liệu ứng dụng có tương thích với hệ thống hay không trước khi cài đặt ứng dụng.

    Để dùng các API được giới thiệu trong Android 2.0 trong ứng dụng, bạn cần đặt giá trị thích hợp là "5" trong các thuộc tính của phần tử <uses-sdk> ở tệp kê khai của ứng dụng.

    Để biết thêm thông tin về cách sử dụng Cấp độ API, hãy xem tài liệu về Cấp độ API.

    Tóm tắt về các thay đổi đối với API

    Bluetooth

    • Bật/tắt Bluetooth
    • Khám phá thiết bị và dịch vụ
    • Kết nối với một thiết bị từ xa bằng RFCOMM và gửi/nhận dữ liệu
    • Quảng cáo các dịch vụ RFCOMM và nghe kết nối RFCOMM đến

    Bộ điều hợp đồng bộ hoá

    • API mới cho bộ điều hợp đồng bộ hoá để kết nối với bất kỳ phần phụ trợ nào

    Người quản lý tài khoản

    • API trình quản lý tài khoản tập trung để lưu trữ an toàn và truy cập mã thông báo/mật khẩu xác thực

    Danh bạ

    • Các API danh bạ mới cho phép lấy dữ liệu từ nhiều tài khoản
    • API khung Liên hệ nhanh mới cho phép nhà phát triển tạo huy hiệu liên hệ trong ứng dụng của họ. Khi nhấp vào huy hiệu, một cửa sổ có danh sách các cách để liên hệ với người đó chỉ bằng một cú nhấp chuột.

    WebView

    • Các lớp không dùng nữa: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    Camera

    • Các tham số mới cho hiệu ứng màu sắc, chế độ cảnh, chế độ flash, chế độ lấy nét, cân bằng trắng, xoay và các cài đặt khác.
    • Giao diện ZoomCallback mới để thực hiện các thao tác khi mức thu phóng thay đổi.

    Nội dung nghe nhìn

    • MediaScanner hiện tạo hình thu nhỏ cho tất cả hình ảnh khi chúng được chèn vào MediaStore.
    • API hình thu nhỏ mới để truy xuất hình thu nhỏ của hình ảnh và video theo yêu cầu.

    Khuôn khổ khác

    • Các giao diện mới của hệ thống theo kiểu android.R.style giúp dễ dàng hiển thị các hoạt động ở đầu hình nền hệ thống hiện tại hoặc giữ cho hoạt động trước đó hiển thị trong nền.
    • API WallpaperManager mới thay thế và mở rộng các API hình nền trước đây nằm trong Context, để cho phép các ứng dụng yêu cầu và đặt hình nền hệ thống.
    • New Service API (API Dịch vụ mới) giúp ứng dụng xử lý chính xác Vòng đời của Dịch vụ, cụ thể là các trường hợp bộ nhớ thấp mà một Dịch vụ có thể bị dừng trong khi đang chạy.
      • Ngừng sử dụng Service.setForeground() và không thực hiện hoạt động nào một cách hiệu quả. API này được thay thế bằng một API mới, startForeground(), giúp (và yêu cầu) liên kết một thông báo đang diễn ra với trạng thái nền trước.
    • Giờ đây, MotionEvent có thể báo cáo thông tin cảm ứng đồng thời cho các thiết bị hỗ trợ MotionEvent. Có thể theo dõi đồng thời tối đa 3 con trỏ.
    • KeyEvent có các API điều phối khoá mới để giúp triển khai thao tác thao tác khi nhấn phím và nhấn và giữ, cũng như cơ chế mới để huỷ thao tác nhấn phím (dành cho phím ảo).
    • WindowManager.LayoutParams có các hằng số mới cho phép một cửa sổ đánh thức màn hình khi xuất hiện và hiển thị cửa sổ ngay cả khi màn hình bị khoá. Điều này cho phép các ứng dụng triển khai dễ dàng hơn những chức năng như đồng hồ báo thức có chức năng đánh thức thiết bị.
    • Các API Intent mới thông báo trạng thái đế sạc của thiết bị và cho phép các ứng dụng khởi chạy các hoạt động đặc biệt khi thiết bị được đặt trong một đế cho máy tính để bàn hoặc đế trên ô tô.

    Các sự kiện chính được thực thi khi khoá

    Android 2.0 được thiết kế để chạy trên các thiết bị sử dụng phím ảo cho TRANG CHỦ, TRÌNH ĐƠN, QUAY LẠI và TÌM KIẾM, thay vì các phím vật lý. Để hỗ trợ trải nghiệm người dùng tốt nhất trên các thiết bị đó, nền tảng Android hiện thực thi các nút này khi nhấn phím, thay vì nhấn phím xuống. Điều này giúp ngăn chặn các sự kiện nút ngẫu nhiên và cho phép người dùng nhấn vào khu vực nút rồi kéo ra khỏi vùng đó mà không tạo ra sự kiện.

    Thay đổi về hành vi này sẽ chỉ ảnh hưởng đến ứng dụng của bạn nếu ứng dụng đó chặn các sự kiện của nút và thực hiện thao tác khi nhấn phím xuống thay vì khi khoá phím. Đặc biệt nếu ứng dụng của bạn chặn phím BACK, bạn phải đảm bảo rằng ứng dụng đang xử lý các sự kiện chính đúng cách.

    Nhìn chung, bạn không nên chặn phím BACK trong một ứng dụng. Tuy nhiên, nếu ứng dụng của bạn đang làm như vậy và gọi ra một số thao tác khi nhấn phím xuống thay vì nhấn phím lên, thì bạn nên sửa đổi mã của mình.

    Nếu ứng dụng của bạn sẽ sử dụng API được giới thiệu trong Android 2.0 (API cấp độ 5), thì bạn có thể tận dụng các API mới để quản lý các cặp sự kiện chính:

    • Nếu bạn chặn phím BACK trong một hoạt động hoặc hộp thoại, chỉ cần triển khai phương thức onBackPressed() mới.
    • Nếu đang chặn phím BACK trong một khung hiển thị, bạn nên theo dõi sự kiện chính khi nhấn phím xuống (thông qua phương thức startTracking() mới), sau đó gọi hành động khi nhấn phím. Dưới đây là mẫu bạn có thể sử dụng:
    • 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);
          }
      

    Nếu muốn cập nhật một ứng dụng cũ để tính năng xử lý phím QUAY LẠI của ứng dụng đó hoạt động bình thường trên cả Android 2.0 và các phiên bản nền tảng cũ, thì bạn có thể dùng phương pháp tương tự như phương pháp nêu trên. Mã của bạn có thể bắt được sự kiện nút mục tiêu khi nhấn phím xuống, đặt cờ để theo dõi sự kiện chính, sau đó cũng nắm bắt được sự kiện khi nhấn phím, thực thi hành động mong muốn nếu cờ theo dõi được đặt. Bạn cũng nên theo dõi những thay đổi về tiêu điểm và xoá cờ theo dõi khi lấy/mất tiêu điểm.

    Báo cáo về sự khác biệt về API

    Để biết thông tin chi tiết về những thay đổi đối với API trong Android 2.0 (API cấp độ 5), so với phiên bản trước, hãy xem Báo cáo về sự khác biệt về API.