


摘? 要:文章基于Android實時信息采集與傳輸問題,給出系統(tǒng)開發(fā)中采用的關鍵技術,程序開發(fā)采用Java語言設計,采用Android手機,以Linux內核軟件開發(fā)平臺為基礎進行詳細的軟件設計,對系統(tǒng)核心功能進行詳細的劃分并對其功能做了詳細設計,并給出了一些主要功能模型設計與實現(xiàn),經(jīng)測試表明本設計基本可以完成數(shù)據(jù)采集任務。
關鍵詞:模型設計;視頻采集;視頻傳輸;Android
中圖分類號:TP311? ? ? ?文獻標識碼:A 文章編號:2096-4706(2020)02-0025-03
Abstract:Based on the problem of Android real-time information collection and transmission,this paper presents the key technologies used in the system development. The program development uses Java language design,Android mobile phone,and Linux kernel software development platform as the basis for detailed software design. The core functions of the system are divided in detail and its functions are designed in detail,and some main function model settings are given the test shows that the design can basically complete the task of data acquisition.
Keywords:model design;video capture;video transmission;Android
0? 引? 言
本文基于陜西工業(yè)職業(yè)技術學院校內科研項目為背景,針對視頻數(shù)據(jù)采集效率低下、性能不可靠、數(shù)據(jù)獲取不及時的現(xiàn)象,著重利用Android平臺、Socket通信與SQLite數(shù)據(jù)庫構建移動視頻采集與傳輸系統(tǒng),系統(tǒng)采用便攜式智能手機終端平臺采集視頻數(shù)據(jù),通過無線網(wǎng)絡傳輸數(shù)據(jù)來構建Android平臺。本文首先對系統(tǒng)開發(fā)所需的相關理論及關鍵技術進行了詳細的介紹;對系統(tǒng)的需求進行詳細分析,在此基礎上對系統(tǒng)的核心模塊進行設計,完成服務端用戶驗證模塊類模型設計、用戶驗證模塊的交互模型設計和視頻采集模塊模型設計,基本達到軟件項目預期的目標,為項目的開發(fā)和順利完成打下良好基礎。
1? 關鍵技術
1.1? Android應用程序的組件
應用程序的組件是Android應用程序基本組建塊,其中包含活動(Activity)、意圖(Intent)、服務(Service)、內容提供器(Content Provider)。它們是構成Android應用程序的基礎,但在某些應用程序中,只即可單獨使用,也可以有相互交互的使用。
1.2? 軟件棧
Android平臺采用了軟件棧(Software Stack),又名軟件疊層的架構,軟件棧的頂層是應用,中間是中間件,由應用框架、庫和Android Runtime組成,底層是帶有各種驅動的Linux內核。我們開發(fā)是基于底層開發(fā)設計。
1.3? SQLite數(shù)據(jù)庫技術
SQLite是一款系統(tǒng)安全類軟件,采用輕量級嵌入式數(shù)據(jù)庫引擎,支持SQL語言,并且只利用很少的內存就有很好的性能,可以把各種類型的數(shù)據(jù)保存到任何字段中,而不用關心字段聲明的數(shù)據(jù)類型。
2? 系統(tǒng)需求分析
依據(jù)軟件系統(tǒng)功能的要求,圖1為視頻采集傳輸系統(tǒng)具體的用例圖。整個系統(tǒng)由用戶端和服務端組成,服務端主要負責數(shù)據(jù)收集、與用戶端建立網(wǎng)絡連接關系、接收并解析控制命令、與服務終端串口通信傳輸控制命令。當用戶端通過用戶驗證模塊(UI)后,用戶可以發(fā)出視頻采集指令,服務端接受指令,獲取采集設備,啟動視頻采集設備,進行視頻數(shù)據(jù)采集,采集到視頻數(shù)據(jù)后經(jīng)過編解碼程序將視頻編碼,然后進入視頻傳輸模塊,把視頻數(shù)據(jù)傳輸?shù)接脩舳恕亩鴮崿F(xiàn)了視頻數(shù)據(jù)的實時傳輸。
3? 系統(tǒng)詳細設計
3.1? 服務端用戶驗證模塊類模型設計
用戶驗證模塊類圖的詳細內容見圖2,共分為三個模塊:LoginController(登錄控制器)類、ConfigManager(配置管理器)類、NetManager(用戶幫助)類。
實現(xiàn)用戶驗證是類的主要功能,整個實現(xiàn)過程為:調用類進行文件配置,得到服務端地址后再調用類向用戶發(fā)送驗證并接收反饋。類主要負責輔助整個系統(tǒng)管理一些用戶信息,以及配置文件的寫入、讀取工作等。
類會出現(xiàn)在多個系統(tǒng)模塊中,主要負責面向服務端的指令的發(fā)送與接收工作;套接字通信被封裝在其中,并采取單例模式,一些例如傳輸、登錄等的控制功能都需要它去實現(xiàn)。
身份驗證模塊用于端用戶登錄驗證的過程的主要參與者有LoginManager類、ConfigManager類和NetManager類,登錄驗證的全部過程。
類是客戶驗證功能的主要參與者。類在進行用戶信息讀取之后自行判斷用戶是否在前一次登錄中選擇了記住密碼,如果用戶選擇了記住密碼,系統(tǒng)會根據(jù)系統(tǒng)存儲的信息記錄同步用戶名和密碼,用戶就不需要再輸入。如果沒有選中,登錄頁面的用戶名和密碼的輸入框就是空白的,需要用戶輸入。用戶在點擊登錄之后,系統(tǒng)會對用戶名加上密碼的信息在信息庫里檢索,并進行驗證,由類負責。如通過驗證,頁面會跳轉至客戶界面,如未通過驗證,即使用戶成功進入系統(tǒng)界面,系統(tǒng)也會提示錯誤。
關于系統(tǒng)的安全性,客戶在登錄時填寫的信息需要做好保密工作,特別是密碼。系統(tǒng)采用了MD5方法對密碼進行加密,這樣即使客戶在登錄頁面記住頁碼也是不存在安全問題的。
3.2? 視頻采集模塊模型設計
在視頻采集模塊中,VideoCallback類構成了軟件的主要部分,VideoReader(視頻數(shù)據(jù)讀取)類按照Android系統(tǒng)平臺提供的標準類型接口NetManager編寫,用于捕獲視頻數(shù)據(jù);對于EncoderWrapper類來說,它的作用在于下層模塊的通信,然后對JNI接口進行封裝;組織和控制作用由Main類負責。詳細內容可見圖3。
作為采集模塊的主界面,Main類能夠對系統(tǒng)進行管理,對采集的過程進行控制,并把操作的接口分給用戶,這樣,用戶就能夠選擇幫助等功能。
對于VideoCallback類來說,它主要是能夠獲取視頻數(shù)據(jù)。在Android系統(tǒng)中,由于Camera框架的存在,用戶可以從回調類中派生出新類,從而對視頻數(shù)據(jù)的處理可用自定義的方法進行。對于Camera框架來說,用戶設置的回調類都會經(jīng)過它獲得的每一幀預覽,當獲取Camera捕獲的視頻數(shù)據(jù)之后,為對數(shù)據(jù)進行壓縮處理,數(shù)據(jù)都會被發(fā)往下層。
在EncoderWrapper類中,它們不僅能夠調用采用JNI技術進行調用的下層模塊接口,還能夠封裝這些模塊接口,它的組成部分有寫入方法和JNI模塊的加載,此外還包括能夠傳輸數(shù)據(jù)和命令的接口。
3.3? 視頻傳輸模塊的設計
視頻數(shù)據(jù)的傳輸是視頻采集傳輸系統(tǒng)中較為重要的部分,為了實現(xiàn)用戶的優(yōu)質體驗,去除控件加載,通過服務器OpenGLES來瀏覽服務端中采集的實時視頻。Java的socket編程己經(jīng)對網(wǎng)絡層各協(xié)議封裝得較完整。編程不需要知道太多關于不同的硬件之間相互通信的底層知識,只要學習Java的socket,就可以實現(xiàn)兩臺設備的通信。而本文需要傳輸實時流媒體的RTP數(shù)據(jù)包,無論是Java還是Android操作系統(tǒng)都對RTP協(xié)議不支持,必須自己設計一個網(wǎng)絡傳輸模塊,將數(shù)據(jù)流封裝成RTP數(shù)據(jù)包,然后傳輸?shù)骄W(wǎng)上,如圖4所示。
4? 結? 論
本文在完善軟件需求規(guī)格說明書的基礎上,對系統(tǒng)整體進行需求分析,依據(jù)需求分析確定軟件系統(tǒng)的整體結構、劃分功能模塊、確定核心模塊的實現(xiàn)與具體的代碼編寫,形成軟件系統(tǒng)的具體設計方案,將系統(tǒng)分解為服務端入口,視頻采集、視頻傳輸三個模塊,進行總系統(tǒng)的詳細設計并進行評價,對系統(tǒng)方案進行論證并作出性能效果預測,為下一步系統(tǒng)實現(xiàn)打好了基礎。
參考文獻:
[1] 朱珊珊.基于Android平臺的庫存管理系統(tǒng)設計與實現(xiàn) [D].鎮(zhèn)江:江蘇大學,2012:16-21.
[2] 王晶晶.基于計算機軟件開發(fā)的JAVA編程語言分析 [J].河南科技,2013(2):17.
[3] BUTLER M. Android. Changing the Mobile Landscap [J]. IEEE Pervasive Computing,2011 ,10(1):4-7.
作者簡介:張建平(1978.10-),男,漢族,陜西岐山人,講師,碩士,研究方向:計算機軟件。