999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2019-05-22 11:18:06潘麗華王莉莉
電腦知識與技術 2019年10期

潘麗華 王莉莉

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

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

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

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

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

1 系統需求分析

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

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

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

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

1.2數據傳輸完整性和安全控制機制

由于采用無線局域網(WI-FI)技術進行數據傳輸,在數據傳輸的過程中可能出現丟包現象,因此必須提供一種保證數據完整性的機制。同時考慮到數據盜竊無線數據傳輸的可能性,傳輸的數據需要加密。也就是說,需要傳輸的數據在數據傳輸的兩端都被加密。

1.3 文件互傳

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

1.4 簡易控制

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

2 系統總體設計

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

2.1 手機端

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

各模塊的功能簡介:

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

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

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

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

l 網絡操作模塊。封裝網絡客戶端,服務器端創建功能,數據接收和發送功能。

2.2 PC機端

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

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

3 系統功能的設計與實現

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

3.1 手機端設計與實現

1)操作界面設計

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

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

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

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

3.2 各功能模塊的設計

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

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

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

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

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

2) private boolean createSvr(int listenPort)

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

3) private int sendDataPackage(DataPackage dataPackage)

該方法用于發送指定數據包。其實現方法是調用網絡輸出流的寫入方法。

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

該模塊完成數據包驗證,加密解密的功能,該模塊在DataPre類中實現。

類中定義對外接口如下:

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

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

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

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

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

3.2.3文件互傳模塊

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

1) public static boolean sendFile(String sendFileName)

該方法用于發送文件。

2) public static boolean recvFile(String recvPath)

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

3.2.4簡易控制模塊

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

class CmdCode{

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

public static final int ADJUST_VOLUMN=1;//聲音調節命令

...//其他定義 }

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

1) public static DataPackage createCtrolCmd(CmdCode cmdCode)

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

2) public static boolean sendCmd(DataPackage cmdPackage)

發送控制命令。通過網絡模塊發送createCtrolCmd封裝的命令包。

3.2.5 連接認證模塊

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

3.3 計算機端的設計與實現

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

3.3.1認證模塊

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

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

3.3.2簡易控制模塊

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

1) public static boolean sendCmdToJni(String cmd);

根據收到的命令參數cmd,在jni模式下調用動態鏈接庫中的控制功能。

3.3.3實際控制操作實現模塊

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

1)音量控制

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

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

2) 鍵盤控制

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

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

通過使用這個API函數即可實現鍵盤控制功能。

3) 關機

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

4 結束語

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

參考文獻:

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

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

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

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

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

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

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

【通聯編輯:唐一東】

主站蜘蛛池模板: 日本午夜精品一本在线观看 | 日韩欧美视频第一区在线观看| 青草午夜精品视频在线观看| 91免费国产在线观看尤物| 国产精品13页| 国产精品开放后亚洲| 午夜福利视频一区| 在线中文字幕网| 91原创视频在线| 国产精品女熟高潮视频| 国产精品免费久久久久影院无码| 久久青草免费91线频观看不卡| 国产男女免费视频| 老熟妇喷水一区二区三区| 亚洲成人网在线观看| 嫩草在线视频| 久久香蕉国产线| 国产成人av一区二区三区| 国产手机在线小视频免费观看| 久久久四虎成人永久免费网站| 亚洲一区波多野结衣二区三区| 人妻一本久道久久综合久久鬼色| 亚洲第一视频免费在线| 国产精品无码AV片在线观看播放| 欧美日韩免费在线视频| 青青网在线国产| 国产精品污污在线观看网站| 亚洲天堂精品视频| 國產尤物AV尤物在線觀看| 国产精品久久久久鬼色| 精品国产一区二区三区在线观看| 国产精品自在在线午夜区app| 欧洲日本亚洲中文字幕| 国产福利小视频在线播放观看| 大学生久久香蕉国产线观看| 精品视频一区二区三区在线播| 国产精品亚洲一区二区三区在线观看| 亚洲天堂在线免费| 91九色视频网| 鲁鲁鲁爽爽爽在线视频观看 | 久久精品国产一区二区小说| 欧美无专区| 国产小视频在线高清播放| 亚洲乱码精品久久久久..| 国产精品欧美日本韩免费一区二区三区不卡 | 免费久久一级欧美特大黄| 成人亚洲天堂| 国产91蝌蚪窝| 激情国产精品一区| 无码内射在线| 呦女亚洲一区精品| 久99久热只有精品国产15| 国产精品任我爽爆在线播放6080 | 日韩无码白| 女人18毛片一级毛片在线 | 手机永久AV在线播放| 精品国产香蕉在线播出| 国产女人18毛片水真多1| 国产在线视频导航| 午夜视频日本| 人妻熟妇日韩AV在线播放| 日韩福利视频导航| 成人亚洲视频| 亚洲日本中文字幕天堂网| 极品国产在线| 小说 亚洲 无码 精品| 亚洲色图欧美在线| 国产精品三区四区| 玖玖精品视频在线观看| 高清码无在线看| 国产在线高清一级毛片| 国产综合欧美| 波多野结衣的av一区二区三区| 国产美女无遮挡免费视频网站| 亚洲视频欧美不卡| 香蕉视频在线观看www| 欧美精品亚洲精品日韩专区va| 国产精品久线在线观看| 亚洲精品国产成人7777| 国产精品99在线观看| 久久久精品国产SM调教网站| 97在线视频免费观看|