A. 硬體協議sdk如何打包
關注
從事android開發久了不可避免的會接觸對外介面的封裝,下面本人就以自己寫過的一個例子系統講講怎樣對應用sdk的開發。
1.封裝
我們在與其他公司合作的時候,往往會有技術方面的協作,但我們又不想過多的暴露我們某些技術方面的細節,比如:ip地址、技術參數、核心演算法。
於是我們會對這部分代碼進行封裝,這部分需要精通java的設計模式。
下面上傳我的項目:
這里寫圖片描述
新建一個Android工程,添加一個Model:musicdot。
musicdot是本人自己解析網路音樂的歌曲搜索請求實現的在線搜歌功能包。所以我將要對這部分代碼進行封裝打包,以達到隱藏具體搜索請求的目的。(由於司准備讓整個項目打包成SDK,經過大量查閱打包SDK的博客,和自己的實踐,我把打包過程,中間遇到的各種問題,踩過的坑簡單的總結一下,讓看到的道友少踩些坑。
一、創建一個workspace
可以在桌面新建個testSDK文件夾,在這個文件夾里創建個WorkSpace。如圖:
二、創建SDK
1.打開workspace,創建一個project,如圖:
2.選擇Cocoa Touch Framework,如圖:
3.創建framework,把framework添加到workspace里。如圖:
三、創建SDKDemo
1.打開TestSDK.xcworkspace文件,創建project ,選擇Single View Application。如圖:
2.紅框里的都選擇TestSDK.xcworkspace。
這樣就把SDK和demo都創建好了,這樣創建SDK加demo可以方便調試,如果sdk中有問題,可以直接在SDK中斷點調試。創建後的效果如圖:
3.修改build settings 配置參數。如圖:
更改參數,在Architectures下增加armv7s,並選中。將Build Active Architecture only設置為NO
四、添加你的項目代碼到SDK中
如果你的項目用到了Xib,圖片,mp3,storyboard等,那麼你就要添加一個bundle資源包,把這些資源添加到資源包里。
五、創建bundle資源包。
1.在target中點擊右下角的+號,選擇macOS,找到Framework&Library,選擇Bundle。如圖:
2.修改配置文件:
"Base SDK" 設置為 "IOS"
"Build Active Architecture Only" 設置為 "YES"
"Debug Information Format" 設置為 "DWARF with dSYM File"
"Skip Install" 設置為 "NO"
"Strip Debug Symbols During Copy" 中"Release"模式設置為 "YES"
"IOS Deployment Target" 設置為 "IOS 9.0"(具體根據自己的項目,設置系統版本)
"COMBINE_HIDPI_IMAGES" 設置為 "NO"
3.在Build phases中添加Xib。如圖:
4.選擇bundle,command + B編譯,如圖:
編譯之後,SDK工程下會多個bundle的文件夾,你可以把圖片,MP3,plist文件放到該文件夾里,如圖:
5.調用bundle資源包里的資源。
//調用自定義View的Xib
+(MyView *)instancePubView
{
NSArray * nibView = [[NSBundle mainBundle] loadNibNamed:@"testBL.bundle/MyView" owner:nil options:nil];
return [nibView objectAtIndex:0];
}
//調用視圖控制器的Xib
-(instancetype)init{
NSBundle * bundle = [NSBundle bundleWithPath:[[[NSBundle mainBundle] resourcePath] :@"testBL.bundle"]];
self = [super initWithNibName:@"LoginViewController" bundle:bundle];
return self;
B. SDK 介面是什麼意思
SDK、外語全稱:Software Development Kit,指的是軟體開發工具包。
1、一般都是一些軟體工程師為特定的軟體包、軟體框架、硬體平台、操作系統等建立應用軟體時的開發工具的集合。
2、軟體開發工具包括廣義上指輔助開發某一類軟體的相關文檔、範例和工具的集合。
3、軟體開發工具包是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、操作系統等創建應用軟體的開發工具的集合,一般而言SDK即開發 Windows 平台下的應用程序所使用的 SDK。
4、它可以簡單的為某個程序設計語言提供應用程序介面 API的一些文件,但也可能包括能與某種嵌入式系統通訊的復雜的硬體。一般的工具包括用於調試和其他用途的實用工具。SDK 還經常包括示例代碼、支持性的技術註解或者其他的為基本參考資料澄清疑點的支持文檔。
(2)sdk編譯技術擴展閱讀
1、SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程序的開發方式叫做 「SDK編程」。
2、實際開發中,可以輕松的獲得多種多類的軟體開發的工具(如keil uvision, eclipse,Visual C++等),這些工具集成了語言的開發環境、編譯環境,還提供糾錯功能。可以通過這些工具將SDK中的函數,框架類導入,使用別人寫好的類,協助軟體的開發。
參考資料
網路-SDK
C. 軟體開發:ide和sdk是什麼意思
SDK 就是 Software Development Kit 的縮寫,中文意思就是「軟體開發工具包」。這是一個覆蓋面相當廣泛的名詞,可以這么說:輔助開發某一類軟體的相關文檔、範例和工具的集合都可以叫做「SDK」。具體到我們這個系列教程,我們後面只討論廣義 SDK 的一個子集——即開發 Windows 平台下的應用程序所使用的 SDK。 呵呵,其實上面只是說了一個 SDK 大概的概念而已,理解什麼是 SDK 真有這么容易嗎?恐怕沒這么簡單!為了解釋什麼是 SDK 我們不得不引入 API、動態鏈接庫、導入庫等等概念。^_^,不要怕,也就是幾個新的名詞而已,我也是到了大學快結束的時候才體會到其實學習新知識就是在學習新名詞、新概念和新術語。 首先要接觸的是「API」,也就是 Application Programming Interface,其實就是操作系統留給應用程序的一個調用介面,應用程序通過調用操作系統的 API 而使操作系統去執行應用程序的命令(動作)。其實早在 DOS 時代就有 API 的概念,只不過那個時候的 API 是以中斷調用的形式(INT 21h)提供的,在 DOS 下跑的應用程序都直接或間接的通過中斷調用來使用操作系統功能,比如將 AH 置為 30h 後調用 INT 21h 就可以得到 DOS 操作系統的版本號。而在 Windows 中,系統 API 是以函數調用的方式提供的。同樣是取得操作系統的版本號,在 Windows 中你所要做的就是調用 GetVersionEx() 函數。可以這么說,DOS API 是「Thinking in 匯編語言」的,而 Windows API 則是「Thinking in 高級語言」的。DOS API 是系統程序的一部分,他們與系統一同被載入內存並且可以通過中斷矢量表找到他們的入口,那麼 Windows API 呢?要說明白這個問題就不得不引入我們下面要介紹得這個概念——DLL。 DLL(又是一個縮寫,感覺 IT 這個行業里三字頭縮寫特別多),即 Dynamic Link Library(動態鏈接庫)。我們經常會看到一些 .dll 格式的文件,這些文件就是動態鏈接庫文件,其實也是一種可執行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接執行,他們通常由 .exe 在執行時裝入,內含有一些資源以及可執行代碼等。其實 Windows 的三大模塊就是以 DLL 的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),裡面就含有了 API 函數的執行代碼。為了使用 DLL 中的 API 函數,我們必須要有 API 函數的聲明(.H)和其導入庫(.LIB),函數的原型聲明不難理解,那麼導入庫又是做什麼用的呢?我們暫時先這樣理解:導入庫是為了在 DLL 中找到 API 的入口點而使用的。 所以,為了使用 API 函數,我們就要有跟 API 所對應的 .H 和 .LIB 文件,而 SDK 正是提供了一整套開發 Windows 應用程序所需的相關文件、範例和工具的「工具包」。到此為止,我們才真正的解釋清楚了 SDK 的含義。 由於 SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程序的開發方式叫做「SDK 編程」。而 API 和 SDK 是開發 Windows 應用程序所必需的東西,所以其它編程框架和類庫都是建立在它們之上的,比如 VCL 和 MFC,雖然他們比起「SDK 編程」來有著更高的抽象度,但這絲毫不妨礙它們在需要的時候隨時直接調用 API 函數 所謂的MD5 , 是密碼學中的一門演演算法 , 在電腦界來說 , 常常運用在數位簽章之上 , 他可以將一個很大的檔案 (例如 MP3 音樂 , ISO 光碟影像檔 ) , 經過某種運算 , 簽出一組特徵值 , 而他的長度就是32個位元組 , 所謂的特徵值 , 也就是說 , 基本上 , 每個檔案的特徵都不一樣 , 自然簽出來的特徵也不一樣羅 , 因此 , 舉例來說 , 若是我們要比對某某MP3檔案是否已經有了 , 我們不需要比對整個檔案 (可能有4MB那麽大) , 我們只要比對32位元組的特徵值就好了 。
IDE IDE 集成開發環境:Integrated Develop Environment,電子集成驅動器:Integrated Drive Electronics 1.IDE(Integrated Development,集成開發環境) 集成開發環境(簡稱IDE)軟體是用於程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面工具。就是集成了代碼編寫功能、分析功能、編譯功能、debug功能等一體化的開發軟體套。所有具備這一特性的軟體或者軟體套(組)都可以叫做IDE。如微軟的Visual Studio系列,Borland的C++ Builder,Delphi系列等。該程序可以獨立運行,也可以和其它程序並用。例如,BASIC語言在微軟辦公軟體中可以使用,可以在微軟Word文檔中編寫WordBasic程序。IDE為用戶使用Visual Basic、Java和PowerBuilder等現代編程語言提供了方便。 不同的技術體系有不同的IDE。比如visual studio.Net可以稱為C++、VB、C#等語言的集成開發環境,所以visual studio.Net可以叫做IDE。同樣,Borland的JBuilder也是一個IDE,它是Java的IDE。zend studio、editplus、ultra edit這些,每一個都具備基本的編碼、調試功能,所以每一個都可以稱作IDE。 IDE多被用於開發HTML應用軟體。例如,許多人在設計網站時使用IDE(如HomeSite、DreamWeaver、FrontPage,等等),因為很多項任務會自動生成。IDE集成代碼編輯,代碼生成,界面設計,調試,編譯等功能,目前還融合了建模功能。
D. vc++,高分,SDk,
我現在的軟體開發主要在vc下,算是有一些經驗,針對你的問題簡單做做總結,希望對你有所幫助!
先針對你的問題進行回答(編號對應你的問題編號):
1.這主要是因為基於windows的開發經驗不足,簡單說吧,就是自己嘗試寫代碼的勇氣不足,一出現不會的就想去尋求現成代碼,代碼的設計經驗較差。選擇了vc就選擇了深入編程的本質,因為vc就像C語言一樣,是比較低級的,不像vb,delphi等開發工具替你想到了很多很多。使用vc自己需要做的工作很多,就連要在窗口上創建工具欄,都需要自行寫代碼設計,而不像delphi,動動滑鼠就OK了
所以使用vc開發,學習和使用都是一個經驗積累的過程,從小程序開始,一點一點擴展程序規模,比如載入圖片到程序中顯示是簡單的;但是如果載入圖片讓你以漸變色的方式顯示,或者以絢麗的過渡方式顯示就是困難了,這就涉及一個代碼設計的問題,沒有足夠的代碼經驗,這道溝很難跨過
2.其實vc提供的庫,包括標准庫和MFC都是比較小的,相比於VCL庫,.net庫簡直是小巫見大巫。之所以感覺函數比較多,關鍵字很雜,主要是因為沒有理順VC的結構。MFC庫屬於淺層封裝,主要是為了降低直接使用sdk的開發難度。它其實是有自己的結構的,主要分為界面庫,網路庫,ole庫,資料庫相關庫(DAO,ADO,OLEDB等)等。其實不用在意全部掌握,也沒有必要,而且有了MSDN,可以隨時查詢,只要知道自己要實現的功能大概和什麼相關,怎樣在MSDN中找到自己需要的相關函數或類就可以了。
再說關鍵字,C++的關鍵字不多,但主要是因為windows開發為了便於理解,所以使用define或者typedef定義了很多輔助關鍵字而已,比如HANDLE代表句柄,實際就是unsigned int;WORD代表字,實際上也是unsigned short int,等等其實不用太在意,代碼寫的多了,自然會明白
3.上面的回答有所涉及,隨著寫代碼的經驗增多,這根本不是什麼問題,就算一點也不知道,求助搜索引擎,一般都有前輩的經驗可循,有了前人的經驗(僅僅是借鑒),加上自己的設計,這本身就是極大地提高
4.學vc,基礎在C++語言語法還有MFC庫,難點在應用,比如網路編程,資料庫編程,GDI編程,內核編程,驅動編程等等。
很多人認為學了C++語法或者看了MFC庫的使用,感覺就算精通了,其實這只是入門,只不過脫離了初學者的行列而已。vc的精髓在於自行設計,我想這也是程序設計的精髓,而不是只學會了語言語法或者幾個庫
樓主之前學過的東西是很寶貴的經驗,在學習vc的時候可以借鑒,但也只是借鑒,一定要區別對待,否則很容易走到死角。比如可以借鑒使用匯編的一些設計經驗到vc開發中。但是就像學習vc一樣,要走到向匯編那樣,需要一定的代碼經驗。但是到了匯編那個經驗水平,也只是走入了軟體設計的入門,過了這一關,還有很多關,比如穩定性開發等等。
vc因為主要用於比較低層的開發,所以需要程序員做的工作很多,往往一個小問題都要你自行設計,麻煩的同時也方便了了解開發的核心。就像使用sdk開發程序的程序員往往比使用mfc開發程序的程序員了解windows的運作原理。這還是一個經驗的總結過程。所以冰山是看見了,但是要移動冰山,還是需要愚公移山的精神才行。
5.微軟的東西穩定性和兼容性做的還是很不錯的,這點值得肯定。之所以vc6寫的程序在vc2005終有時會出現錯誤,這和開發環境有關。因為vc本身是為了專業軟體開發而寫的,體現了很多優秀的編程思想,這和C++語言無關,但是和vc系列卻有一定關系。比如vc6默認的字元串編碼是ANSI,因為那時候的軟體國際化的問題不太嚴重,而且windows系統本身就是將ansi作為默認編碼的;但是新的vc 2005默認使用的是Unicode編碼,為的就是解決字元串編碼混雜的問題,windows系統自2000之後內核都是以Unicode為核心的。還有vc的預編譯頭技術,這項技術本身是為了提高編譯效率的,因為C++語法的解析難度比較大,不像pascal等,編譯速度很慢,一些大型程序的編譯都是以小時計,有的甚至是按天算。還有vc6中對C標准庫沒有什麼大的修改,但是vc 2005認為printf等函數不安全,會加入安全警告等,這些都是針對軟體開發引入的。對於初學者,確實會引起混亂。這些時候,重要的其實就是,迎難而上,發現了問題,求助MSDN或者搜索引擎,一般都能找到前任的問題總結,慢慢問題就變得不是問題了。
######################################################
學習vc都有一個入門的過程,我也走過,在此分享,希望對你有所幫助^_^
推薦幾本書:
C++語言語法:
C++入門經典(通俗易懂) C++ Primer (專業全面)
MFC應用:
深入淺出MFC 精通MFC VC++深入詳解 等
win32平台開發:
windows程序設計 windows核心編程 等
E. SDK的作用和定義
SDK(Software Development Kit, 即軟體開發工具包 )一般是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、操作系統等建立應用軟體的開發工具的集合。
軟體工程師通常從目標系統開發者那裡獲得軟體開發包。為了鼓勵開發者使用其系統或者語言,許多SDK是免費提供的。SDK經常可以直接從互聯網下載。有時也被作為營銷手段。例如,甲產品或許會免費提供構件SDK以鼓勵人們使用它,從而會吸引更多人由於能免費為其編程而購買其構件。
SDK可能附帶了使其不能在不兼容的許可證下開發軟體的許可證。例如一個專有的SDK可能與自由軟體開發抵觸。而GPL能使SDK與專有軟體開發近乎不兼容。LGPL下的SDK則沒有這個問題。
(5)sdk編譯技術擴展閱讀:
SDK可以採用一種或多種應用程序編程介面(API)的簡單實現形式,以設備庫的形式與特定的編程語言介面,或者它可能與硬體專用工具一樣復雜可以與特定的嵌入式系統通信。常用工具包括調試工具和其他實用程序,通常在集成開發環境(IDE)中提供。SDK還可能包含示例代碼和技術說明或其他支持文檔,如教程,以幫助澄清主要參考資料所提出的要點。
SDK通常包含許可證,這些許可證使它們不適合構建旨在根據不兼容許可證開發的軟體。例如,專有SDK通常與自由軟體開發不兼容,而GPL許可的SDK可能與專有軟體開發不兼容,所有這些都特別是出於法律原因。但是,根據GNU寬通用公共許可證(LGPL)構建的SDK通常對於專有開發是安全的。
F. SDK和JDK一樣嗎
JDK:是java運行編譯必備的組件,裡麵包含了基礎的類方法變數等等,可以看作java開發的基礎包。
SDK:是android運行編譯必備組件,同樣包含了一些android特有的基礎包和一些工具,眾所周知,android是基於java語言的,在其基礎上進行了拓展,所以開發安卓既需要jdk ,又需要sdk。
G. SDK是什麼什麼是SDK
SDK的外語全稱:Software Development Kit,中文為:軟體開發工具包,一般都是一些軟體工程師為特定的軟體包、軟體框架、硬體平台、操作系統等建立應用軟體時的開發工具的集合。
通俗一點的理解,是指由第三方服務商提供的實現軟體產品某項功能的工具包。一般以集合kpi和文檔、範例、工具的形式出現
通常SDK是由專業性質的公司提供專業服務的集合,比如提供安卓開發工具、或者基於硬體開發的服務等。也有針對某項軟體功能的SDK,如推送技術、圖像識別技術、移動支付技術等,同時資源優勢類的公司也提供資源共享的SDK,如一些廣告SDK提供盈利渠道,分發SDK提供產品下載渠道。
隨著國內互聯網環境的大發展,大部分的SDK都是免費的 但已經有一部分功能性SDK已經被當做一個產品來運營,這依賴於人們開發互聯網產品理念的變化和雲計算技術的發展。開發者不再需要對產品每個功能進行開發,選擇合適、穩定的SDK服務並花費很少的精力即可在產品中集成某項功能。
(7)sdk編譯技術擴展閱讀
一般而言SDK即開發 Windows 平台下的應用程序所使用的 SDK。它可以簡單的為某個程序設計語言提供應用程序介面 API 的一些文件,但也可能包括能與某種嵌入式系統通訊的復雜的硬體。
一般的工具包括用於調試和其他用途的實用工具。SDK 還經常包括示例代碼、支持性的技術註解或者其他的為基本參考資料澄清疑點的支持文檔。
為了鼓勵開發者使用其系統或者語言,許多 SDK 是免費提供的。軟體工程師通常從目標系統開發者那裡獲得軟體開發包,也可以直接從互聯網下載,有時也被作為營銷手段。例如,營銷公司會免費提供構建SDK 以鼓勵人們使用它,從而會吸引更多人由於能免費為其編程而購買其構件。
SDK 可能附帶了使其不能在不兼容的許可證下開發軟體的許可證。例如產品供應商提供一個專有的 SDK 可能與自由軟體開發抵觸。GPL 能使 SDK 與專有軟體開發近乎不兼容。LGPL 下的 SDK 則沒有這個問題。
H. android sdk多個版本 編譯用哪個
永遠只用最新的SDK版本,這是Google官方強烈建議的。開發者的app能運行的Android版本不是由SDK決定的,是由每一個項目的minSDK決定的。SDK都是向下兼容的。SDK在不斷改進中,新的SDK會提供更強大開發工具,而且用4.0的SDK編譯的2.1的apk的執行效率會比用2.1的SDK編譯的更高。
至於每個app應該用什麼minSDK ,應該根據應用具體的API來,如果app沒有用到1.6以上SDK新提供的API,那麼用1.6會在提供相同體驗下反而會比2.1兼容更多機型.
附谷歌原版建議:
In order to provide the best user experience on the latest devices, we recommend that you use the latest platform version as your build target. You'll still be able to run your app on older versions, but you must build against the latest version in order to use new features when running on devices with the latest version of Android.To get started, download the latest Android version, plus the lowest version you plan to support (we recommend Android 2.2 for your lowest version).
I. java中的jdk,sdk,mtk到底都是干什麼的啊
JDK(Java Development Kit)是Sun 開發的產品,是整個Java的核心,包括了Java運行環境,Java工具和Java基礎的類庫。
SDK(Software Development Kit, 即軟體開發工具包 )一般是一些被軟體工程師用於為特定的軟體包、軟體框架、硬體平台、操作系統等建立應用軟體的開發工具的集合。
MTK是聯發科的簡稱縮寫,一般用於手機晶元,MTK平台就是指手機主板上的幾個核心晶元用的是聯發科的。