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 chính của nền tảng có thể triển khai cho điện thoại di động hỗ trợ 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 dành 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 cung cấp dưới dạng thành phần có thể tải xuống cho SDK Android. Nền tảng có thể tải xuống bao gồm một thư viện Android và hình ảnh hệ thống tuân thủ đầy đủ, cũng như một bộ giao diện trình mô phỏng, ứng dụng mẫu và nhiều nội dung khác. Nền tảng có thể tải xuống tuân thủ đầy đủ và không có thư viện bên ngoài.

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

Nền tảng nổi bật

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

Ứng dụng tích hợp

Hình ảnh hệ thống có 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:

  • Đồng hồ báo thức
  • Trình duyệt
  • Máy tính
  • Máy quay video
  • Camera
  • Danh bạ
  • Ngôn ngữ tuỳ chỉnh (ứng dụng dành cho nhà phát triển)
  • Công cụ cho nhà phát triển (ứng dụng dành cho 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
  • Âm nhạc
  • Cài đặt
  • Phụ tùng (ứng dụng dành cho 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ữ được tích hợp sẵn. 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, phiên bản mặc định của ngôn ngữ sẽ được sử dụng. Chiến lược phát hành đĩa đơn các ngôn ngữ có sẵn trong hệ thống Android 2.0 hình ảnh được liệt kê bên dưới (kèm theo ngôn ngữ language_country/region mã mô tả).

  • Tiếng Trung, Trung Quốc (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 các ngôn ngữ có thể truy cập được trong phần Cài đặt.

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

    Nền tảng có thể tải xuống bao gồm một bộ giao diện trình mô phỏng mà bạn có thể dùng để lập mô hình ứng dụng theo 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:

    • QVGA (240 x 320, 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 thông thường)
    • HVGA (320x480, mật độ trung bình, màn hình thông thường)
    • WVGA800 (480x800, mật độ cao, màn hình thông thường)
    • WVGA854 (480x854 mật độ cao, màn hình thông 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ả 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 dành cho 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 để 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ợ cho 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 gán một giá trị nhận dạ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 xem một ứ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.

    Để sử 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, "5", trong các thuộc tính của phần tử <uses-sdk> trong 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 các thay đổi về API

    Bluetooth

    • Bật/tắt Bluetooth
    • Khám phá thiết bị và dịch vụ
    • Kết nối với 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á

    • Các API mới dành cho các 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ữ và truy cập vào mã thông báo/mật khẩu xác thực một cách an toàn

    Danh bạ

    • API danh bạ mới cho phép lấy dữ liệu từ nhiều tài khoản
    • Các 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ổ sẽ mở ra với danh sách các cách liên hệ với người đó chỉ bằng một lần nhấp.

    WebView

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

    Camera

    • Các thông số mới cho hiệu ứng màu, chế độ cảnh, chế độ đèn flash, chế độ lấy nét, độ cân bằng trắng, chế độ xoay và các chế độ 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 đượ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.

    Khung khác

    • Các giao diện hệ thống mới trong 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 hiển thị hoạt động trước đó ở chế độ nền.
    • API WallpaperManager mới thay thế và mở rộng các API hình nền trước đây trong Context, cho phép các ứng dụng yêu cầu và đặt hình nền hệ thống.
    • API Dịch vụ mới giúp các ứng dụng xử lý chính xác vòng đời của Dịch vụ, đặc biệt là trong các trường hợp bộ nhớ thấp, khi một Dịch vụ có thể bị tắt trong khi đang chạy.
      • Service.setForeground() đã ngừng hoạt động và hiện không thực hiện được thao tác nào một cách hiệu quả. Thay thế này bằng một API mới có tên 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 về thao tác chạm đồng thời cho các thiết bị hỗ trợ thao tác này. Bạn có thể theo dõi đồng thời tối đa 3 con trỏ.
    • KeyEvent có các API điều phối phím mới để giúp triển khai thao tác bật lên và thao tác nhấn và giữ, cũng như cơ chế mới để huỷ thao tác nhấn phím (đối với 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 màn hình hiển thị và hiện 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 các tính năng như đồng hồ báo thức để đánh thức thiết bị một cách rõ ràng hơn.
    • Các API Ý định mới truyền trạng thái kết nối của thiết bị và cho phép các ứng dụng chạy các hoạt động đặc biệt khi thiết bị được đặt trên máy tính để bàn hoặc đế cắm ô tô.

    Sự kiện chính được thực thi khi nhả phím

    Android 2.0 được thiết kế để chạy trên các thiết bị sử dụng phím ảo cho màn hình Home, 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 ở trạng thái nhả phím, cho một cặp phím nhấn/nhả phím, thay vì nhấn phím. Điều này giúp ngăn chặn các sự kiện nút do vô tình và cho phép người dùng nhấn vào khu vực nút rồi kéo ra khỏi khu vực đó 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 chặn các sự kiện nút và thực hiện thao tác khi nhấn phím, thay vì bật thiết lập chìa khoá. Đặc biệt nếu ứng dụng của bạn chặn phím BACK, bạn nên đảm bảo rằng ứng dụng của bạn đ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 ứng dụng. Tuy nhiên, nếu ứng dụng của bạn đang chặn phím này và gọi một số thao tác khi nhấn phím thay vì khi nhả phím, thì bạn nên sửa đổi mã của mình.

    Nếu ứng dụng của bạn sử dụng API được giới thiệu trong Android 2.0 (API cấp độ 5), 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 đang 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 phím này sự kiện khi nhấn phím (thông qua startTracking() mới phương thức), sau đó gọi thao tác tại thời điểm khoá. Dưới đây là một 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 bạn muốn cập nhật một ứng dụng cũ để ứng dụng đó xử lý QUAY LẠI hoạt động đúng cách cho cả Android 2.0 và các phiên bản nền tảng cũ hơn, bạn có thể sử dụng phương pháp tương tự như đã trình bày ở trên. Mã của bạn có thể phát hiện sự kiện nút mục tiêu khi nhấn phím, đặt cờ để theo dõi sự kiện nhấn phím, sau đó cũng phát hiện sự kiện khi nhả phím, thực thi hành động mong muốn nếu bạn đặt cờ theo dõi. Bạn cũng cần chú ý đến những thay đổi về tiêu điểm và xoá hoạt động theo dõi gắn cờ khi tăng/mất tiêu điểm.

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

    Để có cái nhìn chi tiết về các 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 khác biệt về API.