周軍



摘要:本文介紹了一款基于Android手機遠程控制電腦的軟件,終端設備采用的是Android系統的移動終端,利用TCP/IP協議實現移動設備和電腦端的連接。采取了客戶端/服務器端的通信模式,實現了用戶在移動終端上可以隨時控制電腦,并可以發送指令給電腦,讓電腦完成相應的功能,提高了用戶的便捷性以及對電腦的可視化操作。
關鍵詞:Android;遠程控制;通信
1引言
隨著通訊技術的快速發展,手機、平板電腦等移動數字終端設備被更多的人所喜愛。已經成為了目前人們閑暇時間娛樂的方式了。此時就需要一款能夠智能的手機來滿足人們的需要了,首先就需要一款全新的系統,Android系統是一個以Linux為基礎的開源操作系統,主要應用于手機系統的開發。結合當前計算機通訊和移動網絡的知識,對Android移動終端設備進行分析,可以開發出一款適合普通用戶所使用的一款軟件,通過WIFI無線網絡連接用戶電腦的遠程控制系統。
2基于Android平臺系統架構
Android系統的架構是分層的,從上到下依次分為四層5個部分:分別為是應用程序、應用程序框架、開發庫和Android運行時環境、Linux內核。對于這種分層架構的思想完全可以提高我們開發的效率,并且降低了錯誤的幾率。Android系統架構如圖1所示:
2.2 Android系統架構組成
該層為開發者提供了實際應用開發的過程中需要的很多功能需求,本系統所用的主要框架包括:
(1)活動管理器:實現控制的界面以及應用軟件的界面的跳轉。
(2)視圖系統:一些能被用戶察覺的組件的創建。
(3)資源管理器:主要管理應用程序里面不是主代碼的一些資源,比如調用的圖片,組件的ID等等。
(4)通知管理器:當程序調試過程中將警示消息傳遞給我們的開發人員便于系統的調試。
(5)窗口管理器:用于管理開啟的窗口程序。
2.3Android四大組件
Android應用程序是由四個組件組成的:分別為活動頁面、服務、內容提供者、廣播接收者。
在開發人員在開發Android應用程序之前,開發人員就需要深入了解Android的四大組件以及之間的聯系,Android還提供了一個工具類Intent,用戶為這四大組件之間傳遞信息,下面為我們介紹四大組件:
(1)Activity
Activity是四個組件中最常用的一個,通常活動就伴隨著一個可以被用戶直觀看到的屏幕界面。在界面上顯示的活動都繼承與Activity,因此都繼承了一些Activity的一些方法,從用戶的直觀視覺上講的話,Activity就相當于程序的一個界面并且可以回應其他窗口,但是從內部的一些邏輯來講的話,一個Activity如果想保持其狀態,那么生命周期也需要思考。
(2)Service
Service是具有長生命周期并且沒有用戶界面的一種后臺服務,簡單來說,就是剝離了界面的Activity。與Activity最明顯的就是Service運行的時候用戶會感覺不到它的存在。因為它運行在后臺,但是有一點它和Activity類似,就是當Service運行的時候不會對其它的一些用戶的界面和組件的產生任何干擾。在一般情況下,我們為了防止Service對我們的主界面產生影響,我們的開發人員都會創建一個新的獨立的新線程來進行一些耗時任務。
(3)Content Provider
Content Provider在Android中主要是對數據的存取以及共享,開發的應用中的數據可以被其他組件所共享和使用。Android中另外三種數據存儲方式是1.文件系統,2.數據庫,3.資源文件:另外Content Provider并不能直接訪問應用內部的數據庫或者數據的文件。它只是抽象的存儲訪問方法。
(4)Broadcast Receiver
Broadcast Receiver作為第四大組件,主要完成廣播接收的監聽注冊以及廣播的轉發,功能是監聽系統內部的事件的觸發。3系統需求分析
目前。Android手機接入互聯網的方式有GPRS、3G和WIFI等等,要使手機能夠與PC進行數據交互,我們要采用WIFI連接,網絡傳輸使用TCP/IP協議。Android的應用程序開的發所用到的是基于Java的一套語言。Java可以對于網絡編程提供良好的支持,與網絡相關的編程都在我們的工具包內,利用java中的網絡編程技術即socket編程,用TCP協議進行傳輸就可以實現數據之間的傳輸,最終來對PC的遠程控制。
本設計系統的主要需求如下:
(1)連接界面功能
用戶在啟動應用程序前,首先要保證PC的網絡正常連接,設置好手機的移動網絡,保證PC和手機在一個局域網中。用戶啟動應用程序后,首先出現的是連接界面。該界面主要包括查找PC,將PC返回信息顯示在界面的列表—b編輯指定PC的lP地址,包括輸入和刪除:根據連接狀態,分類顯示PC信息,顯示程序的幫助信息和退出程序。
(2)數據庫系統功能
數據庫主要是存儲管理發送廣播后PC返回的信息,包括PC的IP地址、主機名、連接狀態等。在一個家庭網絡中,可能有多臺同時運行著的PC,建立數據庫,能夠讓用戶自由選擇,方便用戶管理和遠程桌面功能:遠程桌面功能是能夠隨時對PC進行關機處理,能夠對電腦桌面進行實時截屏并且保存在本地.能夠在PC與手機之間自由傳輸所需要的文件以及資料。
4基于Android遠程控制C/S的設計
4.1系統的總體設計流程
當使用這款軟件的用戶攜帶Android智能手機打開這款我們所開發的應用程序的時候。手機端連入和PC在同一個網絡段的網絡,在手機的連接界面輸入要遠程控制的電腦的IP地址以及端口號,此時Android手機與電腦之間通過Socket通信,就可以完成兩者之間的數據交互以及其他所需要完成的功能,手機與電腦如何通信圖2所示:
4.2數據交互網絡協議
實現PC機與網絡之間的通信在移動終端網絡,開發人員首先必須要先解決如何搜索并且連接到同一個網絡中的主機,當連接到指定主機之后,采用哪種傳輸協議進行數據的傳輸。在TCP/IP這類協議。IP層主要給在這個網絡段的網絡上的每臺計算機分配一個IP地址,這些計算機就可以在這個局域網中進行通信了,并且每個IP地址都唯一的對應著Internet上的每個主機。從傳輸層的數據包傳輸IP數據報的處理請求,包到IP。通過路由轉發。選擇適當的網絡路徑。將數據報告給相應的網絡主機接口。在網絡上傳輸的方式編程,Android提供了一個特殊的API接口,用戶不需要關心網絡層是如何包裝和處理數據。本文所設計的遠程控制系統,客戶端與服務器數據通信的基礎是采用TCP協議和UDP協議。Socket有兩種通信方式:基于TCP協議的通信方式和基于UDP協議的通信方式。兩種通信方式都能完成網絡數據交互,但是發送方和接收方所使用的協議要求一致。從下圖中可以看出,應用程序中通過Socket進行網絡傳輸,在網絡層上,通過口協議,封裝處理數據,在通信信道中進行數據傳輸。在傳輸層上。可以采用TCP或者UDP。但是要求通信雙方采取的協議要一致。下圖3為Socket通信模型:
4.3服務端的研究
服務器端是Android的一個Service程序,隨著用戶開啟運行在PC上的服務器端而自動啟動,始終在后臺運行,設置好特定的端口號,監聽客戶端發送過來的請求,然后進行連接.根據客戶端發過來的不同數據,經過分析處理之后,從而完成特定功能模塊的響應,下面給出了服務器功能模塊劃分。
(1)端口監聽
端口監聽模塊的主要作用是接收客戶端發送過來的廣播,并按照要求返回服務器相關信息。android服務器對系統后臺運行綁定到特定的口。監測客戶的要求。當接收到客戶端廣播消息時。反饋消息。返回當前服務器的IP地址,主機名,連接狀態信息等等,從而進行連接。
(2)事件處理
服務器采用基于回調的事件。服務器端通過TCP傳輸協議接收客戶端發送過來的按鍵事件。通過對數據的解析,獲取事件類型。然后轉交給事件處理器。處理器將事件壓入事件棧,通過系統回調,完成此次事件的相應。以完成相應的功能。
(3)遠程桌面功能
服務器遠程桌面主要是完成電腦桌面的截屏、圖片的保存以及發送。讀取framebuffer來獲取系統顯示信息的數據,轉換成圖片文件。最后要讀寫framebuffer的內存,必須首先要打開framebuffer設備,獲取顯示設備的信息,如圖片的信息、像素的數據量等等。最后將framebuffer內存中的數據映射到用戶進程空間,轉換成我們手機能夠支持的圖片格式,發送到客戶端。
4.4客戶端的研究
客戶端主要負責發送指令給我們的服務器端讓其完成相應的功能,首先和服務器端進行連接,然后就可以在兩者之間進行數據的傳輸和一些其他的交互,在本次客戶端的結構中我們使用的當前比較流行的MVC模型,能夠將我們的客戶端更加的清晰明了。在本文中,View是連接界面、鍵盤界面、鼠標功能界面和遠程桌面界面的圖形設計。Model是指數據庫、鼠標功能模塊、鍵盤和遠程桌面功能模塊的具體代碼的實現。Controller是控制用戶界面的跳轉和完成各個功能模塊的調用。
客戶端的整個系統框架可以自上而下分為三層。最上面一層主要是實現客戶端與用戶的交互,包括用戶登錄連接服務器、發送控制指令信息、鼠標的滑動操作以及服務器截屏后所得到的圖片在客戶端的顯示。第二層是數據處理層,主要是對獲取控制指令后,提取指令有用信息,在指令發送前進行發送排序;獲取鼠標路徑,將路徑坐標按照鼠標滑動時間進行循環發送:處理服務器的返回數據的信息,比如服務器IP信息和圖片的傳輸等.這些信息將封裝在報文中發給手機的客戶端,這時候客戶端就知道了服務器的地址以及一些其他的信息,這時候我們用戶者就可以輸入服務器的IP地址來進行連接服務器端,發送相應的指令給服務器端。最下面一層是將發送數據的不同,采用不同的網絡協議,對數據進行封包發送。在客戶端系統,用戶界面和功能模塊,以簡化程序的復雜度,簡化后續程序的修改和擴展,采用MVC模式的設計思想,程序結構更直觀。
5系統測試
該系統是在PC遠程控制軟件開發的Android平臺,用戶可以使用Android手機中安裝的應用程序。通過家庭局域網上的WlFI連接到同一WlFI下的電腦。客戶端發送請求到服務器,接收服務器響應后,采取了不同的方式。從而實現手機遠程控制電腦的目的,實現用手機控制電腦的功能。本文設計的遠程控制系統的功能測試主要分為連接界面測試、主界面:實現遠程對電腦關機,對電腦截屏,文件的傳輸。
5.1連接界面測試
連接界面主要功能是輸入ip地址以及端口號搜尋同一WlFI下的PC,連接成功后進入主菜單界面,下面為詳細的服務器端和客戶端連接界面演示
5.1.1服務器端界面
5.1.2客戶端端界面
5.2主菜單界面測試
(1)實現遠程對電腦關機
點擊手機上的關機按鈕,電腦上會出現注銷提示,隨后PC自行關機。
(2)對電腦截屏
點擊截屏按鈕,能夠實時的對電腦進行截屏,在底下賦予時間,并且可以對截屏下的圖片進行保存。
(3)文件的傳輸
選擇電腦上的文件,能夠實現從PC端傳輸到安卓手機上。
6總結
Android這種開源的系統,經過多年的發展與探索,替代了以前“塞班系統”,如今作為一種主流的移動終端開發系統,其應用開發不僅僅局限于智能手機,Android與其他終端通信就是其擴展應用之一。在本次課題中充分運用了當前非常先進的計算機相關的知識,設計開發出了一款手機遠程控制軟件。能夠使用戶不在電腦旁依舊能夠對電腦進行遠程操作的功能,并且實現簡單的文件管理。
參考文獻:
[1]文軍,呂勇強.基于Android手機的遠程訪問和控制系統[J].計算機應,2011,31(02):559-561
[2]單李旺.Android操作平臺的研究與應用[D].天津:南開大學信號與信息處理專業碩士學位論文。2009.
[3]楊志偉,許輝澤.基于Android的遠程終端控制系統[J].科技信息,2011(21):512-514.
[4]江燕良.基于Android智能終端的遠程控制系統[J].電子技術應用,2012(08):129-132.
[5]李剛.Android瘋狂講義[M].北京:電子工業出版社,2011:88.