SDK는 특정 프로그래밍 언어에 인터페이스하는 데 사용되는 재사용 가능한 기능의 온 디바이스 라이브러리 형태로 애플리케이션 프로그래밍 인터페이스 (API)의 형태를 취할 수 있습니다. 특정 임베디드 시스템과 통신 할 수있는 하드웨어 관련 도구만큼 복잡합니다. 공통 도구에는 통합 개발 환경 (IDE)에 제공되는 디버깅 기능 및 기타 유틸리티가 포함됩니다. SDK에는 설명서와 함께 샘플 소프트웨어 및 / 또는 기술 노트가 포함될 수 있으며, 기본 참조 자료의 요점을 명확히하는 데 도움이되는 자습서가 포함될 수 있습니다.
SDK에는 종종 개발할 소프트웨어를 빌드하는 데 적합하지 않게 만드는 라이선스가 포함됩니다. 호환되지 않는 라이센스. 예를 들어, 독점 SDK는 일반적으로 무료 소프트웨어 개발과 호환되지 않는 반면, GPL 라이센스 SDK는 법적 이유로 독점 소프트웨어 개발과 호환되지 않을 수 있습니다. 그러나 GNU Lesser General Public License (LGPL)에 따라 빌드 된 SDK는 일반적으로 독점 개발에 사용할 수 있습니다. 기본 기술이 새로운 경우 SDK에 하드웨어가 포함될 수 있습니다. 예를 들어 AirTag의 2012 NFC SDK에는 필요한 하드웨어 스택의 절반을 지불하는 것과 읽기가 모두 포함되어 있습니다.
일반적인 Android 모바일 앱은 15.6 개의 개별 SDK를 구현하며 게임 앱은 평균 17.5 개의 서로 다른 SDK를 구현합니다. Android 모바일 앱에서 가장 많이 사용되는 SDK 카테고리는 분석 및 광고입니다.
SDK는 안전하지 않을 수 있습니다 (앱 내에서 구현되지만 별도의 코드를 실행하기 때문). 악성 SDK (정직한 의도이든 아니든)는 위험 할 수 있습니다. 사용자의 데이터 개인 정보 보호를 위반하거나 앱 성능을 손상 시키거나 Google Play 또는 App Store에서 앱을 차단할 수도 있습니다. 새로운 기술을 통해 앱 개발자는 실시간으로 클라이언트 SDK를 제어하고 모니터링 할 수 있습니다.
특정 시스템 또는 하위 시스템에 대한 SDK 제공 업체는 때때로 소프트웨어 대신 더 구체적인 용어로 대체합니다. 예를 들어 Microsoft와 Citrix는 모두 장치 드라이버 개발을위한 드라이버 개발 키트 (DDK)를 제공합니다.