矯豐霞 宋培培
【摘要】 Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動設備。隨著Android系統(tǒng)的迅猛發(fā)展,它已經成為全球范圍內具有廣泛影響力的操作系統(tǒng)[1]。軟件包括客戶端和服務器端,屬于C/S結構??蛻舳藢崿F于Android平臺的智能手機上,完成數據輸入、信息顯示的功能。服務器端由Linux主機作為服務器,負責數據的接收、處理和回傳以及通信服務。
【關鍵字】 Android Linux 編程軟件
一、需求分析和可行性分析
1、需求分析。對基于Android系統(tǒng)的C語言手機編程軟件的功能性需求分析如下:界面設計應該簡潔明了,使用戶操作方便。程序運行的結果應有清晰明確的顯示。操作按鈕和菜單設置合理。各模塊分區(qū)明確,相互切換方便。盡可能壓縮客戶端的大小。對基于Android系統(tǒng)的C語言手機編程軟件的非功能性需求分析如下:本論文研究開發(fā)的軟件是基于Android 2.2開發(fā),適用于Android 2.2及以上版本。安全性需求是在用戶沒有得到需要的結果時系統(tǒng)會盡可能的為用戶提供有用的錯誤信息提示,使用戶可以很明確的知道錯誤是出自何處該如何處理。
2、可行性分析。技術上的可行性可以從硬件的性能要求,軟件的性能要求和開發(fā)者自身技術要求等幾個方面去考慮。在硬件平臺方面:基于Android系統(tǒng)的C語言手機編程軟件的開發(fā)環(huán)境Eclipse可以基于Windows、Linux,具有良好的跨平臺兼容性。在軟件平臺方面:Android操作系統(tǒng)已經成熟穩(wěn)定并且有大量的Android開發(fā)經驗。Android系統(tǒng)是一個開源的平臺,對Java具有良好的兼容性。Java語言是一個非常成熟的面向對象語言,它有著良好的可移植性、安全性,且支持可視化圖形界面[2]。
二、系統(tǒng)總體結構設計
2.1系統(tǒng)架構設計
基于Android系統(tǒng)的C語言手機編程軟件由客戶端和服務器組成,前臺和后臺實現分離,客戶端和服務器通過SOCKET進行通信。系統(tǒng)架構如圖1所示。
客戶端是在Android系統(tǒng)下實現用戶登錄及編寫代碼的功能,服務器是在Linux下使用GCC編譯器來編譯和運行代碼,Mysql數據庫用來存儲用戶的用戶名和密碼以及代碼和運行結果。
2.2 功能模塊設計
基于Android系統(tǒng)的C語言手機編程軟件應具有如下功能:用戶可以在注冊登錄之后進行個人設置操作,修改個人信息和登錄密碼。用戶可以編輯代碼,然后進行編譯和運行??梢詫Υa進行保存,打開已經保存過的代碼進行修改。功能模塊如圖2所示。
三、系統(tǒng)實現
客戶端包含了一個編輯框,用來進行C語言代碼的編寫,兩個按鈕實現編譯和運行,菜單欄實現新建、保存、打開、退出。保存是將編寫完成的代碼以文本形式保存在本機上。打開是通過單項選擇消息框來選擇打開已經保存的代碼。
客戶端與服務器socket連接:服務器端將端口打開,并將IP地址和傳輸所使用的協議進行分配一個套接口的描述字及其所用的資源。int server_sockfd = socket(AF_INET, SOCK_STREAM, 0)。然后使用bind()將本地地址與套接字進行捆綁,成功之后便可使用listen()來監(jiān)聽客戶端與服務器的連接情況。bind(server_sockfd, (struct sockaddr *)&server;_addr, sizeof(server_addr))。真正與客戶端連接是在accept()函數成功之后,accept(server_sockfd, (struct sockaddr *)&client;_addr,&len;)。在成功調用之后,從socket的等待連接隊列中抽取第一個連接,傳遞一個與socket同類的新的套接口并返回句柄。
數據處理:使用Linux的GNU編譯套件對數據進行處理。對于數據回傳,即將編譯和運行結果回傳到客戶端,首先要確定回傳的是哪一個文件夾,是error.txt還是sussess.txt,這里使用的是文件交換方法。選定之后,將文件寫入到buffer中,使用send回傳到socket。
四、結論
本設計主要完成的內容是基于Android的編程軟件的設計與實現。包括在客戶端編輯代碼,保存和打開代碼以及將代碼發(fā)送到服務器端進行編譯和運行并將結果返回顯示到客戶端。雖然完成了基本的功能,但語法高亮等功能沒有實現,還需不斷改進完善。
參 考 文 獻
[1] 李剛:瘋狂Android講義[M],電子工業(yè)出版社,2013.3
[2] Bruce Eckel:Java編程思想[M],機械工業(yè)出版社,2013.8