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

sửa

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

sửa

Chú thích

sửa
  1. ^ Shamsee, N.; Klebenov, D.; Fayed, H.; và đồng nghiệp (2015). CCNA Data Center DCICT 640-916: Official Cert Guide. Cisco. tr. 934. ISBN 9780133860450.
  2. ^ “SDK (software development kit)”. Gartner, Inc. Truy cập ngày 5 tháng 7 năm 2018.
  3. ^ a b Sandoval, K. (ngày 2 tháng 6 năm 2016). “What is the Difference Between an API and an SDK?”. Nordic APIs Blog. Nordic APIs AB. Truy cập ngày 5 tháng 7 năm 2018.
  4. ^ Tarkoma, S.; Siekkinen, M.; Lagerspetz, E.; Xiao, Y. (2014). Smartphone Energy Consumption: Modeling and Optimization. Cambridge University Press. tr. 249–50. ISBN 9781139992732.
  5. ^ Buecker, A.; Affouard, A.; Armstrong, A.; và đồng nghiệp (2014). IBM System z in a Mobile World. IBM Redbooks. tr. 207. ISBN 9780738440095.
  6. ^ Dimitriu, A. (ngày 11 tháng 4 năm 2017). “How to use Analytics for mobile apps: Google Analytics SDK vs Firebase”. Littledata Blog Clare is a legend. Littledata Consulting Ltd. Truy cập ngày 5 tháng 7 năm 2018.
  7. ^ “Mobile Advertising SDK | NextGen SDK”. Smaato (bằng tiếng Anh). Truy cập ngày 20 tháng 11 năm 2019.
  8. ^ Kirk, J. (ngày 31 tháng 7 năm 2017). “How to Measure Mobile Video Viewability (Without Slowing Performance)”. inMobi Blog. inMobi. Truy cập ngày 3 tháng 7 năm 2018.
  9. ^ Cohen, D. (ngày 29 tháng 9 năm 2016). “More New Features for Facebook's Analytics for Apps”. Adweek. Adweek, LLC. Truy cập ngày 5 tháng 7 năm 2018.
  10. ^ Benso, A.; Chiusano, S.; Prinetto, P. (2000). “A software development kit for dependable applications in embedded systems”. Proceedings International Test Conference 2000: 170–8. doi:10.1109/TEST.2000.894204.
  11. ^ Burd, B. (2015). Android Application Development All-in-One For Dummies. John Wiley & Sons. tr. 31. ISBN 9781118973806.
  12. ^ Asif, S.Z. (2011). Next Generation Mobile Communications Ecosystem: Technology Management for Mobile Communications. John Wiley & Sons. tr. PT384. ISBN 9781119995814.
  13. ^ Withee, K. (2011). SharePoint 2010 Development For Dummies. John Wiley & Sons. tr. PT346. ISBN 9781118038628.
  14. ^ Vaughan-Nichols, S.J. (ngày 4 tháng 1 năm 2013). “No, Google is not making the Android SDK proprietary. What's the fuss about?”. ZDNet. CBS Interactive. Truy cập ngày 5 tháng 7 năm 2018.
  15. ^ Orland, K. (ngày 20 tháng 7 năm 2017). “Sony's legal quest to remove its leaked developer's kit from the Web”. ArsTechnica. Condé Nast. Truy cập ngày 5 tháng 7 năm 2018.
  16. ^ Davidson, S.J. (2004). “A Primer on Open Source Software for Business People and Lawyers”. Leonard, Street and Deinard. Bản gốc lưu trữ ngày 7 tháng 2 năm 2020. Truy cập ngày 5 tháng 7 năm 2018.
  17. ^ Shoavi, Orly. “The All-Star Winners of Mobile App Tools (SDKs)”. SafeDK.
  18. ^ Perez, Sarah. “Hundreds Of Apps Banned From App Store For Accessing Users' Personal Information”. TechCrunch.
  19. ^ “Windows Driver Kit documentation”. Hardware Dev Center. Microsoft. Truy cập ngày 5 tháng 7 năm 2018.
  20. ^ “Driver Development Kit - For XenServer 6.2.0 Service Pack 1 with Hotfix XS62ESP1062”. Citrix Systems, Inc. ngày 27 tháng 6 năm 2017. Bản gốc lưu trữ ngày 21 tháng 1 năm 2022. Truy cập ngày 5 tháng 7 năm 2018.