複製鏈接
請複製以下鏈接發送給好友

軟件開發工具包

鎖定
軟件開發工具包(Software Development Kit,SDK [5]  )一般都是一些軟件工程師為特定的軟件包軟件框架硬件平台、操作系統等建立應用軟件時的開發工具的集合。
軟件開發工具廣義上指輔助開發某一類軟件的相關文檔、範例和工具的集合
軟件開發工具包是一些被軟件工程師用於為特定的軟件包、軟件框架、硬件平台、操作系統等創建應用軟件的開發工具的集合,一般而言SDK即開發Windows平台下的應用程序所使用的SDK。它通過編譯器、調試器、軟件框架等來促進應用程序的創建。它可以簡單的為某個程序設計語言提供應用程序接口API的一些文件,但也可能包括能與某種嵌入式系統通訊的複雜的硬件。一般的工具包括用於調試和其他用途的實用工具。SDK還經常包括示例代碼、支持性的技術註解或者其他的為基本參考資料澄清疑點的支持文檔。
中文名
軟件開發工具包
外文名
Software Development Kit
別    名
SDK
用    途
軟件開發
應    用
軟件包軟件框架硬件平台、操作系統
應用平台
Windows

軟件開發工具包SpeechSDK

介紹了該系統的設計目標及功能結構,結合實際項目背景,提出瞭解決方案並以分模塊的形式探討了系統的功能,介紹了系統各部分的特點。經過測試基於SpeechSDK。 [1] 
為了鼓勵開發者使用其系統或者語言,許多SDK是免費提供的。軟件工程師通常從目標系統開發者那裏獲得軟件開發包,也可以直接從互聯網下載,有時也被作為營銷手段。例如,營銷公司會免費提供構建SDK以鼓勵人們使用它,從而會吸引更多人由於能免費為其編程而購買其構件。
SDK可能附帶了使其不能在不兼容的許可證下開發軟件的許可證。例如產品供應商提供一個專有的SDK可能與自由軟件開發牴觸。GPL能使SDK與專有軟件開發近乎不兼容。LGPL下的SDK則沒有這個問題。
相關背景

軟件開發工具包API

API(Application Programming Interface,應用編程接口)其實就是操作系統留給應用程序的一個調用接口,應用程序通過調用操作系統的API而使操作系統去執行應用程序的命令(動作)。其實早在DOS時代就有API的概念,只不過那個時候的API是以中斷調用的形式(INT 21h)提供的,在DOS下跑的應用程序都直接或間接的通過中斷調用來使用操作系統功能,比如將AH置為30h後調用INT 21h就可以得到DOS 操作系統的版本號。而在Windows中,系統API是以函數調用的方式提供的。同樣是取得操作系統的版本號,在Windows中你所要做的就是調用GetVersionEx()函數
可以這麼説,DOSAPI是“Thinking in彙編語言”的,而Windows API則是“Thinking in 高級語言”的。
DOSAPI是系統程序的一部分,他們與系統一同被載入內存並且可以通過中斷矢量表找到他們的入口,那麼什麼是Windows API呢?要説明白這個問題就不得不引入下面要介紹得這個概念——DLL [1] 

軟件開發工具包DLL

DLL,即Dynamic Link Library(動態鏈接庫)。在Windows環境下含有大量.dll格式的文件,這些文件就是動態鏈接庫文件,其實也是一種可執行文件格式。跟.exe文件不同的是,.dll文件不能直接執行,通常由.exe在執行時裝入,內含有一些資源以及可執行代碼等。其實Windows的三大模塊就是以DLL的形式提供的(Kernel32.dllUser32.dllGDI32.dll),裏面就含有了API函數的執行代碼。為了使用DLL中的API函數,必須要有API函數的聲明(.h)和其導入庫(.lib),導入庫可以先這樣理解,導入庫是為了在DLL中找到API的入口點而使用的。
為了使用API函數,我們就要有跟API所對應的.h和.lib文件,而SDK正是提供了一整套開發Windows應用程序所需的相關文件、範例和工具的“工具包”。
SDK包含了使用API的必需資料,所以也常把僅使用API來編寫Windows應用程序的開發方式叫做“SDK編程”。而API和SDK是開發Windows應用程序所必需的東西,所以其它編程框架和類庫都是建立在它們之上的,比如VCL和MFC,雖然比起“SDK編程”來有着更高的抽象度,但這絲毫不妨礙在需要的時候隨時直接調用API函數。 [1] 

軟件開發工具包遊戲推薦平台SDK

相信隨着Android對應用程序的繼續火爆發展,這款既節約了Android開發人員開發軟件的時間的同時,又確保和提高開發人員和廣告商的經濟利益,並且又具有良好地可移值性的,能夠適用於任何Android平台上的移動,應用的廣告平台和遊戲推廣中心SDK的推廣和發展將是十分順利的。 [2] 

軟件開發工具包廣告模塊業務描述

根據網上提供的資料,到2012年2月15日為止,我國用手機上網的人數已由03年的900萬增加到4.5億人,且增長速度極快。2021年我國互聯網上網人數10.32億人,其中手機上網人數10.29億人。互聯網普及率為73.0%,其中農村地區互聯網普及率為57.6%。全年移動互聯網用户接入流量2216億GB,比上年增長33.9%。 [4] 
移動無線廣告領域大有可為,而友盟廣告平台正是順應着這一形勢而成的一個為移動應用開發者提供廣告推廣平台,並獲得廣告分成收入,為廣告提供商提供廣告展示平台,推廣自己的產品的一個綜合平台。他通過為移動應用開發者提供可以在自己的應用中加入廣告的SDK及詳細説明文檔來保障移動應用開發者正確,順利的使用廣告平台,並通過SDK中的數據上傳接口來記錄移動終端用户看到,及點擊廣告的動作,從而為移動應用開發者獲‘得廣告提成提供數據基礎。因此,SDK的開發是廣告平台能否順利應用並發展的重中之重,他的易用性,正確性,穩定性直接決定了移動應用開發者是否選擇友盟廣告平台,是使得友盟廣告平台能否在競爭激烈的移動無線廣告市場中脱穎而出的核心競爭力。 [2] 

軟件開發工具包遊戲模塊業務描述

眾所周知,移動互聯網的發展速度十分迅猛,在世界各地,不管是移動運營商,還是設備製造商,甚至是軟件生產商都投入了大量的人力物力佈局移動互聯網,移動互聯網大有超越基於個人電腦的傳統互聯網成為最前沿的改變人們生活方式的下一代革命性技術。
由於Android市場的審核機制不是十分的嚴格,大量的粗製濫造的遊戲充斥於遊戲市場中,使用户叫苦不迭,這一現象甚至已經影響了整個Android平台的發展。因此,用户和Android市場都需要一個平台來評價,推薦一些好的遊戲,來淨化一下這個市場。而項目中的SDK就是順應這一形勢產生的一個定期向用户提供推薦遊戲的一個平台,其業務模式與廣告平台類似,都是開發一個SDK來允許移動應用開發者將此遊戲平台集成到其所開發的應用中,然後將他的應用發佈到Android市場中,當用户下載此應用並使用的過程中,會看到此遊戲平台的提示,點擊進去就可看到遊戲中心所提供的數據,瞭解到近期Android市場中一些評價很高的遊戲,在這個過程中,SDK中會有專門模塊記錄用户的行為,為以後移動應用開發者獲得遊戲推薦提成提供數據基礎。 [2] 

軟件開發工具包與MOD(遊戲模組)的關係

遊戲中就有很多SDK工具包,可以開發MOD和資料片。
2017年,Vungle推出SDKV5,增加10個新的交互式應用內視頻模板進一步增強消費者的廣告體驗----新的模版將會植入Vungle最新的廣告埋點技術。

軟件開發工具包風險隱患

軟件開發工具包隱私風險

2019年11月,上海市消費者權益保護委員會委託第三方公司對一些手機軟件中的SDK插件進行了專門的測試,卻發現一些SDK暗藏玄機。它們會讀取設備的IMEI、IMSI、運營商信息、電話號碼、短信記錄、通訊錄、應用安裝列表和傳感器信息。這些APP裏的SDK來讀取用户的隱私信息只是第一步,讀取完成後,還會悄悄地將數據傳送到指定的服務器存儲起來。北京招彩旺旺信息技術有限公司的SDK,甚至涉嫌通過菜譜、家長幫、動態壁紙等多款軟件,竊取用户更加隱私的信息。因為SDK能夠收集用户的短信,以及應用安裝信息,一旦用户有網絡交易的驗證碼被獲取,極有可能造成嚴重的經濟損失。 [3] 

軟件開發工具包數據間諜

近年來,國家安全機關工作發現,境外一些別有用心的組織和人員,正在通過SDK蒐集我用户數據和個人信息,給我國家安全造成了一定風險隱患。SDK以其多樣化、易用性和靈活性等優勢成為移動供應產業鏈中最重要的一項服務,與此同時也帶來諸多數據安全問題。
——過度收集用户數據。有些SDK會收集與提供服務無關的個人信息,或強制申請非必要的使用權限,比如獲取地理位置、通話記錄、相冊照片等信息以及拍照、錄音等功能。當SDK的用户覆蓋量達到一定規模時,可以通過蒐集的大量數據,對不同用户羣體進行畫像側寫,從而分析出潛在的有用信息,比如同事關係、單位位置、行為習慣等。一些境外SDK服務商,通過向開發者提供免費服務,甚至向開發者付費等方式來獲取數據。據相關網站披露,一款在美國擁有5萬日活躍用户的應用程序,其開發者通過使用某SDK,每月可以獲得1500美元的收入。作為回報,該SDK服務商可以從這款應用程序中收集用户的位置數據。
SDK蒐集個人信息類型 SDK蒐集個人信息類型
——境外情報機構將SDK作為蒐集數據的重要渠道。據報道,美國特種作戰司令部曾向美國SDK服務商Anomaly Six購置了“商業遙測數據源”的訪問服務,而該服務商曾自稱將SDK軟件植入全球超過500款應用中,可以監控全球大約30億部手機的位置信息。2022年4月,有關媒體曝光巴拿馬一家公司通過向世界各地的應用程序開發人員付費的方式,將其SDK代碼整合到應用程序中,秘密地從數百萬台移動設備上收集數據,而該公司與為美國情報機構提供網絡情報蒐集等服務的國防承包商關係密切。 [5] 
《華爾街日報》:美國政府承包商在多個手機APP中嵌入跟蹤軟件 《華爾街日報》:美國政府承包商在多個手機APP中嵌入跟蹤軟件

軟件開發工具包消除數據風險

消除SDK背後的數據風險應該怎麼做?
據國內權威機構掌握,截至2022年12月,中國10萬個頭部應用中,共檢測出2.3萬餘例樣本使用境外SDK,使用境外SDK應用的境內終端約有3.8億台。
SDK申請收集用户信息佔比 SDK申請收集用户信息佔比
——應用程序開發企業:應儘量選擇接入經過備案認證的SDK,引入境外SDK前應做好安全檢測和風險評估,深入瞭解SDK的隱私政策,並利用SDK demo以及APP測試環境對SDK聲明內容進行一致性比對,並持續監測SDK是否有異常行為。
——個人用户:個人用户在使用手機應用程序時,要增強個人信息保護意識及安全使用技能,要選擇安全可靠的渠道下載使用應用程序,不安裝來路不明的應用,不盲目通過敏感權限的申請。特別是發現SDK申請與應用功能無關的權限時,需要保持高度警惕。 [5] 
參考資料