Kaj je razlika med SDK in API?
V razvoju programske opreme je z naraščanjem obsega sistema ključno, da zapletene sisteme razdelimo na manjše sestavne dele, pri čemer je načrtovanje programskih vmesnikov še posebej pomembno. Glavna naloga načrtovanja vmesnikov je razumno dodeliti odgovornosti programskega sistema. Dobro načrtovani vmesniki lahko zmanjšajo odvisnost med različnimi deli sistema, izboljšajo notranjo povezanost modulov in zmanjšajo zunanjo povezanost med moduli, s čimer se izboljša vzdržljivost in razširljivost sistema. API, kot oblika vmesnika, igra pomembno vlogo pri interakciji med programi, medtem ko sta SDK in API tesno povezana.
01 API
(1) Koncept API
API, celotno ime "Programski vmesnik aplikacije", je sklop vnaprej določenih funkcij, ki so zasnovane kot "vmesnik" za povezavo dveh različnih entitet. Zagotavlja način, da aplikacije in razvijalci dostopajo do rutine programske ali strojne opreme, ne da bi se dotaknili izvorne kode ali razumeli podrobnosti notranjega delovanja.
Pravzaprav je API funkcija, ki jo je nekdo že napisal in lahko izvaja določeno funkcijo. Preprosto morate poklicati njegovo metodo v skladu s priloženim vmesnikom in posredovati določene parametre, funkcija pa bo izvedla te funkcije namesto vas.

Iz koncepta "vmesnika" v računalništvu se nanaša na mesto interakcije med dvema različnima entitetama, ki sta lahko dva popolnoma različna sistema ali dva odstavka kode. Zato je "I" vmesnika mogoče razumeti na ta način. Na tej podlagi se mesto interakcije med človekom in programom imenuje UI (uporabniški vmesnik), ki vključuje vse oblike vnosa, kot so miška, tipkovnica, zaslon na dotik in glasovni vnos itd. Interakcija med programi pa se imenuje API, vsa interakcija, ki ni med človekom in človekom, poteka prek API-ja, bistvo te interakcije pa je prenos podatkov in sprožitev funkcij.
(2) Klasifikacija API
API je razdeljen na API-je na ravni sistema (kot so Windows, Linux, Unix itd.) in prilagojene API-je, ki niso na ravni operacijskega sistema. Kot učinkovit vzorec zaprtja kode je bil vzorec razvoja API-ja Microsoft Windowsa posvojen s strani številnih podjetij za razvoj komercialnih aplikacij in so razvili API funkcije za nekatere komercialne aplikacijske sisteme za objavo, da bi olajšali razširitve funkcij s strani tretjih oseb. Na primer API-ji, ki jih razvijajo Google, Apple Computer in Nokia itd.
API je razdeljen tudi na odprte API-je in zasebne API-je. Kot pove že ime, so odprti API-ji vmesniki, ki so javno dostopni in omogočajo vsakomur, da jih pokliče in pridobi podatke, ki so za njimi. Včasih podjetja API uporabljajo kot svoj javno odprt sistem, to pomeni, da podjetje določi svoje standarde vmesnika sistema, in ko je treba izvesti integracijo sistema, prilagoditev in aplikacije programov, lahko vsi člani podjetja pokličejo izvorno kodo prek tega standarda vmesnika, ta standard vmesnika pa se imenuje odprti API. Zasebni API-ji pa niso odprti za javnost.
02 SDK
(1) Koncept SDK
SDK, celotno ime "Komplet za razvoj programske opreme", je običajno zbirka orodij za razvoj, ki jih programerji uporabljajo za ustvarjanje aplikacijske programske opreme za določeno programsko opremo, programski okvir, strojno platformo, operacijski sistem itd. Preprosto povedano, SDK je orodje, ki ga ponuja tretja stranka za uresničitev določene funkcije izdelka programske opreme.
SDK običajno ponujajo profesionalna podjetja kot zbirko strokovnih storitev, na primer orodja za razvoj Androida ali storitve za razvoj na podlagi strojne opreme itd. Obstajajo tudi SDK-ji za določeno programsko funkcijo, kot so tehnologije potisnega obveščanja, tehnologije prepoznavanja slik, tehnologije mobilnega plačila, tehnologije analize govora itd. V trendu odprtega interneta so nekatere funkcionalne SDK-je že obravnavali kot izdelek.
Razvijalci vam ni več treba razvijati vsake funkcije izdelka, ampak izbrati ustrezno stabilno storitev SDK in integrirati določeno funkcijo v izdelek v kratkem času.
(2) Razlika med SDK in API
SDK je enakovreden okolju za razvojno integracijo, API pa je vmesnik za podatke. API podatke pokličete v okolju SDK.
Pravzaprav SDK vsebuje definicijo API-ja, API pa definira zmožnost, specifikacijo vmesnika, SDK pa lahko vsebuje to zmožnost, to specifikacijo. Vendar pa SDK vsebuje več kot samo API in njegovo implementacijo, je orodje za razvoj programske opreme in vsebuje tudi številne druge pomožne funkcije.
SDK vsebuje materiale, potrebne za uporabo API-ja, zato ljudje pogosto imenujejo način pisanja aplikacij Windows z uporabo samo API-ja "programiranje SDK".





