Sự khác biệt giữa android-support-v7-appcompat và android-support-v4


147

Tôi muốn biết sự khác biệt giữa android-support-v4.jarandroid-support-v7-appcompat.jar . Nếu tôi muốn thêm Appcompat Action Bar trong ứng dụng của mình, tôi cần thêm cả android-support-v7-appcompat.jarandroid-support-v4.jar hoặc chỉ android-support-v7-appcompat.jar .

Ngoài ra, android-support-v13.jar có appcompat không?

Câu trả lời:


170

CẬP NHẬT

Có nhiều thay đổi được thực hiện trong thư viện hỗ trợ vì câu hỏi này đã được trả lời. Điều tốt là, nó cũng là tài liệu rất tốt. Vì vậy, bạn phải đọc Tài liệu thư viện hỗ trợ để biết thêm chi tiết và thư viện hỗ trợ có sẵn hơn.

Bắt đầu với phiên bản Thư viện hỗ trợ 26.0.0 (tháng 7 năm 2017), mức API được hỗ trợ tối thiểu 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.


Dưới đây là sự khác biệt từ Gói Thư viện Hỗ trợ :

Thư viện hỗ trợ v4

Thư viện này được thiết kế để sử dụng với Android 1.6 (API cấp 4) Android 2.3 (API cấp 9) Android 4.0 (API cấp 14) trở lên. Nó bao gồm bộ API lớn nhất so với các thư viện khác, bao gồm hỗ trợ cho các thành phần ứng dụng, tính năng giao diện người dùng, khả năng truy cập, xử lý dữ liệu, kết nối mạng và tiện ích lập trình.

thư viện v7

Có một số thư viện được thiết kế để sử dụng với Android 2.1 (API cấp 7) Android 2.3 (API cấp 9) Android 4.0 (API cấp 14) trở lên. Các thư viện này cung cấp các bộ tính năng cụ thể và có thể được bao gồm trong ứng dụng của bạn một cách độc lập với nhau.

thư viện ứng dụng v7

Thư viện này thêm hỗ trợ cho mẫu thiết kế giao diện người dùng Action Bar.

Lưu ý: Thư viện này phụ thuộc vào Thư viện hỗ trợ v4. Nếu bạn đang sử dụng Ant hoặc Eclipse, hãy đảm bảo bạn bao gồm Thư viện hỗ trợ v4 như một phần của đường dẫn lớp của thư viện này.

Vì vậy, có bạn cần cả hai lọ nếu bạn muốn sử dụng v7.


Cập nhật cho android-support-v13.jar

Thư viện hỗ trợ v13

Giao diện này không được dùng ở cấp độ API 27.1.0. Sử dụng Fragment thay vì Fragment framework.

Thư viện hỗ trợ v13

Thư viện này được thiết kế để sử dụng cho Android 3.2 (API cấp 13) trở lên. Nó bổ sung hỗ trợ cho mẫu giao diện người dùng Fragment với lớp (FragmentCompat) và các lớp hỗ trợ phân đoạn bổ sung

Khi bạn thấy các chi tiết gói, nó có một lớp FragmentCompat như được định nghĩa. Vì vậy, nó không phải là tất cả các lớp của thư viện appcompat.


2
Nếu bạn đang phát triển một ứng dụng từ min api 19. Bạn có cần những thứ này không?

2
Thư viện hỗ trợ v4 - Các thư viện này được thiết kế để sử dụng với Android 2.3 (API cấp 9) trở lên.
Vadik

1
Thư viện hỗ trợ v7 - Có một số thư viện được thiết kế để sử dụng với Android 2.3 (API cấp 9) trở lên.
Vadik

@ user5366495 Có lẽ là có. Hầu hết những điều tốt là dành cho API21 and above và nếu bạn muốn sử dụng nó ở mức thấp hơn, bạn nên sử dụng thư viện hỗ trợ cho việc đó. Vì vậy, bạn vẫn có thể cần nó cho API19.
Mahdi-Malv

48

Thư viện hỗ trợ là gì?

Thư viện hỗ trợ là thư viện mã (Bộ sưu tập các lớp) làm cho một tính năng mới được thêm vào để hoạt động với các thiết bị cũ hơn.
Ví dụ, Thiết kế Vật liệu đã được giới thiệu trong API 21 (Android 5.0 - lolipop) nhưng
các thư viện v7 hỗ trợ làm cho nó có sẵn cho API 7 (Android 2.1.x -Eclair) và cao hơn.

Thư viện hỗ trợ khác nhau là gì?

Một số thư viện hỗ trợ chính là

  • Thư viện hỗ trợ V4

  • Thư viện hỗ trợ V7

  • Thư viện hỗ trợ V8

  • thư viện hỗ trợ v13

7 đại diện cho Thư viện hỗ trợ v7 là gì?

Điều đó có nghĩa là thư viện này có các tính năng được thiết kế để sử dụng với API cấp 7 trở lên. Tương tự với V4 (chứa các tính năng dành cho API 4 trở lên), v.v.

Sự khác biệt giữa thư viện hỗ trợ v7 và thư viện ứng dụng v7?

Rất ít người trong đó có tôi bị nhầm lẫn với hai thuật ngữ này. Trên thực tế, thư viện v7 appcompat là một phần của thư viện Hỗ trợ v7. Thư viện hỗ trợ v7 chủ yếu được phát triển để hỗ trợ Thiết kế vật liệu và mẫu thiết kế ActionBar cho API 7 trở lên.
V7 có thể được phân loại thành nhiều loại phụ hơn

  • thư viện ứng dụng v7

  • thư viện v7 cardView

  • thư viện recycler v7

  • thư viện pallete v7 vv

Thư viện appcompat v7 có các lớp chính ActionBar, ActionBarActivity, ShareActionProvider.

Vì vậy, thêm

com.android.support:appcompat-v7:21.0.+

phụ thuộc trong tập tin lớp của bạn, nhập các lớp đã đề cập ở trên.

Tặng kem

Thư viện hỗ trợ khác

Thư viện hỗ trợ Multidex (Để tạo ứng dụng với hơn 65 nghìn phương thức)
v17 Thư viện hỗ trợ Leanback (Thư viện hỗ trợ cung cấp các tiện ích quan trọng cho Android TV)

Liên kết có liên quan


6
Đây phải là câu trả lời được chấp nhận, giải thích rõ ràng mọi thứ bằng những từ đơn giản.
gegobyte

44

Thư viện hỗ trợ chỉ được yêu cầu nếu phiên bản sdk tối thiểu của bạn nhỏ hơn API Cấp 11. nếu không, bạn không cần thêm thư viện hỗ trợ cho dự án của mình cho Api Cấp 11 trở lên.

android-support-v4.jar: Các android.applớp hỗ trợ để hỗ trợ phát triển các ứng dụng cho API Android cấp 4 trở lên. Vì vậy, bạn sẽ có thể làm cho ứng dụng backword tương thích,

android-support-v7.jar Gần đây, nó được thêm vào trong bản cập nhật thư viện hỗ trợ mới nhất. ActionBar để cho phép triển khai mẫu thiết kế giao diện người dùng trên thanh hành động trở lại Android 2.1 (API cấp 7) trở lên. Việc sử dụng lớp này yêu cầu bạn thực hiện hoạt động của mình bằng cách mở rộng ActionBarActivitylớp mới .

Nếu tôi muốn thêm thanh hành động appcompat trong ứng dụng của mình, tôi cần thêm cả android-support-v7-appcompat.jar và android-support-v4.jar hoặc chỉ android-support-v7-appcompat.jar.

Có, bạn cần thêm tài liệu tham khảo của cả hai thư viện nếu bạn muốn sử dụng nó.

android-support-v13.jar có appcompat không?

Không, Nó bao gồm FragmentCompat để nếu một số tính năng của Fragment được thêm vào sau phiên bản 13, bạn có thể làm cho nó tồn tại tương thích với Api cấp 11. để API nhắm mục tiêu ứng dụng 11 trở lên có thể sử dụng tính năng được thêm trên các phiên bản mới hơn.


9
DrawerLayout/ NavigationDrawerhiện chỉ tồn tại trong các thư viện hỗ trợ.
Kiran

3
Có các thành phần khác mà bạn có thể sử dụng trong ứng dụng Android của mình dựa trên một trong các thư viện hỗ trợ không được mặc định trong các API hơn 11 như com.android.support:multidex:1.0.0 và com.android. hỗ trợ: thiết kế: 23.1.0. kiểm tra thông tin này để biết thông tin đầy đủ: developer.android.com/tools/support-l
Library / features.html

như google nói trong developer.android.com/topic/lologists/support-l Library / 'Không có sự khác biệt giữa hỗ trợ v4 và hỗ trợ v7. cả hai đều dành cho api 9 trở lên. điều này có đúng không?!
Mahdi

Kenji, đúng vậy. Google thay đổi tối thiểu hỗ trợ từ 4 đến 9 và từ 7 đến 9 và cả hai thư viện hiện trùng lặp với nhau.
Yaroslav Havrylovych

Nếu bạn đang phát triển một ứng dụng từ min api 19. Bạn có cần những thứ này không?

10

Trước tiên, chúng ta cần hiểu, Thư viện hỗ trợ Android là gì?

Thư viện hỗ trợ Android ban đầu được phát hành vào năm 2011, Bạn có thể nói rằng với tư cách là Thư viện tương thích Android. Thư viện hỗ trợ Android cung cấp các API mới hơn cho các bản phát hành cũ hơn. Nhưng câu chuyện là không đủ.

điều này có thể hơi khó hiểu khi các thư viện hỗ trợ có số phiên bản cao hơn bao gồm các tính năng từ các thư viện trước đó (bạn có thể nghĩ rằng v7-appcompat cải thiện và bao gồm tất cả các tính năng từ v4). Trong hầu hết các trường hợp, điều này là không chính xác. Nhưng bản thân các thư viện có số sửa đổi. Ví dụ, trên AppCompat v21, thực sự đề cập đến thư viện hỗ trợ v7-appcompat, phiên bản 21.

Thư viện hỗ trợ Android không phải là một thư viện đơn lẻ nhưng có thể tạm chia thành hai nhóm: thư viện thành phần và tương thích.

1-Thư viện tương thích tập trung vào các tính năng backport từ các bản phát hành khung mới hơn để các thiết bị chạy các bản phát hành trước có thể tận dụng các API mới hơn. Các thư viện tương thích chính là v4 và v7-appcompat.

Thư viện v4 : Nó bao gồm nhiều tính năng và, như tên gọi của nó, hỗ trợ quay lại API 4. Ngoài ra, để hỗ trợ triển khai cho các lớp chính như Fragment và Loader (cả hai được giới thiệu trong khung trong API 11), bạn cũng sẽ tìm thấy một số lớp được sử dụng rộng rãi hoàn toàn không có trong khung, chẳng hạn như ViewPager và DrawerLayout.

v7-appcompat : thư viện v7-appcompat cung cấp các triển khai hỗ trợ cho ActionBar (được giới thiệu trong API 11) và Thanh công cụ (được giới thiệu trong API 21) để phát hành lại cho API 7. Nó yêu cầu thư viện v4 nhưng không bao gồm nó. Do đó, mọi tính năng phụ thuộc vào v7-appcompat cũng phụ thuộc vào v4.

Thư viện 2 thành phần Thư viện hỗ trợ Android cũng cung cấp các thư viện thành phần mô đun nhỏ hơn, cho phép các nhà phát triển thêm các tính năng không phải là một phần của khung tiêu chuẩn. Các thư viện độc lập này có thể dễ dàng thêm hoặc xóa khỏi dự án mà không cần quan tâm đến các phụ thuộc. Có một số thư viện thành phần có giá trị để xem xét:

v7-recyclerview : cung cấp thành phần RecyclerView, hiển thị và hoạt hình hiệu quả một lượng lớn dữ liệu và được thiết kế để thay thế ListView

v7-cardview : cung cấp thành phần CardView, cho phép mẫu thiết kế UI thẻ

v7-Gridlayout : cung cấp lớp GridLayout, cho phép tổ chức các thành phần UI thành một lưới hình chữ nhật. Vân vân..

Các thư viện khác Thư viện hỗ trợ Android cũng chứa một vài thư viện khác ít được sử dụng hơn nhưng vẫn đáng được đề cập:

v8: cung cấp hỗ trợ cho RenderScript (được giới thiệu trong API 11) trở lại API 8

v13 : cung cấp hỗ trợ tương thích bổ sung cho mẫu UI Fragment và gói thư viện v4

v17 : cung cấp hỗ trợ xây dựng giao diện người dùng TV

Khi nào tôi nên sử dụng Thư viện hỗ trợ Android?

Bạn nên sử dụng một trong các thư viện hỗ trợ khi bạn cần các tính năng khung cụ thể mới hơn so với minSdkVersion của ứng dụng của bạn hoặc không có sẵn trong khung tiêu chuẩn.

và tôi tham khảo hướng dẫn này


5

Câu trả lời này phù hợp với khách hàng của các thư viện hỗ trợ có phiên bản của họ> = 26.0.0:

Thận trọng : Bắt đầu với Thư viện hỗ trợ phát hành 26.0.0 (tháng 7 năm 2017), mức API được hỗ trợ tối thiểu 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.

Ví dụ: gói hỗ trợ-v4 và gói hỗ trợ-v7 đều hỗ trợ mức API tối thiểu là 14, cho các bản phát hành của Thư viện hỗ trợ từ 26.0.0 trở lên .

Để biết thêm thông tin, hãy xem Thư viện hỗ trợ - Tên gói hỗ trợ và phiên bản .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.