Які відносини між SDK та API?
У розробці програмного забезпечення, зі збільшенням масштабу системи, стає критично важливим розбиття складних систем на менші компоненти, причому проектування інтерфейсів є ключовим. Першочерговим завданням проектування інтерфейсів є розумне розподілення відповідальності програмної системи. Хороший дизайн інтерфейсу може зменшити залежність між частинами системи, підвищити зв’язність модулів, а також зменшити зв’язаність між модулями, тим самим підвищуючи ремонтопридатність та розширюваність системи. API, як одна з форм інтерфейсу, відіграє важливу роль у взаємодії між програмами, а між SDK та API існує тісний зв’язок.
01 API
(1) Концепція API
API, що розшифровується як "інтерфейс програмування додатків", є набором попередньо визначених функцій, призначених для використання як "інтерфейс" для з’єднання двох різних речей. Він надає спосіб, за допомогою якого додатки та розробники можуть отримати доступ до процедур певного програмного або апаратного забезпечення, не звертаючись до вихідного коду або не розуміючи деталей його внутрішньої роботи.
Насправді, API – це функції, попередньо написані іншими, які можуть реалізувати певні функції. Вам просто потрібно викликати їхні методи відповідно до наданого інтерфейсу, передати вказані параметри, і функція допоможе вам реалізувати ці функції.

З точки зору концепції "інтерфейсу", в комп’ютерній сфері це відноситься до місця взаємодії між двома різними сутностями, які можуть бути двома повністю різними системами або двома фрагментами програми. Тому "I" в інтерфейсі можна розуміти таким чином. На цій основі місце взаємодії людини з програмою називається UI (користувацьким інтерфейсом), який включає всі форми введення, такі як миша, клавіатура, сенсорний екран та голосовий ввід тощо. Взаємодія між програмами називається API, і вся взаємодія, яка не є людиною з людиною, відбувається через API. По суті, ця взаємодія є передачею даних та запуском функцій.
(2) Класифікація API
API поділяються на системні API (наприклад, Windows, Linux, Unix тощо) та нестандартні API, що не є операційними системами. Як ефективна модель інкапсуляції коду, модель розробки API Microsoft Windows була запозичена багатьма компаніями з розробки комерційних додатків, і вони розробили певні API-функції комерційних додатків для публікації, щоб полегшити розширення функціональності сторонніми розробниками. Наприклад, API, розроблені Google, Apple та Nokia.
API також поділяються на відкриті API та приватні API. Як випливає з назви, відкритий API – це інтерфейс, відкритий для всіх, який дозволяє будь-кому викликати його та отримувати дані, що лежать в його основі. Іноді компанії роблять API своєю загальнодоступною системою, тобто компанія встановлює власні стандарти інтерфейсу системи, і всі члени компанії можуть викликати вихідний код через цей стандарт інтерфейсу для виконання інтеграції системи, налаштування та застосування програми. Цей стандарт інтерфейсу називається відкритим API. Приватний API – це інтерфейс, який не відкритий для зовнішнього світу.
02 SDK
(1) Концепція SDK
SDK, що розшифровується як "комплект розробки програмного забезпечення", зазвичай є набором інструментів розробки, які використовуються інженерами-програмістами для створення програмного забезпечення для певних пакетів, програмних фреймворків, апаратних платформ, операційних систем тощо. Простіше кажучи, SDK – це набір інструментів, наданий стороннім постачальником для реалізації певної функції програмного продукту.
Зазвичай SDK надається професійними компаніями, які надають професійні послуги, наприклад, інструменти розробки Android або послуги на основі розробки апаратного забезпечення тощо. Існують також SDK для певної програмної функції, такі як технології push-повідомлень, технології розпізнавання зображень, технології мобільних платежів, технології аналізу розпізнавання мови тощо. У загальній тенденції до відкритості Інтернету деякі функціональні SDK були перетворені на продукт для експлуатації.
Розробникам більше не потрібно розробляти кожну функцію продукту самостійно, їм потрібно лише вибрати відповідну стабільну службу SDK і витратити дуже мало часу на інтеграцію певної функції в продукт.
(2) Відмінності між SDK та API
SDK еквівалентний середовищу інтеграції розробки, а API – це інтерфейс даних. API дані викликаються в середовищі SDK.
Насправді, SDK містить визначення API, API визначає здатність, специфікацію інтерфейсу, а SDK може містити цю здатність, цю специфікацію. Але SDK містить не тільки API та його реалізацію, а й є набором інструментів програмного забезпечення, який також містить багато інших допоміжних функцій.
SDK містить матеріали, необхідні для використання API, тому люди часто називають розробку програм для Windows за допомогою лише API "програмуванням SDK".





