Lưu ý: Với bản phát hành Android 9.0 (API cấp 28), có
một phiên bản mới của thư viện hỗ trợ có tên là
AndroidX là một phần của Jetpack.
Thư viện AndroidX
chứa thư viện hỗ trợ hiện có và cũng bao gồm các thành phần Jetpack mới nhất.
Bạn có thể tiếp tục sử dụng thư viện hỗ trợ.
Các cấu phần phần mềm lịch sử (những phiên bản từ 27 trở về trước và được đóng gói dưới dạng android.support.*
) sẽ
vẫn có mặt trên Google Maven. Tuy nhiên, tất cả hoạt động phát triển thư viện mới
sẽ xảy ra trong thư viện AndroidX.
Bạn nên sử dụng thư viện AndroidX trong tất cả các dự án mới. Bạn cũng nên cân nhắc
di chuyển các dự án hiện có sang AndroidX.
Khi phát triển các ứng dụng hỗ trợ nhiều phiên bản API, có thể bạn cần có một cách tiêu chuẩn để cung cấp các tính năng mới hơn trên các phiên bản Android trước đây hoặc dễ dàng quay lại chức năng tương đương. Thay vì mã bản dựng để xử lý các phiên bản trước đó của nền tảng, bạn có thể tận dụng các thư viện này để cung cấp lớp tương thích. Ngoài ra, Thư viện hỗ trợ cung cấp thêm các lớp tiện lợi và tính năng không có trong API Khung chuẩn để phát triển và hỗ trợ dễ dàng hơn cho nhiều thiết bị.
Ban đầu, Thư viện hỗ trợ Android là một thư viện tệp nhị phân duy nhất dành cho các ứng dụng phát triển thành một bộ thư viện để phát triển ứng dụng. Nhiều phần trong số này thư viện hiện là một phần của ứng dụng nếu không cần thiết phát triển ứng dụng.
Tài liệu này cung cấp thông tin tổng quan về thư viện hỗ trợ để giúp bạn hiểu rõ các thành phần của thành phần đó cũng như cách sử dụng hiệu quả trong ứng dụng.
Thận trọng: Kể từ bản phát hành Thư viện hỗ trợ 26.0.0 (Tháng 7 năm 2017), cấp độ API tối thiểu được hỗ trợ trên hầu hết các thư viện hỗ trợ đã tăng lên Android 4.0 (API cấp 14) cho hầu hết các gói thư viện. Cho để biết thêm thông tin, hãy xem Gói và hỗ trợ phiên bản Tên trên trang này.
Cách sử dụng thư viện hỗ trợ
Có một số cách sử dụng riêng biệt cho các thư viện hỗ trợ. Lùi lại các lớp tương thích cho các phiên bản trước đó của nền tảng chỉ là một trong những chúng. Dưới đây là danh sách đầy đủ hơn về những cách bạn có thể sử dụng thư viện hỗ trợ trong ứng dụng của bạn:
-
Khả năng tương thích ngược đối với các API mới hơn – Phần lớn
các thư viện hỗ trợ cung cấp khả năng tương thích ngược cho khung mới hơn
các lớp và phương thức. Ví dụ:
Fragment
lớp hỗ trợ hỗ trợ các mảnh trên thiết bị chạy phiên bản trước Android 3.0 (API cấp 11). -
Lớp tiện lợi và trợ giúp - Thư viện hỗ trợ cung cấp
số lượng lớp trợ giúp, đặc biệt là cho việc phát triển giao diện người dùng. Cho
Ví dụ: lớp
RecyclerView
cung cấp cho một người dùng tiện ích giao diện để hiển thị và quản lý các danh sách rất dài, có thể dùng trên các phiên bản Android từ API cấp 7 trở lên. -
Gỡ lỗi và tiện ích - Có một số tính năng
cung cấp những tiện ích khác ngoài đoạn mã mà bạn kết hợp vào ứng dụng, bao gồm
support-annotations
thư viện để cải thiện việc kiểm tra tìm lỗi mã nguồn đối với đầu vào phương thức và hỗ trợ Multidex cho định cấu hình và phân phối ứng dụng bằng hơn 65.536 phương thức.
Sử dụng API Hỗ trợ so với API Khung
Thư viện hỗ trợ cung cấp các lớp và phương thức gần giống với API trong Khung Android. Khi khám phá ra điều này, có thể bạn thắc mắc liệu mình có nên sử dụng phiên bản khung của API hoặc thư viện hỗ trợ tương đương. Ở đây là nguyên tắc về thời điểm nên sử dụng các lớp trong thư viện hỗ trợ của API Khung:
- Khả năng tương thích cho một tính năng cụ thể - Nếu bạn muốn hỗ trợ một tính năng nền tảng gần đây trên các thiết bị đang chạy các phiên bản cũ hơn của nền tảng, hãy sử dụng các lớp và phương thức tương đương trong thư viện hỗ trợ.
-
Khả năng tương thích với các tính năng của Thư viện có liên quan – Tinh vi hơn
các lớp thư viện hỗ trợ có thể phụ thuộc vào một hoặc nhiều dịch vụ hỗ trợ bổ sung
các lớp thư viện, vì vậy bạn nên dùng các lớp thư viện hỗ trợ cho những lớp đó
phần phụ thuộc. Ví dụ:
ViewPager
lớp hỗ trợ sẽ được dùng vớiFragmentPagerAdapter
hoặc các lớp hỗ trợFragmentStatePagerAdapter
. -
Khả năng tương thích chung với thiết bị - Nếu bạn không có một ứng dụng
tính năng nền tảng mà bạn dự định sử dụng với ứng dụng của mình theo một cách tương thích ngược
bạn vẫn nên sử dụng các lớp thư viện hỗ trợ trong ứng dụng của mình.
Ví dụ: bạn nên sử dụng
ActivityCompat
thay cho lớpActivity
của khung để có thể tận dụng các tính năng mới hơn sau này, chẳng hạn như kết hợp mô hình quản lý quyền mới ra mắt trong Android 6.0 (API cấp 23).
Các lớp Thư viện hỗ trợ cung cấp cách triển khai nền tảng tương thích Các lớp API có thể không cung cấp được tập hợp chức năng đầy đủ có trong bản phát hành mới nhất, do những hạn chế của thiết bị lưu trữ phiên bản nền tảng. Trong những trường hợp này, các lớp trong Thư viện hỗ trợ được thiết kế để xuống cấp nhẹ và có thể không cung cấp tất cả chức năng hoặc dữ liệu của API nền tảng hiện tại. Vì lý do này, bạn nên xem lại tham chiếu tài liệu về các lớp và phương thức thư viện mà bạn sử dụng, cũng như thử nghiệm trên các thiết bị chạy phiên bản sớm nhất của nền tảng được hỗ trợ bởi ứng dụng của bạn.
Lưu ý: Các thư viện hỗ trợ không cung cấp hướng dẫn tương đương các lớp và phương thức cho từng API khung. Trong một số trường hợp, có thể bạn cần phải gói lệnh gọi phương thức khung bằng cách kiểm tra phiên bản SDK rõ ràng và cung cấp mã thay thế để xử lý các phương thức không có trên thiết bị. Để biết thêm thông tin về cách sử dụng quy trình kiểm tra phiên bản trong mã của bạn, hãy xem phần Hỗ trợ các phiên bản khác nhau Phiên bản nền tảng.
Hỗ trợ phiên bản và tên gói
Một số gói Thư viện hỗ trợ có tên gói để cho biết mức tối thiểu của API mà họ hỗ trợ ban đầu, sử dụng ký hiệu v#, chẳng hạn như support-v4. Bắt đầu với Thư viện hỗ trợ phiên bản 26.0.0 (phát hành vào Tháng 7 năm 2017), cấp độ API tối thiểu được hỗ trợ đã thay đổi thành Android 4.0 (API) cấp 14) cho tất cả gói thư viện hỗ trợ. Vì lý do này, khi làm việc với bất kỳ bản phát hành thư viện hỗ trợ nào gần đây, bạn không nên giả định rằng ký hiệu gói v# cho biết mức hỗ trợ API tối thiểu. Thay đổi này trong các bản phát hành gần đây cũng có nghĩa là các gói thư viện có v4 và v7 về cơ bản là tương đương về cấp độ API tối thiểu mà chúng hỗ trợ. Ví dụ: cả gói support-v4 và support-v7 đều hỗ trợ mức tối thiểu API cấp 14, đối với các bản phát hành Thư viện hỗ trợ từ phiên bản 26.0.0 trở lên.
Các phiên bản phát hành của Thư viện hỗ trợ
phiên bản phát hành của Thư viện hỗ trợ, chẳng hạn như 24.2.0 hoặc 25.0.1, là khác với cấp độ API tối thiểu được hỗ trợ bởi bất kỳ thư viện nào trong đó release.Số phiên bản phát hành cho biết phiên bản nền tảng API mà hệ thống này được xây dựng dựa trên đó, và do đó, các API mới nhất có thể là có trong phiên bản thư viện này.
Cụ thể, phần đầu tiên của số phiên bản phát hành, ví dụ: 24 trong phiên bản 24.2.0, thường tương ứng với phiên bản của Platform API được cung cấp vào thời điểm phát hành. Cấp phiên bản phát hành của thư viện hỗ trợ cho biết thư viện này có tích hợp một số tính năng của API đó nhưng bạn không nên giả định rằng nó sẽ tương thích với tất cả được phát hành trong phiên bản API nền tảng mới.
Phần phụ thuộc của thư viện
Hầu hết các thư viện trong bộ Thư viện hỗ trợ Android đều có một số phần phụ thuộc trên
một hoặc nhiều thư viện. Ví dụ: hầu hết các thư viện hỗ trợ đều có
phần phụ thuộc trên gói support-compat
. Nhìn chung, bạn không
cần lo lắng về việc hỗ trợ các phần phụ thuộc của thư viện, vì bản dựng gradle
công cụ giúp bạn quản lý các phần phụ thuộc thư viện bằng cách tự động đưa vào
các thư viện phần phụ thuộc.
Nếu bạn muốn biết thư viện và phần phụ thuộc thư viện nào được đưa vào ứng dụng của bạn, hãy chạy lệnh sau ở thư mục gốc của bản dựng trong quá trình phát triển ứng dụng dự án để có được báo cáo về các phần phụ thuộc cho dự án đó, bao gồm Thư viện hỗ trợ Android và các thư viện khác:
gradle -q dependencies your-app-project:dependencies
Để biết thêm thông tin về cách thêm thư viện hỗ trợ vào quá trình phát triển của bạn dự án sử dụng Gradle, hãy xem phần Hỗ trợ Thiết lập thư viện. Để biết thêm thông tin về cách làm việc với Gradle, hãy xem Định cấu hình Bản dựng của bạn.
Xin lưu ý rằng tất cả Thư viện hỗ trợ Android cũng phụ thuộc vào một số cấp cơ sở của nền tảng, đối với các bản phát hành gần đây, đó là Android 4.0 (API cấp 14) hoặc cao hơn.