Wat is de relatie tussen SDK en API?
In softwareontwikkeling, naarmate de schaal van systemen voortdurend toeneemt, wordt het essentieel om complexe systemen op te splitsen in kleinere componenten, waarbij het ontwerp van programmeerinterfaces cruciaal is. De primaire taak van interfaceontwerp is het redelijk toewijzen van verantwoordelijkheden binnen een softwaresysteem. Een goed interfaceontwerp kan de afhankelijkheid tussen de verschillende delen van het systeem verminderen, de cohesie van modules verbeteren en tegelijkertijd de koppeling tussen modules verminderen, waardoor de onderhoudbaarheid en uitbreidbaarheid van het systeem worden verbeterd. API's, als een vorm van interface, spelen een belangrijke rol bij de interactie tussen programma's, en er is een nauwe relatie tussen SDK's en API's.
01 API
(1) Het concept van een API
API, wat staat voor "Application Programming Interface", is een set van vooraf gedefinieerde functies die bedoeld zijn als een "interface" om twee verschillende entiteiten met elkaar te verbinden. Het biedt een manier voor applicaties en ontwikkelaars om toegang te krijgen tot routines van software of hardware, zonder de broncode te hoeven aanraken of de details van de interne werking te begrijpen.
In feite is een API een functie die vooraf is geschreven door anderen en een specifieke functionaliteit kan implementeren. Je hoeft alleen de interface aan te roepen, de gespecificeerde parameters door te geven, en de functie zal je helpen deze functionaliteit te realiseren.

Vanuit het concept van "interface" verwijst het in het computerdomein naar de plaats waar twee verschillende entiteiten met elkaar communiceren, het kunnen twee volledig verschillende systemen zijn, of twee stukken code. Daarom kan de "I" van interface als volgt worden begrepen. Op basis hiervan wordt de plaats waar mens en programma met elkaar communiceren UI (User Interface) genoemd, inclusief alle vormen van input, zoals muis, toetsenbord, touchscreen en spraakinvoer, enz. De interactie tussen programma's wordt API genoemd, en alle interacties die niet menselijk zijn, verlopen via API's. De interactie is in essentie datatransmissie en het activeren van functionaliteit.
(2) Classificatie van API's
API's zijn onderverdeeld in systeemniveau API's (zoals Windows, Linux, Unix, enz.) en niet-besturingssysteemniveau aangepaste API's. Als een effectief code-encapsulatiepatroon is het API-ontwikkelmodel van Microsoft Windows overgenomen door veel bedrijven die commerciële applicaties ontwikkelen, en hebben ze bepaalde API-functies van commerciële applicaties gepubliceerd om functionaliteit uit te breiden door derden. Bijvoorbeeld, de API's die zijn ontwikkeld door Google, Apple en Nokia.
API's zijn ook onderverdeeld in open API's en private API's. Zoals de naam al aangeeft, is een open API een interface die openbaar is voor iedereen, waardoor iedereen deze kan aanroepen en toegang kan krijgen tot de onderliggende gegevens. Soms gebruiken bedrijven API's als hun openbare open systeem, dat wil zeggen dat het bedrijf zijn eigen systeeminterfacestandaarden definieert, en alle leden van het bedrijf kunnen de broncode aanroepen via deze interface standaard wanneer ze systeemintegratie, aanpassing en applicatieprogramma's moeten uitvoeren. Deze interface standaard wordt een open API genoemd. Een private API is een interface die niet openbaar beschikbaar is.
02 SDK
(1) Het concept van een SDK
SDK, wat staat voor "Software Development Kit", is meestal een verzameling ontwikkeltools die door software-ingenieurs worden gebruikt om applicatiesoftware te bouwen voor specifieke softwarepakketten, softwareframeworks, hardwareplatforms, besturingssystemen, enz. Simpel gezegd, een SDK is een toolkit die door een derde partij wordt geleverd om een bepaalde functie van een softwareproduct te implementeren.
SDK's worden meestal geleverd door professionele bedrijven die professionele diensten aanbieden, zoals het leveren van Android-ontwikkeltools of diensten op basis van hardware-ontwikkeling, enz. Er zijn ook SDK's voor een bepaalde softwarefunctie, zoals push-technologie, beeldherkenningstechnologie, mobiele betalingstechnologie, spraakherkenningsanalysetechnologie, enz. In de trend van open internet worden sommige functionele SDK's als een product behandeld.
Ontwikkelaars hoeven niet langer elke functie van het product te ontwikkelen, ze kunnen gewoon een geschikte en stabiele SDK-service selecteren en met weinig tijd een bepaalde functie in het product integreren.
(2) Het verschil tussen SDK en API
Een SDK is equivalent aan een ontwikkelintegratietoolomgeving, en een API is een data-interface. API-gegevens worden aangeroepen in de SDK-omgeving.
In feite bevat de SDK de definitie van de API, de API definieert een mogelijkheid, een interfacespecificatie, en de SDK kan deze mogelijkheid en specificatie bevatten. Maar een SDK bevat niet alleen de API en de implementatie ervan, het is een software toolkit die ook veel andere ondersteunende functies bevat.
De SDK bevat de materialen die nodig zijn om de API te gebruiken, daarom wordt het schrijven van Windows-applicaties met alleen de API ook wel "SDK-programmeren" genoemd.





