簡介
軟體開發工具包,只是簡單的為某個程式設計語言提供應用程式接口的一些檔案,但也可能包括能與某種嵌入式系統通訊的複雜的硬體。一般的工具包括用於調試和其他用途的實用工具。SDK還經常包括示例代碼、支持性的技術註解或者其他的為基本參考資料澄清疑點的支持文檔。
軟體工程師通常從目標系統開發者那裡獲得軟體開發包。為了鼓勵開發者使用其系統或者語言,許多SDK是免費提供的。SDK經常可以直接從網際網路下載。有時也被作為行銷手段。例如,甲產品或許會免費提供構件SDK以鼓勵人們使用它,從而會吸引更多人由於能免費為其編程而購買其構件。
SDK可能附帶了使其不能在不兼容的許可證下開發軟體的許可證。例如一個專有的SDK可能與自由軟體開發牴觸。而GPL能使SDK與專有軟體開發近乎不兼容。LGPL下的SDK則沒有這個問題。
產品脈絡
從國內代表性的軟體開發平台中,我們可以看出這一類產品的大致脈絡:
1、用友的UAP平台:1997年開始研發,是我國第一個基於B/S、SOA架構的管理軟體平台,在J2EE、.NET平台最早實現,號稱擁有最多客戶裝機基礎,擁有最多夥伴支持、擁有最多成功套用案例。作為交付和部署工具,UAP可以提高套用軟體的可定製性和可集成性,在幫助用友ERP普及套用的過程中發揮了巨大作用。UAP也是做得越來越龐大和複雜。
2、金蝶的BOS平台:BOS平台最大的競爭優勢在於,它不僅以金蝶APUSIC這一國內唯一的系統級中間件J2EE套用伺服器為核心,還包括基於APUSIC之上的一整套模型化業務組件,號稱是中國首創、世界一流的網際網路基礎件平台。BOS平台同樣支持J2EE與.net兩大技術平台,基於Internet開放技術標準而建立。
3、亞思捷的TNT平台:TNT平台的核心優勢在於低成本的個性化,他可以同時向客戶提供T——業務系統模板,即OA、CRM、文檔管理、信息門戶、線上考試等標準化的套用系統;N——開源組件包,即上述套用系統的原始碼;T——開發工具,即基於微軟Jupiter平台的快速開發工具,開發者可以通過界面屬性設定的方法來完成對業務系統的快速開發,自動化生成C#和JAVA的二種語言的系統。顯然,TNT中的兩個“T”是業務的重點,而殺手鐧則是低價。
其他廠家的軟體開發平台與上述三種均大同小異,都是提供“標準化+行業化+個性化”的套用模式。
從中我們看出,這些軟體開發平台確實都非常具有我們在上文中提到的技術共性,另外我們還都具有一個共同點,那就是他們既提供軟體開發平台,又提供基於該平台生成的各種套用系統,兩種產品相輔相成。這種模式也是軟體開發平台銷售的主流模式。
細節
SDK可以採用一種或多種應用程式編程接口(API)的簡單實現形式,以設備庫的形式與特定的程式語言接口,或者它可能與硬體專用工具一樣複雜可以與特定的嵌入式系統通信。常用工具包括調試工具和其他實用程式,通常在集成開發環境(IDE)中提供。SDK還可能包含示例代碼和技術說明或其他支持文檔,如教程,以幫助澄清主要參考資料所提出的要點。
SDK通常包含許可證,這些許可證使它們不適合構建旨在根據不兼容許可證開發的軟體。例如,專有SDK通常與自由軟體開發不兼容,而GPL許可的SDK可能與專有軟體開發不兼容,所有這些都特別是出於法律原因。但是,根據GNU寬通用公共許可證(LGPL)構建的SDK通常對於專有開發是安全的。
平均Android移動應用程式實現了15.6個獨立的SDK,遊戲應用程式平均實現了17.5種不同的SDK。Android移動套用最受歡迎的SDK類別是分析和廣告 。
SDK可能不安全(因為它們在應用程式中實現,但運行單獨的代碼)。惡意SDK(無論是否有誠意)可能會侵犯用戶的數據隱私,損害套用性能,甚至導致套用被禁止使用Google Play或iTunes。新技術允許應用程式開發人員實時控制和監控客戶端SDK。
特定系統或子系統的SDK提供商有時會用更具體的術語代替軟體。例如,Microsoft 和Citrix 都提供了用於開發設備驅動程式的驅動程式開發工具包(DDK)。