Labarotoriya ishlari uchun topshiriqlar.
Topishdi:
|
Ibroximov I
|
Guruh:
|
612-18
|
Qabul qildi:
|
Xadjimatov J.
|
LABORATORIYA ISHI – 12.
Mavzu: Kontent etkazib beruvchilardan foydalanish
Ishning maqsadi: kontent-provayder yaratish va undan foydalanish
Nazariy qism.
Kontent provayderi nima
Kontent provayderi yoki "Kontent etkazib beruvchisi" - bu ma'lumotlarni o'rash. Agar sizning ilovangiz SQLite ma'lumotlar bazasidan foydalansa, unga faqat sizning ilovangiz kira oladi. Ammo shunday vaziyatlar mavjudki, ular bilan ma'lumot almashish maqsadga muvofiqdir. Oddiy misol - telefon daftarchasidagi kontaktlaringiz ham ma'lumotlar bazasida, lekin siz ilovaga kontaktlar ro'yxatini ko'rsatishi uchun ma'lumotlarga kirishni xohlaysiz. Sizda boshqa birovning ilovasi ma'lumotlar bazasiga kirish imkoni yo'qligi sababli, har kimga o'z ma'lumotlarini almashish imkonini beradigan maxsus mexanizm ixtiro qilingan.
Kontent provayderi faqat qurilmada ishlaydigan boshqa ilovalar bilan ma'lumotlarni almashmoqchi bo'lganingizda ishlatiladi. Ammo, agar siz hozir ma'lumot almashishni rejalashtirmasangiz ham, kerak bo'lganda, bu usulni qo'llash haqida o'ylashingiz mumkin.
Android -da, ma'lumot manbalarini (yoki ma'lumotlar provayderlarini) REST -dan foydalanib, kontent -provayderlar deb nomlangan abstraktsiyalarda holat uzatilishini ko'rish mumkin. SQLite ma'lumotlar bazasi kontent provayderiga o'ralgan bo'lishi mumkin. Kontent provayderidan ma'lumot olish yoki unda yangi ma'lumotlarni saqlash uchun siz RESTga o'xshash URI-lar to'plamidan foydalanishingiz kerak. Masalan, agar siz raqamli kutubxonani o'z ichiga olgan kontent provayderidan kitoblar to'plamini olishingiz kerak bo'lsa, sizga bunday URI kerak bo'ladi (asosan kitoblar jadvalidagi barcha yozuvlarni olish uchun so'rov):
content://com.android.book.bookprovider/books
content://com.android.book.bookProvider/books/23
Qurilmada ishlaydigan har qanday dastur ma'lumotlarga kirish va ularni boshqarish uchun ushbu URI -lardan foydalanishi mumkin. Shunday qilib, kontent provayderlari bir nechta ilovalarda ma'lumotlarni almashishda muhim rol o'ynaydi.
O'rnatilgan provayderlar
Android o'rnatilgan kontent provayderlaridan foydalanadi (android.provider to'plami). Bu erda kontent etkazib beruvchilarning qisman ro'yxati:
Browser
CallLog
Contacts
People
Phones
Photos
Groups
MediaStore
Audio
Albums
Artists
Genres
Playlists
Images
Video
Settings
Ma'lumotlar bazalari ierarxiyaning yuqori darajalarida, jadvallar esa quyi darajalarda joylashgan. Masalan, Brauzer, CallLog, Kontaktlar, MediaStore va Sozlamalar - bu provayder shaklida kiritilgan alohida SQLite ma'lumotlar bazalari. Odatda, bu SQLite ma'lumotlar bazalarida ma'lumotlar bazasi kengaytmasi mavjud va ularga faqat dastur paketidan kirish mumkin. Ma'lumotlar bazasiga ushbu paket tashqarisidan har qanday kirish kontent -provayder interfeysi orqali amalga oshiriladi.
O'zingizning kontent provayderingizni yaratish
O'zingizning kontent provayderingizni yaratish uchun ContentProvider mavhum sinfidan meros olishingiz kerak:
public class MyContentProvider extends ContentProvider {
}
Klass mavhum usullar so'rovini (), kiritish (), yangilash (), o'chirish (), getType (), onCreate () ni amalga oshirishi kerak. Oddiy ma'lumotlar bazasini yaratishda ba'zi o'xshashliklar mavjud.
Do'stlaringiz bilan baham: |