Bộ công cụ phát triển phần mềm

Bộ công cụ phát triển phần mềm (tiếng Anh: software development kit, viết tắt là SDK) là một gói các công cụ phát triển phần mềm (software development) trong một gói có thể cài đặt. Chúng có thể dễ dàng tạo ra các ứng dụng nhờ có các trình biên dịch, trình gỡ lỗi và có thể bao gồm một software framework. Chúng thường dành riêng cho một nền tảng phần cứng và kết hợp hệ điều hành.[1][2][3] Để tạo một ứng dụng với các tính năng nâng cao như quảng cáo,[4] thông báo đẩy,[5] v.v; hầu hết các nhà phát triển phần mềm ứng dụng sử dụng SDK cụ thể.

Một vài SDK được yêu cầu để phát triển ứng dụng dành riêng cho nền tảng. Ví dụ, để phát triển một app Android trên nền tảng Java yêu cầu một Java Development Kit. Cho ứng dụng iOS iOS SDK được yêu cầu. Cho Universal Windows Platform, .NET Framework SDK có thể được sử dụng. Ngoài ra còn có SDK thêm các tính năng bổ sung và có thể được cài đặt trong các ứng dụng để cung cấp các phân tích dữ liệu về hoạt động của ứng dụng và các tùy chọn kiếm tiền. Một số người tạo nổi bật của các loại SDK này bao gồm Google,[6] Smaato[7], InMobi,[8]Facebook.[9]

Chi tiết

Một SDK có thể ở dạng một giao diện lập trình ứng dụng (API)[3] dưới dạng thư viện trên thiết bị có chức năng tái sử dụng được sử dụng để giao tiếp với ngôn ngữ lập trình cụ thể hoặc có thể phức tạp như các công cụ dành riêng cho phần cứng có thể giao tiếp với hệ thống nhúng cụ thể.[10] Các công cụ phổ biến bao gồm các tiện ích gỡ lỗi và các tiện ích khác, thường được trình bày trong môi trường phát triển tích hợp (IDE).[11] SDK có thể bao gồm phần mềm mẫu và/hoặc ghi chú kỹ thuật cùng với tài liệu và hướng dẫn để giúp làm rõ các điểm được tạo bởi tài liệu tham khảo chính.[12][13]

SDK thường bao gồm các giấy phép khiến chúng không phù hợp để xây dựng phần mềm được dự định phát triển theo giấy phép không tương thích. Ví dụ, một SDK độc quyền không tương thích với phát triển phần mềm tự do, trong khi SDK được cấp phép GPL có thể không tương thích với phát triển phần mềm độc quyền, vì lý do pháp lý.[14][15] Tuy nhiên, SDK được xây dựng theo GNU Lesser General Public License (LGPL) thường có thể sử dụng để phát triển độc quyền.[16]

Ứng dụng di động Android trung bình triển khai 15.6 riêng biệt, với các ứng dụng chơi trò chơi thực hiện trên trung bình 17,5 SDK khác nhau.[17] Các danh mục SDK phổ biến nhất cho ứng dụng di động Android là phân tích và quảng cáo.

SDK có thể không an toàn (bởi vì chúng được triển khai bên trong ứng dụng, nhưng vẫn chạy mã riêng). SDK độc hại (có ý định trung thực hay không) có thể vi phạm quyền riêng tư dữ liệu của người dùng, làm hỏng hiệu suất ứng dụng hoặc thậm chí khiến các ứng dụng bị cấm khỏi Google Play hoặc App Store.[18] Các công nghệ mới cho phép các nhà phát triển ứng dụng kiểm soát và giám sát SDK khách trong thời gian thực.

Các nhà cung cấp SDK cho các hệ thống hoặc hệ thống con cụ thể đôi khi thay thế một thuật ngữ cụ thể hơn thay vì phần mềm. Chẳng hạn, cả Microsoft[19]Citrix[20] cung cấp một driver development kit (DDK) cho phát triển các trình điều khiển thiết bị

Xem thêm

Chú thích