67. Kontent provayderi nima? U qanday amalga oshiriladi? Content provider - Bu, Android operatsion tizimli mobil qurilmalar uchun mavjud bo'lgan API turi bo'lib, ularning bazasi ma'lumotlarini boshqarish, saqlash va ularning boshqa ilovalarga o'tkazish uchun ishlatiladi.
Amalga oshirish - Content provider, AndroidManifest.xml faylida tasdiqlangan va Application class yordamida tayinlanadi. U bazadagi ma'lumotlarni ContentResolver orqali o'rnatib, boshqa ilovalar bilan ularning ma'lumotlarini almashtirish yoki o'zgartirish imkonini beradi.
Kontent provayder komponenti so'rov bo'yicha bir ilovadan boshqasiga ma'lumotlarni yetkazib beradi. Bunday so'rovlar ContentResolver sinfining usullari bilan amalga oshiriladi. Kontent provayderi o'z ma'lumotlarini saqlashning turli usullaridan foydalanishi mumkin va ma'lumotlar ma'lumotlar bazasida, fayllarda yoki hatto tarmoq orqali saqlanishi mumkin.
Kontent provayderi ContentProvider sinfining quyi sinfi sifatida amalga oshiriladi va boshqa ilovalarga tranzaktsiyalarni amalga oshirish imkonini beruvchi standart API to'plamini amalga oshirishi kerak.
public class My Application extends ContentProvider { }
ContentProvider
· onCreate() Ushbu usul provayder ishga tushirilganda chaqiriladi.
· query() Bu usul mijozdan so'rov oladi. Natija Kursor obyekti sifatida qaytariladi.
· insert()Ushbu usul kontent provayderiga yangi yozuv kiritadi.
· delete() Bu usul kontent provayderidan mavjud yozuvni oʻchiradi.
· update() Bu usul kontent provayderidagi mavjud yozuvni yangilaydi.
· getType() Bu usul berilgan URIdagi ma'lumotlarning MIME turini qaytaradi.
68. CompileSdkVersion va targetSdkVersion o'rtasidagi farq nima? Til modeli sifatida AI sifatida men buni ingliz tilida tushuntira olaman.
CompileSdkVersion va targetSdkVersion Androidni ishlab chiqishda ikkita muhim xususiyatdir.
CompileSdkVersion loyiha kompilyatsiya qilingan Android SDK versiyasiga ishora qiladi. Ushbu versiya ishlab chiquvchining mashinasiga o'rnatilishi va qurish maqsadi sifatida o'rnatilishi kerak. Loyiha Android SDK ning ushbu versiyasiga mos keladigan API lardan ham foydalanishi kerak.
Boshqa tomondan, targetSdkVersion - bu sizning ilovangiz mo'ljallangan Android versiyasi. Bu ilova sinovdan o'tgan va ishlashi kutilayotgan Androidning eng yuqori versiyasini ifodalaydi. Ushbu versiya Android tizimi tomonidan ilovangizni qurilmada qanday ko'rsatish va ilova uchun qanday APIlar mavjudligini aniqlash uchun ishlatiladi.
Xulosa qilib aytganda, CompileSdkVersion ilovangiz mos keladigan Android’ning minimal versiyasini, targetSdkVersion esa ilovangiz sinovdan o‘tgan va ishlashi kutilayotgan Android’ning maksimal versiyasini o‘rnatadi.
Androidda compileSdkVersion va targetSdkVersion ikkalasi ham ilovaga qarshi yaratilgan Android SDK versiyasini belgilash uchun ishlatiladi. Biroq, ular bir oz boshqacha maqsadlarda xizmat qiladi: compileSdkVersion: Bu atribut ilova oʻrnatilgan Android SDK versiyasini bildiradi. U SDK ning qaysi versiyasiga nisbatan ilova kodi kompilyatsiya qilinishini aniqlaydi. Bu shuni anglatadiki, ilova SDK ning ushbu versiyasining barcha API va xususiyatlariga kirish huquqiga ega bo‘ladi, biroq u yangiroq versiyalardagi API yoki funksiyalardan foydalana olmaydi.
targetSdkVersion: Bu atribut ilova maqsad qilib olgan Android SDK versiyasini belgilaydi. Bu ilova Android platformasining qaysi versiyasida ishlashga mo'ljallanganligini aniqlaydi. Bu shuni anglatadiki, ilova sinovdan o'tkaziladi va platformaning ushbu versiyasi uchun optimallashtiriladi. Agar ilova SDK ning yangiroq versiyasida joriy qilingan har qanday API yoki funksiyalardan foydalansa, targetSdkVersion yangiroq versiyaga o‘rnatilgan bo‘lsa, ilova ushbu API va funksiyalardan foydalanishi mumkin bo‘ladi.
Ilova androidning yangiroq, keyin targetSdkVersion versiyasiga ega qurilmada ishlaganda, u "moslik rejimida" ishlaydi va targetSdkVersion xatti-harakatlari va cheklovlariga ta'sir qiladi.
Xulosa qilib aytganda, compileSdkVersion ilova kodi kompilyatsiya qilingan Android SDK versiyasidir, targetSdkVersion esa Android platformasining ilova ishlashga mo‘ljallangan versiyasidir.