content provider là gì

I. Tổng quan

Trên nền tảng Android, một phần mềm ko thể truy vấn thẳng (đọc / ghi) tài liệu của phần mềm không giống. Tất cả tài liệu của phần mềm là riêng biệt so với phần mềm cơ. Mỗi phần mềm đều phải có folder tài liệu id riêng rẽ và vùng bộ lưu trữ được đảm bảo an toàn riêng rẽ. Như vậy Có nghĩa là một phần mềm ko thể truy vấn hoặc thao tác tài liệu của một phần mềm không giống. Tuy nhiên, nếu như mình muốn nhảy phần mềm truy vấn hoặc thao tác tài liệu của phần mềm không giống, bạn phải dùng định nghĩa Content Providers. Vậy tất cả chúng ta nằm trong tìm hiểu hiểu nó ra sao nhé!

Bạn đang xem: content provider là gì

II. Content Providers là gì?

Content Providers là 1 trong luyện tài liệu được bảo phủ vô một custom API nhằm rất có thể được chấp nhận phát âm và ghi. Nó sinh hoạt như 1 interfacae được chấp nhận chúng ta tàng trữ và truy xuất tài liệu từ là một mối cung cấp tàng trữ tài liệu (repository). Và nó đối tượng người tiêu dùng này cũng được chấp nhận chúng ta share tài liệu Một trong những phần mềm không giống nhau. Content Providers tách lớp phần mềm ngoài lớp tài liệu bằng phương pháp trừu tượng mối cung cấp tài liệu cơ bạn dạng, bởi vậy thực hiện mang lại phần mềm mối cung cấp tài liệu song lập. Chúng được chấp nhận trấn áp permisstion, được chấp nhận phần mềm không giống với quyền truy vấn cho tới mối cung cấp tàng trữ tài liệu hay là không, hỗ trợ cho việc share tài liệu trở lên trên dễ dàng và đơn giản. Và tất yếu, ngẫu nhiên phần mềm nào là với quyền (permissions) thích hợp đều rất có thể tăng, xóa, update và truy xuất tài liệu của một phần mềm không giống bao hàm tài liệu vô một vài hạ tầng tài liệu Android Native.

Có 2 loại Content Providers:

  • Native nội dung providers: Chúng cung ứng quyền truy vấn vô hạ tầng tài liệu tích thích hợp có trước, ví dụ như Contacts, Media player, Message và những hạ tầng tài liệu gốc không giống. quý khách cần thiết cấp cho những quyền quan trọng mang lại phần mềm của tôi trước lúc dùng mái ấm cung ứng nội dung gốc
  • Custom nội dung providers: 1 dạng custom cở sở tài liệu tự động tạo ra vày mái ấm cách tân và phát triển nhằm phù phù hợp với những đòi hỏi của phần mềm.

Vậy nội dung Content Provider rất có thể xem như là 1 điểm tàng trữ tài liệu, được chấp nhận những phần mềm rất có thể share, trao thay đổi tài liệu lẫn nhau. Vậy thực hiện cơ hội nào là nhằm liên kết hoặc dùng đối tượng người tiêu dùng Content Providers này. Khái niệm tiếp theo sau tại đây, tất cả chúng ta nằm trong tìm hiểu hiểu tiếp nhé.

III. Content Resolver là gì?

Để nhận tài liệu và tương tác với Content Provider, một phần mềm dùng đối tượng người tiêu dùng này là Content Resolver nhằm gửi đòi hỏi cho tới Content Provider. Đối tượng ContentResolver cung ứng những công thức query (), insert (), update () và delete () nhằm truy vấn tài liệu kể từ Content Provider. Mỗi request bao hàm một URI và một truy vấn SQL, và response trả về tiếp tục là 1 trong đối tượng người tiêu dùng Cursor. Để cụ thể rộng lớn, tất cả chúng ta hãy coi sơ đồ vật follow bên dưới đây:

IV. Example

Lấy 1 ví dụ giản dị và đơn giản. Bài toán tất cả chúng ta lúc này tiếp tục là: Tạo 1 phần mềm (A) chỉ nhằm mục tiêu mục tiêu tàng trữ tài liệu hầu như những số tiêu hóa, phổ biến và dùng tối đa lúc bấy giờ. Ứng dụng này trọn vẹn không tồn tại skin. Chỉ là điểm tàng trữ tài liệu. Tiếp Từ đó là sự đưa đến 2 phần mềm không giống, 1 phần mềm là tự điển những đồ ăn, 1 phần mềm được xem là bịa đặt đồ ăn của một nhà hàng quán ăn. Bài toán của tất cả chúng ta giản dị và đơn giản đơn thuần 2 phần mềm bên trên tiếp tục nằm trong truy vấn vô phần mềm (A) tàng trữ tài liệu nhằm tìm hiểu tìm kiếm tài liệu với tương quan cho tới từng phần mềm của tôi.

V. Lợi ích Content Providers

Content Providers đặc biệt hữu ích cho những phần mềm mong muốn cung ứng tài liệu cho những phần mềm không giống.

  • Với Content Providers, chúng ta cũng có thể được chấp nhận nhiều phần mềm không giống truy vấn, dùng và sửa thay đổi một mối cung cấp tài liệu có một không hai tuy nhiên phần mềm của người tiêu dùng cung ứng. (Ví dụ ở trên)
  • Để trấn áp truy vấn, chúng ta cũng có thể hướng đẫn những permisions mang lại Content Providers của tôi, hướng đẫn cơ hội những phần mềm không giống rất có thể truy vấn tài liệu. Ví dụ: Nhà sản phẩm rất có thể ko được quy tắc thay cho thay đổi tài liệu vấn đề đồ ăn tuy nhiên ko cần tự bọn họ cung ứng.
  • Bạn rất có thể tàng trữ tài liệu song lập với phần mềm, cũng chính vì Content Providers nằm trong lòng skin người tiêu dùng và điểm tài liệu của người tiêu dùng được tàng trữ. quý khách rất có thể thay cho thay đổi cơ hội tài liệu được tàng trữ tuy nhiên ko cần thiết thay cho code lịch trình.
  • Một quyền lợi không giống của việc tách tài liệu ngoài skin người tiêu dùng với Content Providers là những group cách tân và phát triển rất có thể sinh hoạt song lập bên trên skin người tiêu dùng và kho tài liệu của phần mềm của người tiêu dùng. Đối với những phần mềm phức tạp, to hơn, đặc biệt thông dụng là skin người tiêu dùng và phần phụ trợ tài liệu được cách tân và phát triển vày những group không giống nhau và thậm chí còn bọn chúng rất có thể là những phần mềm riêng lẻ.

VI. Kiến trúc Content Providers

Content Providers là 1 trong tầng phần giữa phần tàng trữ tài liệu của phần mềm cung ứng nội dung và phần sót lại của phần mềm, tách tài liệu và skin. Để cung ứng cho mình một hình hình ảnh về toàn cỗ bản vẽ xây dựng Content Providers, phần này hiển thị và tóm lược toàn bộ những phần của bản vẽ xây dựng Content Providers đang được thực hiện, cụ thể như bên dưới đây:

Xem thêm: act your age nghĩa là gì

1. Data and Open Helper

Kho tài liệu. Dữ liệu rất có thể ở trong hạ tầng tài liệu (database), tệp tin, bên trên mạng internet, được generated dynamically hoặc thậm chí còn là phối kết hợp những tài liệu này. Ví dụ: nếu như khách hàng với phần mềm tự điển, tự điển hạ tầng rất có thể được tàng trữ vô hạ tầng tài liệu SQLite bên trên tranh bị của người tiêu dùng. Nếu một chú thích hoặc topic không tồn tại vô hạ tầng tài liệu, nó rất có thể được lấy kể từ mạng internet, và nếu như vấn đề đó thất bại, phần mềm rất có thể đòi hỏi người tiêu dùng cung ứng một khái niệm hoặc đánh giá cú pháp.

Dữ liệu được dùng với những Content Providers thông thường được tàng trữ vô hạ tầng tài liệu SQLite và API của Content Providers.

2. Contract

Contract là 1 trong lớp public hiển thị vấn đề cần thiết về Content Providers cho những phần mềm không giống. Như vậy thông thường bao hàm những lược đồ vật URI, những hằng số cần thiết và cấu hình của tài liệu sẽ tiến hành trả về. Ví dụ: so với phần mềm tự điển đồ ăn, Contract rất có thể hiển thị thương hiệu của những cột chứa chấp giá bán và thương hiệu của thành phầm và URI nhằm truy xuất một đồ ăn bám theo thương hiệu hoặc ID.

3. Content Provider

Content Provider thừa kế lớp ContentProvider và cung ứng những công thức query (), insert (), update () và delete () nhằm truy vấn tài liệu. Hình như, nó cung ứng một public interfacesecure interface mang lại tài liệu, nhằm những phần mềm không giống rất có thể truy vấn tài liệu với những permissions phù hợp. Ví dụ: nhằm lấy vấn đề đồ ăn kể từ hạ tầng tài liệu của phần mềm, phần mềm tự điển tiếp tục liên kết với ContentProvider chứ không hề cần thẳng cho tới hạ tầng tài liệu vì như thế vấn đề đó ko được quy tắc.

Ứng dụng chiếm hữu tài liệu hướng đẫn những quyền nào là (permissions) những phần mềm không giống cần được thao tác làm việc với mái ấm cung ứng nội dung. Ví dụ: nếu như khách hàng với phần mềm cung ứng vấn đề những số lẩu mang lại nhà hàng quán ăn marketing, phần mềm của người tiêu dùng chiếm hữu tài liệu và xác lập quyền truy vấn của những phần mềm không giống so với tài liệu. Quyền được hướng đẫn vô tệp tin Android Manifest.

Xem thêm: be bound to có nghĩa là gì

4. Content Resolver

Content Providers luôn luôn được truy vấn trải qua trình Content Resolver. Hãy nghĩ về về Content Resolver như một tấm trợ canh ty vận hành toàn bộ những cụ thể liên kết với 1 Content Provider cho mình. Phản ánh API của Content Provider, đối tượng người tiêu dùng ContentResolver cung ứng cho mình những công thức query (), insert (), update () và delete () nhằm truy vấn tài liệu của Content Provider. Ví dụ: để sở hữu được toàn bộ những đồ ăn là lẩu, phần mềm tự điển đồ ăn sẽ khởi tạo truy vấn của món lẩu và dùng trình Content Resolver nhằm gửi truy vấn cơ cho tới Content Providers.

VII. Implementing a Content Provider

Dựa vô những vấn đề bên trên, nhằm thực hiện một Content Providers chúng ta cần:

  • Data (dữ liệu) vô hạ tầng dữ liệu
  • Một công thức nhằm truy vấn tàng trữ tài liệu, ví dụ, trải qua một trình trợ canh ty ( open helper) cho 1 hạ tầng tài liệu.
  • Định nghĩa, khai báo Content Provider của người tiêu dùng vô Tệp Android Manifest nhằm cung ứng mang lại phần mềm của riêng rẽ chúng ta và những phần mềm không giống.
  • Phân lớp (kế thừa) lớp ContentProvider tiến hành những công thức query (), insert (), delete (), update (), count () và getType ().
  • Public contract class hiển thị lược đồ vật URI, thương hiệu bảng, loại MIME và những hằng số cần thiết cho những lớp và phần mềm không giống. Trong Lúc điều này là bạn không nên, tuy nhiên nếu như không tồn tại nó, những phần mềm không giống ko thể biết phương pháp truy vấn vô Content Provider của người tiêu dùng.
  • Trình Content Resolver nhằm truy vấn vô Content Provider vày những công thức và truy vấn phù hợp.

Xong, ngừng việc sẵn sàng, ở chỗ tiếp theo sau bản thân tiếp tục chỉ dẫn implement cụ thể ví dụ từng bước sẽ tạo 1 phần mềm hoàn hảo thao tác với Content Providers. Hẹn tái ngộ chúng ta ở chỗ tiếp theo!

Tài liệu tham lam khảo

  • https://developer.android.com/guide/topics/providers/content-provider-basics?hl=en
  • https://android-delight.blogspot.com/2016/07/how-to-sharing-data-between-apps-using.html
  • https://google-developer-training.gitbooks.io/android-developer-fundamentals-course-concepts/content/en/Unit 4/111_c_share_data_through_content_providers.html