基于android平臺(tái)的串口通信實(shí)現(xiàn)

基于android平臺(tái)的串口通信實(shí)現(xiàn)

ID:23184542

大?。?9.50 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-11-05

基于android平臺(tái)的串口通信實(shí)現(xiàn) _第1頁(yè)
基于android平臺(tái)的串口通信實(shí)現(xiàn) _第2頁(yè)
基于android平臺(tái)的串口通信實(shí)現(xiàn) _第3頁(yè)
基于android平臺(tái)的串口通信實(shí)現(xiàn) _第4頁(yè)
基于android平臺(tái)的串口通信實(shí)現(xiàn) _第5頁(yè)
資源描述:

《基于android平臺(tái)的串口通信實(shí)現(xiàn) 》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、基于A(yíng)ndroid平臺(tái)的串口通信實(shí)現(xiàn)  摘要:串口在數(shù)據(jù)通信中應(yīng)用廣泛,但AndroidSDK指定使用Java作為第三方應(yīng)用開(kāi)發(fā)語(yǔ)言,這給C語(yǔ)言實(shí)現(xiàn)串口應(yīng)用帶來(lái)了困難。雖然GoogleAndroid已經(jīng)發(fā)布了NDK(NativeDevelopmentKit,原生態(tài)開(kāi)發(fā)包),支持開(kāi)發(fā)者用C/C++語(yǔ)言開(kāi)發(fā)Android程序,但目前官方提供的技術(shù)指導(dǎo)比較簡(jiǎn)略。通過(guò)開(kāi)發(fā)一個(gè)Android下串口通信應(yīng)用實(shí)例,詳細(xì)介紹了AndroidNDK的開(kāi)發(fā)流程,幫助開(kāi)發(fā)人員快速的完成平臺(tái)搭建。  關(guān)鍵詞:Android;ND

2、K;JNI;SDK;串口  SerialmunicationBasedAndroidPlatform  JINZhi-yi,ZHANGJi  (VehicleCollege,TongjiUniversity,Shanghai201804,China)  Abstract:Serialmunicationisunication,buttheAndroidSDKusestheJavalanguageasadesignatedthird-partyapplicationdevelopment,akesitdif

3、ficulttoachieveserialapplicationsentKit)entofserialmunicationunderanAndroidplatformasanapplicationexample,articlegivesathoroughlydescriptionoftheAndroidNDKdevelopmentprocessthatcanhelpdevelopersquicklybuildplatforms.  KeyentKit的簡(jiǎn)稱(chēng)。它是一個(gè)工具集,集成了Android的交叉編譯環(huán)

4、境,并提供了一套比較方便的Makefile,可以幫助開(kāi)發(fā)者快速開(kāi)發(fā)C或是C++的動(dòng)態(tài)庫(kù),并自動(dòng)的將so動(dòng)態(tài)庫(kù)和java程序打包成apk,在A(yíng)ndroid上運(yùn)行。有兩個(gè)理由使用NDK:一是合理的重用現(xiàn)有的代碼;二是在程序中某些關(guān)鍵的部分提高執(zhí)行效率?! ndroidNDK目前作為AndroidSDK的一個(gè)附加組件提供,開(kāi)發(fā)者須先安裝AndroidSDK方可使用NDK。在WindoD的Shell環(huán)境界面,可以使用大部分Linux軟件和功能。使用它我們可以方便的在WindoacOSX(intel)、Linux

5、32/64(x86),下載后解壓即可使用。文中使用Windows版本的NDK,版本為android-ndk-r5。將它解壓到某個(gè)目錄下,文中我們將NDK安裝到D:androidandroid-ndk-r5目錄中?! ?.2安裝Cygake1.10、binutils、gcc-core、gcc4-core、gdb、pcre、pcre-devel、GNUae/usrname)的.bash_profile文件,在文件尾部加入如下代碼,  NDK=/cygdrive/d/android/android-ndk-

6、r5  exportNDK  然后重新啟動(dòng)Cygp;iscopy);  LOGD("Openingserialport%s",path_utf);  fd=open(path_utf,O_RDakefile。文件內(nèi)容如下:  LOCAL_PATH:=$(callmy-dir)  include$(CLEAR_VARS)  LOCAL_MODULE:=serial_port  LOCAL_SRC_FILES:=SerialPort.c  LOCAL_LDLIBS:=-llog  include$(BUILD

7、_SHARED_LIBRARY)  LOCAL_PATH:=$(callmy-dir)這句用來(lái)指定編譯的路徑通過(guò)調(diào)用宏my-dir獲取到當(dāng)前工作的路徑?! nclude$(CLEAR_VARS)CLEAR_VARS這個(gè)變量是編譯系統(tǒng)提供的用來(lái)指明一個(gè)GNUmakefile文件添加這句主要的目的是清理所有的LOCAL_XXX,比如LOCAL_MODULE、LOCAL_SRC_FILES等。在每個(gè)新模塊的開(kāi)始處需要添加這句?! OCAL_MODULE:=serial_port這句定義了模塊名稱(chēng),將來(lái)編譯的

8、庫(kù)或者可執(zhí)行程序就以此命名。如果編譯的是動(dòng)態(tài)庫(kù)或者靜態(tài)庫(kù),那么庫(kù)名就是libserial_port.so或者libserial_port.a。需要注意的是系統(tǒng)會(huì)在生成動(dòng)態(tài)庫(kù)或者靜態(tài)庫(kù)的時(shí)候自動(dòng)添加lib的前綴?! OCAL_SRC_FILES:=SerialPort.c是列出需要編譯的源碼文件名。這里不需要列出頭文件和被包含文件,因?yàn)榫幾g系統(tǒng)會(huì)自動(dòng)為你添加?! nclude$(BUILD_SHARED_LIBRARY)這句

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。