Mis on SDK ja API vahe?
Tarkvaraarenduses, kui süsteemide suurus kasvab, on üha olulisem jagada keerulised süsteemid väiksemateks osadeks, kusjuures programmeerimisliideste kujundamine on eriti oluline. Liidese kujundamise peamine ülesanne on tarkvarasüsteemi vastutuste mõistlik jaotus. Hea liidese kujundus vähendab süsteemi osade vahelist sõltuvust, parandab moodulite sidusust ning vähendab moodulite vahelist seotust, parandades seeläbi süsteemi hooldatavust ja laiendatavust. API, kui liidese vorm, mängib olulist rolli programmide vahelises suhtluses ning SDK ja API vahel on tihe seos.
01 API
(1) API kontseptsioon
API, täispikk nimi "Application Programming Interface" (rakendusprogrammeerimisliides), on eelmääratletud funktsioonide komplekt, mille eesmärk on toimida "liidesena" kahe erineva asja ühendamiseks. See pakub võimalust rakendustele ja arendajatele pääseda juurde tarkvara või riistvara rutiinidele, ilma et oleks vaja puutuda kokku lähtekoodiga või mõista selle sisemist toimemehhanismi.
Tegelikult on API teiste poolt varem kirjutatud funktsioon, mis suudab realiseerida kindla funktsionaalsuse. Sa pead lihtsalt järgima pakutavat liidest, kutsudes selle meetodeid ja edastades määratud parameetrid ning funktsioon realiseerib need funktsioonid sinu eest.

Liidese kontseptsiooni kohaselt viitab see arvutivaldkonnas kahe erineva üksuse vahelisele suhtluspunktile, mis võib olla kaks täiesti erinevat süsteemi või kaks programmiosa. Seetõttu saab liidese "I"-d mõista järgmiselt. Sel põhjusel nimetatakse inimeste ja programmide vahelist suhtlust UI-ks (kasutajaliides), mis hõlmab kõiki inimeste sisestusvorme, nagu hiir, klaviatuur, puuteekraan ja hälsisend jne. Programmi ja programmi vahelist suhtlust nimetatakse API-ks ning kõik mitteinimeste vahelised suhtlused toimuvad API kaudu. Teisisõnu, suhtlus on sisuliselt andmete edastamine ja funktsioonide käivitamine.
(2) API liigid
API-d jagunevad süsteemitasa API-deks (nt Windows, Linux, Unix jne) ja mitteoperatsioonisüsteemitasa kohandatud API-deks. Tõhusana koodi kapseldusmudelina on Microsoft Windowsi API arendusmudelit jäljendanud paljud ärakasutuste arendusettevõtted ning on välja töötanud teatud ärakasutuste süsteemide API-funktsioonid, et hõlbustada kolmandate osapoolte funktsioonide laiendamist. Näiteks Google, Apple ja Nokia mobiiliarenduse API-d jne.
API-d jagunevad ka avatud API-deks ja privaatseteks API-deks. Nagu nimest järeldub, on avatud API liides, mis on kõigile avalik, võimaldades kõigil seda kutsuda ja saada selle taga olevat andmeid. Mõnikord kasutab ettevõte API-d oma avaliku avatud süsteemina, st ettevõte määrab oma süsteemiliidese standardi ning kõik liikmed saavad selle liidesestandardi kaudu kutsuda lähtekoodi, kui on vaja süsteemi integreerimist, kohandamist ja programmi rakendusi. Seda liidesestandardit nimetatakse avatud API-ks. Privaatne API on liides, mis ei ole avalikult kättesaadav.
02 SDK
(1) SDK kontseptsioon
SDK, täispikk nimi "Software Development Kit" (tarkvaraarenduskomplekt), on tavaliselt tarkvaraarendajate poolt kasutatavate arendustööriistade kogum, et luua rakendustarkvara kindla tarkvarapaketi, tarkvararaamistiku, riistvara platvormi, operatsioonisüsteemi jne jaoks. Lihtsamalt öeldes on SDK kolmanda osapoole teenusepakkuja pakutav tööriistakomplekt tarkwaratoote teatud funktsiooni realiseerimiseks.
Tavaliselt pakuvad SDK-d professionaalsed ettevõtted professionaalseid teenuseid, näiteks Androidi arendustööriistu või riistvarapõhiseid arendusteenuseid jne. On ka SDK-sid, mis on mõeldud teatud tarkvarafunktsioonide jaoks, näiteks push-tehnoloogia, pildituvastustehnoloogia, mobiilimaksete tehnoloogia, häältuvastuse analüüsitehnoloogia jne. Interneti avatud trendis on mõned funktsionaalsed SDK-d muutunud tooteoperatsioonideks.
Arendajad ei pea enam iga toote funktsiooni eraldi arendama, vaid saavad valida sobiva ja stabiilse SDK-teenuse ning integreerida tootesse teatud funktsiooni väga vähese ajaga.
(2) SDK ja API vahe
SDK on arendusintegreerimise tööriistakeskkond ja API on andmeliides. API andmeid kutsutakse SDK keskkonnas.
Tegelikult sisaldab SDK API definitsioone, API defineerib võimekuse, liidese spetsifikatsiooni ning SDK võib sisaldada seda võimekust, seda spetsifikatsiooni. Kuid SDK sisaldab mitte ainult API-d ja selle realiseerimist, vaid on ka tarkvarakomplekt, mis sisaldab ka palju muid abifunktsioone.
SDK sisaldab API kasutamiseks vajalikku dokumentatsiooni, seetõttu nimetatakse ka ainult API-d kasutades Windowsi rakenduste kirjutamise viisi "SDK programmeerimiseks".





