¿Cuál es la relación entre SDK y API?
En el desarrollo de software, a medida que la escala de los sistemas aumenta constantemente, es crucial descomponer los sistemas complejos en componentes más pequeños. El diseño de interfaces de programación (API) es particularmente importante en este proceso. La tarea principal del diseño de interfaces es asignar responsabilidades de manera razonable dentro del sistema de software. Un buen diseño de interfaz puede reducir la dependencia entre las diferentes partes del sistema, mejorar la cohesión de los módulos y, al mismo tiempo, reducir el acoplamiento entre los módulos, mejorando así la mantenibilidad y la escalabilidad del sistema. La API, como una forma de interfaz, juega un papel importante en la interacción entre programas, y existe una estrecha relación entre SDK y API.
01 API
(1) El concepto de API
API, que significa "Interfaz de Programación de Aplicaciones", es un conjunto de funciones predefinidas diseñadas para actuar como una "interfaz" que conecta dos entidades diferentes. Proporciona una forma para que las aplicaciones y los desarrolladores accedan a rutinas de software o hardware sin tener que interactuar con el código fuente o comprender los detalles de su funcionamiento interno.
En esencia, una API son funciones pre-escritas por otros que pueden realizar funciones específicas. Simplemente necesita llamar a sus métodos de acuerdo con la interfaz proporcionada y pasar los parámetros especificados, y la función lo ayudará a lograr estas funciones.

Desde el concepto de "interfaz", en el campo de la computación, se refiere al lugar donde interactúan dos entidades diferentes, que pueden ser dos sistemas completamente diferentes o dos segmentos de programa. Por lo tanto, la "I" de la interfaz se puede entender de esta manera. Sobre esta base, el lugar donde interactúan las personas y los programas se llama UI (Interfaz de Usuario), que incluye todas las formas de entrada, como mouse, teclado, pantalla táctil y entrada de voz, etc. La interacción entre programas se llama API, y toda la interacción que no es entre personas se realiza a través de API. En esencia, esta interacción es transmisión de datos y activación de funciones.
(2) Clasificación de las API
Las API se dividen en API de nivel de sistema (como Windows, Linux, Unix, etc.) y API personalizadas que no son de nivel de sistema operativo. Como un modelo de encapsulación de código eficaz, el modelo de desarrollo de API de Microsoft Windows ha sido adoptado por muchas empresas de desarrollo de aplicaciones comerciales y han desarrollado funciones de API de ciertos sistemas de aplicaciones comerciales para su publicación, facilitando la extensión de funciones de terceros. Por ejemplo, las API desarrolladas por Google, Apple Computer y Nokia, etc.
Las API también se dividen en API abiertas y API privadas. Como su nombre indica, las API abiertas son interfaces que están disponibles públicamente para todos, lo que permite a cualquiera llamarlas y obtener los datos subyacentes. A veces, las empresas utilizan las API como su sistema abierto público, es decir, la empresa establece sus propios estándares de interfaz de sistema, y todos los miembros de la empresa pueden llamar al código fuente a través de este estándar de interfaz cuando necesitan realizar integración de sistemas, personalización y aplicaciones de programas. Este estándar de interfaz se conoce como API abierta. Las API privadas son interfaces que no están abiertas al público.
02 SDK
(1) El concepto de SDK
SDK, que significa "Kit de Desarrollo de Software", es generalmente una colección de herramientas de desarrollo utilizadas por ingenieros de software para construir aplicaciones de software para paquetes de software específicos, marcos de software, plataformas de hardware, sistemas operativos, etc. En términos sencillos, un SDK es un kit de herramientas proporcionado por un proveedor de terceros para implementar una función de un producto de software.
Generalmente, los SDK son proporcionados por empresas profesionales que ofrecen conjuntos de servicios profesionales, como proporcionar herramientas de desarrollo de Android o servicios basados en el desarrollo de hardware, etc. También hay SDK para funciones de software específicas, como tecnología de push, tecnología de reconocimiento de imágenes, tecnología de pago móvil, tecnología de análisis de reconocimiento de voz, etc. En la gran tendencia de la apertura de Internet, algunos SDK funcionales se han convertido en un producto para operar.
Los desarrolladores ya no necesitan desarrollar cada función del producto, simplemente pueden elegir un servicio SDK estable y adecuado, y pueden integrar una función en el producto en poco tiempo.
(2) La diferencia entre SDK y API
Un SDK es equivalente a un entorno de herramientas de desarrollo e integración, mientras que una API es una interfaz de datos. Las API de datos se llaman en el entorno SDK.
En realidad, el SDK contiene la definición de la API, la API define una capacidad, una especificación de interfaz, y el SDK puede contener esta capacidad, esta especificación. Pero el SDK no solo contiene la API y su implementación, es un kit de herramientas de software que también contiene muchas otras funciones auxiliares.
El SDK contiene la documentación necesaria para usar la API, por lo que las personas también suelen llamar al método de escribir aplicaciones de Windows usando solo la API como "programación SDK".





