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 này bao gồm thư viện Android và hình ảnh hệ thống hoàn toàn tương thích, cũng như một tập hợp trình mô phỏng giao diện, ứng dụng mẫu và hơn thế nữa. Nền tảng có thể tải xuống này hoàn toàn tuân thủ và không bao gồm 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 (với ngôn ngữ language_country/region mã mô tả).

  • Tiếng Trung, Cộng hoà Nhân dân Trung Hoa (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 tập hợp các giao diện trình mô phỏng mà bạn có thể dùng để lập mô hình ứng dụng của mình ở 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 (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 (480 x 800, mật độ cao, màn hình bình thường)
    • WVGA854 (mật độ cao 480 x 854, 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ả thiết bị chạy Android, hãy xem phần Hỗ trợ nhiều màn hình.

    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ợ 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 khung cập nhật API. Giống như các phiên bản trước, API Android 2.0 được gán một mã nhận dạng số nguyên — 5 — tức là đượ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 để xác định chính xác xem một ứng dụng có tương thích với hệ thố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 của mình, bạn cần phải đặt giá trị thích hợp "5" trong các thuộc tính của <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 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à lắng 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 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
    • API khung Liên hệ nhanh mới cho phép nhà phát triển tạo huy hiệu người liên hệ trong ứng dụng của họ. Khi bạn nhấp vào huy hiệu, một cửa sổ sẽ mở ra, trong đó 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 thông số mới cho hiệu ứng màu, chế độ cảnh, chế độ flash, chế độ lấy nét, cân bằng trắng, 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

    • Giờ đây, Mediascanner sẽ 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.

    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 sẽ thay thế và mở rộng các API hình nền trước đây trong Ngữ cảnh, để 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ụ thể là các trường hợp dung lượng bộ nhớ thấp khi Dịch vụ có thể bị tắt trong khi đang chạy.
      • Ngừng sử dụng Service.setForeground() và hiện không thực hiện hoạt động 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.
    • MotionEvent hiện có thể báo cáo thông tin chạm đồng thời cho các thiết bị hỗ trợ tính năng này. Có thể theo dõi tối đa ba con trỏ cùng một lúc.
    • 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 những tính năng như đồng hồ báo thức sẽ đánh thức thiết bị một cách rõ ràng hơn.
    • Các API Ý định mới thông báo trạng thái đế sạc của thiết bị và cho phép ứng dụng khởi chạy các hoạt động đặc biệt khi thiết bị được đặt vào đế trên máy tính để bàn hoặc trên ô tô.

    Các sự kiện chính được thực thi khi thiết lập khoá

    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ợ người dùng tốt nhất trải nghiệm người dùng trên các thiết bị đó, nền tảng Android giờ đây sẽ thực thi các nút này ở thực hiện thao tác nhấn phím mũi tên lên, thay vì nhấn phím mũi tên xuống. Điều này giúp ngăn chặn sự kiện nút do nhầm lẫn và cho phép người dùng nhấn vào khu vực nút rồi kéo mà không tạo 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.

    Nói 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 làm như vậy và ứng dụng sẽ gọi một số hành động về nhấn phím mũi tên xuống thay vì tắt phím, 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ẫ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 có thể 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ể nắm bắt nhắm mục tiêu sự kiện nút khi nhấn phím, đặt cờ để theo dõi sự kiện chính và sau đó cũng nắm bắt sự kiện đó khi thiết lập khoá, thực thi hành động mong muốn nếu hoạt động theo dõi cờ đã được đặt. 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.