Bosh sahifa Wiki SDK

SDK

SDK — ma’lum platforma, operatsion tizim, xizmat yoki dasturlash muhiti uchun dastur yaratishga mo‘ljallangan vositalar to‘plami. Uning to‘liq nomi Software Development Kit hisoblanadi.

SDK odatda faqat bitta librarydan iborat bo‘lmaydi. U kod yozish, compile qilish, test, debug, package va platformaga ulanish uchun zarur komponentlarni bir paketda taqdim etadi.

SDK tarkibi

SDK quyidagilarni o‘z ichiga olishi mumkin:

Tarkib platformaga qarab farq qiladi.

Platform SDK

Operatsion tizim SDKsi ilovaga platforma APIlaridan foydalanish imkonini beradi.

Masalan:

SDK ma’lum OS versiyasi uchun API declaration va build vositalarini beradi.

Cloud SDK

Cloud provider SDKsi service APIlarini dasturlash tilidagi class va methodlar orqali ishlatadi.

Masalan:

storage.upload(file)
queue.send(message)
database.query(...)

SDK ichkarida:

ni boshqarishi mumkin.

API va SDK farqi

API — dasturiy interfeys va uning qoidalari.

SDK — shu API bilan ishlash va dastur yaratish uchun vositalar to‘plami.

API HTTP endpointlar ko‘rinishida bo‘lishi mumkin. SDK esa ularni qulay methodlar orqali chaqiradi.

SDKsiz ham APIga bevosita HTTP request yuborish mumkin, agar protocol ochiq bo‘lsa.

Library va SDK farqi

Library qayta ishlatiladigan kod to‘plami.

SDK librarylardan tashqari:

berishi mumkin.

Har SDK ichida library bo‘lishi mumkin, ammo har library SDK emas.

SDK versiyasi

SDK versiyasi quyidagilarni belgilaydi:

Yangi SDK bilan build qilingan dastur eski platformada ishlashi uchun target va minimum version alohida belgilanadi.

Target SDK

Ba’zi platformalarda target SDK ilova qaysi platforma xatti-harakatlari uchun tayyorlanganini bildiradi.

Yangi target:

ni yoqishi mumkin.

Bu faqat compile qilish vositasi versiyasi emas, platforma compatibility shartidir.

Minimum version

Minimum platform versiyasi dastur ishlashi mumkin bo‘lgan eng eski muhitni ko‘rsatadi.

SDK yangi APIlarni bilishi mumkin, ammo kod runtime’da eski versiyada shu API mavjudligini tekshirishi kerak.

Conditional API check ishlatiladi.

Toolchain

SDK ichidagi compiler, linker va boshqa vositalar birgalikda toolchain hosil qiladi.

Toolchain quyidagilarga bog‘liq:

Cross-compilation SDKsi bir platformada boshqa platforma uchun artifact yaratadi.

Sysroot

Sysroot target tizimning header, library va filesystem tuzilmasini build muhiti uchun taqdim etadi.

Cross compiler hostdagi tasodifiy library o‘rniga sysrootdagi target libraryga ulanadi.

Noto‘g‘ri sysroot ABI mos kelmasligiga sabab bo‘ladi.

Emulator va simulator

Mobile yoki embedded SDK ko‘pincha virtual test muhiti beradi.

Emulator target CPU va qurilmalarni taqlid qilishi mumkin.

Simulator esa platforma APIlarini host tizimda model qiladi.

Yakuniy tekshiruv real qurilmada ham bajariladi.

Project template

SDK tayyor loyiha tuzilmasini yaratadi.

Template:

ni beradi.

Template versiyasi eski bo‘lsa, yangi SDK qoidalariga mos kelmasligi mumkin.

Documentation

SDK hujjati faqat method ro‘yxati emas.

Unda:

bo‘lishi kerak.

SDK versiyasiga mos hujjatdan foydalaniladi.

Code generator

API schema asosida client code avtomatik yaratilishi mumkin.

Manbalar:

Generated code qo‘lda tahrir qilinmaydi. Generator va schema versiyasi buildda belgilanadi.

Authentication

Cloud SDK credentialni quyidagi manbalardan olishi mumkin:

Credential source tartibi tushunilmasa, dastur noto‘g‘ri account bilan ishlashi mumkin.

Retry

SDK vaqtinchalik network xatolarida avtomatik retry qilishi mumkin.

Retry:

qoidalariga tayanadi.

Yozuv amali idempotent bo‘lmasa, yashirin retry duplicate natija keltirishi mumkin.

SDK o‘rnatilishi

SDK:

orqali o‘rnatilishi mumkin.

Bir kompyuterda bir nechta versiya saqlanishi mumkin. Loyiha aniq versiyani tanlaydi.

CI muhiti

CI’da SDK versiyasi pin qilinadi.

Aks holda “latest” yangilanganda:

  • build o‘zgarishi;
  • warning xatoga aylanishi;
  • output farqi;
  • package formati o‘zgarishi

mumkin.

Cache SDK va dependency versiyasi bilan bog‘lanadi.

Litsenziya

SDKdan foydalanish va tarqatish shartlari litsenziyada belgilanadi.

Ayrim SDK:

talablariga ega bo‘lishi mumkin.

Diagnostika

SDK bilan bog‘liq muammoda:

  • SDK versiyasi;
  • target;
  • minimum version;
  • toolchain path;
  • architecture;
  • sysroot;
  • environment;
  • credential;
  • generated code;
  • runtime mosligi

tekshiriladi.

IDE o‘rnatilgan bo‘lsa ham kerakli platform SDKsi alohida o‘rnatilmagan bo‘lishi mumkin.

Bog‘liq tushunchalar

API, Library, Toolchain, Compiler, Runtime, IDE, Emulator, Sysroot, Target platform, Code generator