• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于android平臺的手機遠程文件管理和控制系統(tǒng)研究

      2019-05-22 11:18:06潘麗華王莉莉
      電腦知識與技術 2019年10期
      關鍵詞:Android平臺遠程控制

      潘麗華 王莉莉

      摘要:該文介紹了使用無線局域網(wǎng)和SOCKET套接字技術,利用 JAVA( Eclipse Android SDK平臺)和 C++( Visual Studio2010平臺),完成了Android手機與 Windows平臺之間的文件互傳、文件瀏覽,Android手機遠程控制計算機的鍵盤輸入、音量控制、遠程關機等功能的實現(xiàn)。

      關鍵詞:Android平臺;遠程控制;文件傳輸

      中圖分類號:TP311 文獻標識碼:A

      文章編號:1009-3044(2019)10-0065-03

      開放科學(資源服務)標識碼(OSID):

      1 系統(tǒng)需求分析

      系統(tǒng)使用C/S結構并使用TCP協(xié)議進行通信。Android手機作為客戶端,電腦作為服務器。手機端采用Java語言在Eclipse平臺上進行開發(fā)。計算機端控制部分在Visual Studio 2010上使用C ++語言進行開發(fā),其余部分也使用Java實現(xiàn)。

      該軟件主要完成Android手機與計算機之間文件互傳、文件瀏覽、對計算機進行簡易控制。軟件在開發(fā)時應考慮界面簡潔、操作簡單,同時要使數(shù)據(jù)傳輸效率高、保證數(shù)據(jù)傳輸?shù)耐暾?、安全性。綜合以上特征,對本系統(tǒng)的具體要求如下。

      1.1 手機連接計算機的認證機制

      計算機端的服務程序在某個端口監(jiān)聽,等待手機的連接,手機連接時,通過認證后才能完成后續(xù)操作。在手機端應保存認證信息,用戶只需在第一連接時需要提供認證信息,在以后的使用過程中手機端程序會讀取認證信息自動完成認證過程。

      1.2數(shù)據(jù)傳輸完整性和安全控制機制

      由于采用無線局域網(wǎng)(WI-FI)技術進行數(shù)據(jù)傳輸,在數(shù)據(jù)傳輸?shù)倪^程中可能出現(xiàn)丟包現(xiàn)象,因此必須提供一種保證數(shù)據(jù)完整性的機制。同時考慮到數(shù)據(jù)盜竊無線數(shù)據(jù)傳輸?shù)目赡苄?,傳輸?shù)臄?shù)據(jù)需要加密。也就是說,需要傳輸?shù)臄?shù)據(jù)在數(shù)據(jù)傳輸?shù)膬啥硕急患用堋?/p>

      1.3 文件互傳

      在手機端提供一個瀏覽手機中文件的界面即文件瀏覽功能,同時在Android手機端中提供一個瀏覽所連接的計算機硬盤中文件的界面。用戶在瀏覽手機中文件時,提供一個長按菜單( ContextMenu,即上下文菜單)供用戶選擇“復制”“剪切”等操作,當用戶按下“復制”后,切換到瀏覽計算機文件界面,按下“粘貼”即完成手機文件到計算機的傳輸。計算機中文件到手機的傳輸與此類似。

      1.4 簡易控制

      控制功能包括控制計算機的鍵盤輸入、音量控制、關機操作。

      2 系統(tǒng)總體設計

      根據(jù)需求分析,該系統(tǒng)分為兩大部分。第一部分是計算機的服務器端(以下簡稱計算機端)。第二部分是Android手機客戶端(以下簡稱移動終端)。這兩部分從功能模塊上來分析都是相對的,即手機端的每一個操作都將作為一個請求發(fā)送到計算機端,計算機端對該請求作出響應。下面具體說明兩大部分的模塊劃分。

      2.1 手機端

      根據(jù)需求分析,將其分為連接認證模塊,簡單控制模塊,文件傳輸模塊,數(shù)據(jù)驗證加密解密模塊,網(wǎng)絡操作模塊五個模塊。

      各模塊的功能簡介:

      l 連接認證模塊。為移動終端提供安全的身份驗證機制以連接到計算機。

      l 簡易控制模塊。封裝控制所有的控制命令,供用戶界面(Activity)調用。

      l 文件互傳模塊。封裝文件發(fā)送和接收的函數(shù),供用戶界面調用。

      l 數(shù)據(jù)驗證加密解密模塊。封裝CRC32編碼解碼函數(shù),封裝DES(Data Encryption Standard)加密算法。

      l 網(wǎng)絡操作模塊。封裝網(wǎng)絡客戶端,服務器端創(chuàng)建功能,數(shù)據(jù)接收和發(fā)送功能。

      2.2 PC機端

      與手機端對應的分為五大模塊。因為具體實現(xiàn)控制的代碼是使用C++編寫的,故比手機端多出一個C++實現(xiàn)控制操作模塊。實際控制模塊中封裝了音量控制、鍵盤、關機的具體實現(xiàn)。

      文件傳輸模塊,數(shù)據(jù)驗證解密模塊和網(wǎng)絡操作封裝模塊可以在移動電話終端和計算機終端之間共享。如此劃分模塊能一定程度上使整個系統(tǒng)實現(xiàn)高內聚、低耦合。系統(tǒng)總體架構如圖1所示。

      3 系統(tǒng)功能的設計與實現(xiàn)

      該系統(tǒng)的實現(xiàn)包括移動終端程序和計算機終端程序兩部分。計算機充當服務器,手機充當客戶端。采用無線局域網(wǎng)WIFI技術,實現(xiàn)JAVA SOCKET編程通信。

      3.1 手機端設計與實現(xiàn)

      1)操作界面設計

      操作界面是人機交互的接口,在Android中是通過Activity來承載操作界面,其功能類似于Windows操作系統(tǒng)的窗口。

      手機端的界面包括手機文件瀏覽界面、計算機文件瀏覽界面、手機控制計算機界面??紤]到手機文件瀏覽界面和計算機文件瀏覽界面除了顯示的內容不同之外,其顯示方式、操作菜單等都一樣。因此可以使用Fragment來實現(xiàn)共用一個界面,通過設計兩個RadioButton按鈕來實現(xiàn)界面的切換。在MainActivity中動態(tài)的加載兩個Fragment來顯示手機文件瀏覽界面、計算機文件瀏覽界面。MainActivity的界面定義在main.xml中,根節(jié)點采用LinearLayout(線性)布局,在其內部定義一個FrameLayout和一個包裹兩個RadioButton的RadioGruop構成。FrameLayout作為顯示文件的區(qū)域,RadioButton用來切換界面。

      由于 MainActivity要動態(tài)加載兩個 Fragment,因此使其繼承 FragmentActivity,在其中定義一個成員變量 List[Fragment] fragments用來存放各個兩個可切換界面即手機文件瀏覽、計算機文件瀏覽界面。在MainActivity創(chuàng)建時完成這兩個Fragment類實例的創(chuàng)建和初始化。

      程序在模擬器上運行的初始界面如圖2所示。

      3.2 各功能模塊的設計

      3.2.1網(wǎng)絡操作模塊(手機,電腦共享模塊)

      如圖1(系統(tǒng)總體架構圖)所示,該模塊處于整個系統(tǒng)的最底層,為上層模塊提供了基礎的網(wǎng)絡傳輸服務,實際上該模塊是對 Java的網(wǎng)絡操作類進行再次封裝。該模塊在NetUtil類中實現(xiàn)。

      首先在DataPackage類中定義數(shù)據(jù)包結構,每次通過網(wǎng)絡發(fā)送接收的數(shù)據(jù)都將用該結構來存儲。TCP協(xié)議是流式協(xié)議,發(fā)送端不管是一次發(fā)送還是多次發(fā)送,對于接收端來說都是一樣的,因此,有必要定義一個數(shù)據(jù)包單位來指定每次發(fā)送數(shù)據(jù)的大小。接收端會檢查結構中的dataLength字段,根據(jù)該字段來確定將接收多長的數(shù)據(jù)。類中定義對外接口如下:

      1) public boolean connectSvr(String svrIP,int svrPort)

      該方法用于連接服務端,在連接完成后創(chuàng)建一個線程用于接收數(shù)據(jù)。同時在這個接收數(shù)據(jù)的線程中調用一個方法recvDataPackage,只要在NetUtil的子類中重寫該抽象方法,當網(wǎng)絡中有數(shù)據(jù)到達端口時將回調該方法。

      2) private boolean createSvr(int listenPort)

      該方法用于創(chuàng)建一個服務端并監(jiān)聽端口。在循環(huán)結構中,它會持續(xù)檢測是否存在連接,并在存在連接時創(chuàng)建一個線程函數(shù)來處理連接。在這個線程函數(shù)中調用一個方法doSomething,其子類只需重寫該方法即可處理有連接到來時的所有實現(xiàn)。該過程與connctSvr方法類似,都是只在該類中定義好處理網(wǎng)絡連接、數(shù)據(jù)到來事件的回調接口,在子類中實現(xiàn)具體的處理。

      3) private int sendDataPackage(DataPackage dataPackage)

      該方法用于發(fā)送指定數(shù)據(jù)包。其實現(xiàn)方法是調用網(wǎng)絡輸出流的寫入方法。

      3.2.2數(shù)據(jù)驗證加密解密模塊(移動終端,計算機端通用模塊)

      該模塊完成數(shù)據(jù)包驗證,加密解密的功能,該模塊在DataPre類中實現(xiàn)。

      類中定義對外接口如下:

      public byte[] codeValidate(byte[] data);對數(shù)據(jù)包進行驗證編碼。

      public boolean decodeValidate(byte[] data);對接收的數(shù)據(jù)完成驗證。

      public byte[] encrypt(byte[] data);完成數(shù)據(jù)包的加密

      public byte[] decrypt(byte[] data);完成數(shù)據(jù)包的解密

      其中驗證數(shù)據(jù)采用的CRC32編碼和解碼,在java提供的工具類java.util.zip.CRC32能實現(xiàn)CRC32編碼解碼的方法。每次數(shù)據(jù)的接收都檢測數(shù)據(jù)包的檢驗碼,如果出錯則通過網(wǎng)絡模塊發(fā)送命令通知發(fā)送端重發(fā)數(shù)據(jù)。加密解密采用DES加密算法。DES加密解密算法的實現(xiàn)可以借助于java.secrity包、javax.crypto包內提供的類來實現(xiàn)。

      3.2.3文件互傳模塊

      該模塊完成文件的發(fā)送、接收,該模塊在FileUtil類中實現(xiàn)。FileUtil類繼承自NetUtil,借助NetUtil類提供的網(wǎng)絡發(fā)送、接收函數(shù)來實現(xiàn)文件的傳輸。同時在類中實例化了一個DataPre類,用于數(shù)據(jù)驗證和加密解密。類中定義對外接口如下:

      1) public static boolean sendFile(String sendFileName)

      該方法用于發(fā)送文件。

      2) public static boolean recvFile(String recvPath)

      該方法用于文件的接收,其接收過程與發(fā)送過程是保持同步的,發(fā)送函數(shù)先發(fā)送文件的 md5編碼,接收函數(shù)相應的接收該編碼,并作為檢驗文件是否接收完成的標志,在傳輸完成后,在通過 md5編碼又可以檢測文件的完整性。因此,在發(fā)送文件的過程中,使用了兩套方法來確保數(shù)據(jù)的完整性。

      3.2.4簡易控制模塊

      該模塊完成移動終端控制和控制命令的生成和傳輸。該模塊根據(jù)用戶在用戶界面上的操作生成不同的控制命令,然后調用網(wǎng)絡模塊中的方法將命令發(fā)送給計算機端。該模塊在ControlUtil類中實現(xiàn),該類繼承了NetUtil類。首先要定一個包含所有操作命令的數(shù)據(jù)結構CmdCode,定義如下:

      class CmdCode{

      public static final int SHUTDOWN_COMPUTER=0;//關機命令

      public static final int ADJUST_VOLUMN=1;//聲音調節(jié)命令

      ...//其他定義 }

      該模塊中定義的對外接口如下:

      1) public static DataPackage createCtrolCmd(CmdCode cmdCode)

      生成控制命令。如當用戶在界面上按下關機按鈕時,調用該方法將生成一個控制關機的數(shù)據(jù)包。調用方式如,createCtrolCmd(cmdCode),在cmdCode中包含了具體的命令信息,該函數(shù)將其封裝為數(shù)據(jù)包。

      2) public static boolean sendCmd(DataPackage cmdPackage)

      發(fā)送控制命令。通過網(wǎng)絡模塊發(fā)送createCtrolCmd封裝的命令包。

      3.2.5 連接認證模塊

      該模塊完成連接計時算機的認證。其實現(xiàn)在AuthHelpCli類中,該類同樣是繼承自NetUtil類。該類中對外提供一個方法:boolean sendAuthInfo(String userName, String psdMd5);即將用戶名和進行了md5加密算法的密碼發(fā)送給計算機端,如果計算機認證通過則返回真,否則返回假。通過身份驗證后,您可以瀏覽計算機上的文件并在界面上控制計算機。

      3.3 計算機端的設計與實現(xiàn)

      由于移動終端和計算機共有三個模塊(網(wǎng)絡操作模塊,數(shù)據(jù)驗證加密解密模塊和文件傳輸模塊),因此,只需要設計連接認證模塊,簡單控制模塊和C ++開發(fā)的實際控制命令實現(xiàn)模塊。其中,使用C++語言在Visual Studio平臺上實現(xiàn)的動態(tài)鏈接庫是實現(xiàn)手機控制計算機的關鍵。

      3.3.1認證模塊

      該模塊完成對手機連接請求的認證,需要手機提供正確的用戶名、密碼。如果認證失敗將斷開連接。該模塊在AuthHelpSvr類中實現(xiàn),AuthHelpSvr繼承自NetUtil類,在該模塊中只實現(xiàn)了一個方法:

      public static boolean checkLogin(String userName, String password);

      3.3.2簡易控制模塊

      解析手機發(fā)出的控制命令,然后調用實際的控制功能。在該模塊中實現(xiàn)了一個方法:

      1) public static boolean sendCmdToJni(String cmd);

      根據(jù)收到的命令參數(shù)cmd,在jni模式下調用動態(tài)鏈接庫中的控制功能。

      3.3.3實際控制操作實現(xiàn)模塊

      該模塊是完成控制功能的核心。該模塊使用C++語言調用Win32 API實現(xiàn)。下面介紹其實現(xiàn)。

      1)音量控制

      在Windows API中提供了可以控制音量的接口函數(shù)。使用auxGetNumDevs()函數(shù)獲取系統(tǒng)安裝的聲卡數(shù)量。如果返回0,則表示當前系統(tǒng)中沒有聲卡或發(fā)生錯誤??梢酝ㄟ^使用 auxGetVolum(UINT uDeviceID, LPWORD lpdwVolumn)函數(shù)獲取音量。通過auxSetVolumn(UINT uDeviceID, DWORD dwVolumn)來設置音量。

      據(jù)此,bool setVolumn(int volumn)函數(shù)可以封裝在模塊中,volume是卷參數(shù),取值范圍是0-100,int getVolumn()取得卷,返回卷值。

      2) 鍵盤控制

      在Windows API中提供一個控制鍵盤的函數(shù)keybd_event。其函數(shù)原型為:

      VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo);

      通過使用這個API函數(shù)即可實現(xiàn)鍵盤控制功能。

      3) 關機

      Windows提供了一個關閉,注銷和重新啟動ExitWindowsEx函數(shù)的API。

      4 結束語

      本文根據(jù)實際應用需要,設計了一款簡易、高效的手機文件管理系統(tǒng)。該程序能使用戶方便地使用手機瀏覽并拷貝計算機中的文件,將手機文件拷貝到計算機中,完成簡單的控制。運用Android技術解決了開發(fā)過程中遇到的各種技術難題,也為其他基于Android系統(tǒng)平臺的開發(fā)提供了借鑒和參考。

      參考文獻:

      [1] 李寧.Android開發(fā)權威指南[M].北京:人民郵電出版社,2011(9):239-240.

      [2] 陳璟,陳平華,李文亮.Android內核分析[J].現(xiàn)代計算機:專業(yè)版,2009(11).

      [3] 楊豐盛.Android應用開發(fā)揭秘[M].北京:機械工業(yè)出版社,2010:49-97.

      [4] 鄧凡平.深入理解Android卷I[M].北京:機械工業(yè)出版社,2011.

      [5] 熊剛.基于Android的智能手機的設計與實現(xiàn)[D]. 武漢:武漢理工大學.2010.

      [6] 羅偉.基于Android平臺的即時通訊系統(tǒng)的研究與實現(xiàn)[D].長沙:湖南師范大學,2009.

      [7] 鐘明林.基于Android智能手機平臺方案[D].濟南:山東大學,2010.

      【通聯(lián)編輯:唐一東】

      猜你喜歡
      Android平臺遠程控制
      基于Android平臺軟件開發(fā)技術研究
      科技資訊(2016年25期)2016-12-27 18:46:40
      水冷發(fā)射機冷卻系統(tǒng)故障分析及解決方案
      基于Android平臺的人臉識別系統(tǒng)設計與實現(xiàn)
      一種基于單片機技術的家用電器遠程控制系統(tǒng)的設計
      基于物聯(lián)網(wǎng)的遠程紅外控制器
      基于Arduino UNO的智能插座設計
      基于Android平臺的健康醫(yī)療APP設計與開發(fā)
      鹽城地區(qū)設計項目與課堂遠程互動的方式方法研究
      藝術科技(2016年10期)2016-12-14 00:11:02
      基于GSM的遠程控制系統(tǒng)
      Android手機主題設計 
      軟件導刊(2016年9期)2016-11-07 18:34:46
      九江市| 灌阳县| 林西县| 高淳县| 洛扎县| 通州市| 永康市| 肥城市| 呈贡县| 株洲市| 津南区| 临桂县| 印江| 格尔木市| 承德县| 启东市| 璧山县| 福州市| 台前县| 嘉义市| 贡觉县| 虞城县| 库伦旗| 盐津县| 宜兰县| 读书| 黄平县| 手游| 和林格尔县| 北票市| 上林县| 资兴市| 应用必备| 故城县| 玉溪市| 广西| 乌恰县| 无棣县| 新巴尔虎左旗| 万安县| 西吉县|