李 鑫
(石家莊職業(yè)技術(shù)學(xué)院 電氣與電子工程系, 河北 石家莊 050081)
?
基于Linux的Andriod手機(jī)檢測(cè)軟件的設(shè)計(jì)與實(shí)現(xiàn)
李鑫
(石家莊職業(yè)技術(shù)學(xué)院 電氣與電子工程系, 河北 石家莊050081)
摘要:使用最為流行的C/S模式,采用+Bmob開源數(shù)據(jù)庫(kù),設(shè)計(jì)了一款手機(jī)檢測(cè)軟件.為防止出現(xiàn)數(shù)據(jù)篡改問題,使用proc系統(tǒng)進(jìn)行硬件信息檢測(cè).它具有首頁(yè)面、加速和系統(tǒng)檢測(cè)、添加測(cè)評(píng)信息、讀取手機(jī)硬件信息等功能.
關(guān)鍵詞:Linux;Andriod;proc系統(tǒng);Java
隨著我國(guó)經(jīng)濟(jì)持續(xù)穩(wěn)定的增長(zhǎng)和移動(dòng)通信服務(wù)的發(fā)展,移動(dòng)通信市場(chǎng)增長(zhǎng)迅速,智能手機(jī)日漸普及,人們對(duì)手機(jī)的要求也越來越高.有的手機(jī)生產(chǎn)廠家為了搶占市場(chǎng),在手機(jī)推出時(shí)就存在虛標(biāo)硬件參數(shù)及蒙騙消費(fèi)者的行為.為此,市場(chǎng)亟需一款能夠檢測(cè)與手機(jī)相關(guān)的所有信息(軟件和硬件),特別是cpu、內(nèi)存、攝像頭、MAC地址等,且不存在信息被篡改可能的軟件.如果消費(fèi)者擁有這種專業(yè)而易用的檢測(cè)軟件,就能夠?qū)κ謾C(jī)的配置一目了然.在這種情況下,筆者設(shè)計(jì)了一款基于Linux的Andriod手機(jī)檢測(cè)軟件,以滿足消費(fèi)者的需求.
1手機(jī)檢測(cè)軟件的整體設(shè)計(jì)思想
本手機(jī)檢測(cè)軟件使用市面最流行的C/S模式進(jìn)行開發(fā).客戶端與服務(wù)器端的通信使用xmpp協(xié)議,其中,客戶端使用smack包,服務(wù)器端采用openfire開源系統(tǒng).通過客戶端對(duì)通信協(xié)議及過程進(jìn)行監(jiān)聽、適配和服務(wù).使用IfoList中的監(jiān)聽器檢測(cè)通信中的活動(dòng)值,每個(gè)活動(dòng)值都在配置文件(mactiv.xml)中顯示,界面的顯示標(biāo)準(zhǔn)由對(duì)應(yīng)的配置文件設(shè)定.
為防止出現(xiàn)數(shù)據(jù)篡改問題,使用proc系統(tǒng)進(jìn)行硬件信息檢測(cè).Linux內(nèi)核提供了一種通過proc文件系統(tǒng)訪問內(nèi)部數(shù)據(jù)結(jié)構(gòu)、改變內(nèi)核設(shè)置的機(jī)制.Proc文件系統(tǒng)是Linux系統(tǒng)中的一個(gè)虛擬文件系統(tǒng),其下的文件并不真實(shí)存在,只虛擬存在于系統(tǒng)內(nèi)存中,因此并不占用外存空間[1].很多技術(shù)文檔也將其稱為偽文件系統(tǒng).它以文件系統(tǒng)的方式為訪問系統(tǒng)內(nèi)核數(shù)據(jù)的操作提供接口[2].用戶和軟件程序可以通過proc得到系統(tǒng)的信息,并可以改變內(nèi)核的某些參數(shù).由于系統(tǒng)的信息(如進(jìn)程)是動(dòng)態(tài)改變的,所以用戶或軟件程序讀取proc文件時(shí),是動(dòng)態(tài)從系統(tǒng)內(nèi)核中讀出所需信息并提交的[3].
使用Java語(yǔ)言調(diào)用Linux中的命令編寫shell腳本是將Android手機(jī)與Linux命令連接起來的關(guān)鍵[4].通常情況下,借助Java語(yǔ)言調(diào)用shell腳本需要使用process類.process類提供進(jìn)程I/O接口、執(zhí)行接口、中斷接口、等待接口及檢查接口的方法.當(dāng)檢測(cè)功能需要測(cè)定開發(fā)環(huán)境時(shí),使用getRuntime()檢測(cè)Java虛擬機(jī)的運(yùn)行環(huán)境,使用exec()設(shè)置需要執(zhí)行的命令.
2手機(jī)檢測(cè)軟件的數(shù)據(jù)庫(kù)設(shè)計(jì)
本軟件采用+Bmob開源數(shù)據(jù)庫(kù).在整個(gè)設(shè)計(jì)過程中,使用Visio插件設(shè)計(jì)系統(tǒng)的E-R圖并導(dǎo)出關(guān)系圖,根據(jù)關(guān)系圖設(shè)計(jì)相應(yīng)的表,并確定表的結(jié)構(gòu).根據(jù)系統(tǒng)實(shí)際需求,對(duì)表進(jìn)行進(jìn)一步設(shè)計(jì),例如,添加“購(gòu)機(jī)圈評(píng)論”的存儲(chǔ)過程、“分享至”的觸發(fā)器等.在設(shè)計(jì)過程中,實(shí)時(shí)進(jìn)行測(cè)試,用真實(shí)的手機(jī)檢測(cè)數(shù)據(jù)不斷對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化,以增強(qiáng)數(shù)據(jù)庫(kù)的健壯性和可維護(hù)性.
3手機(jī)檢測(cè)軟件的功能概述
本文所設(shè)計(jì)的手機(jī)檢測(cè)軟件是Eclipse 3.5+Java語(yǔ)言的支持、Android Development Tool的插件和Android SDK 2.1版本全面結(jié)合的產(chǎn)物.它適用于Android 4.2以上并且屏幕分辨率≥480×800 的手機(jī).
(1)首頁(yè)面
首頁(yè)面展示軟件的全部功能,包括購(gòu)機(jī)圈、安卓手機(jī)工具、手機(jī)硬件信息、幫助和關(guān)于.
(2)加速、系統(tǒng)檢測(cè)
它能檢測(cè)手機(jī)中正在運(yùn)行的軟件及內(nèi)存占用情況,能檢測(cè)硬件系統(tǒng)的基本信息、CPU信息、內(nèi)存信息、分辨率信息、手機(jī)像素等;它也能關(guān)閉不必要的軟件程序,加快系統(tǒng)的運(yùn)行速度.
(3)測(cè)評(píng)信息添加
它能選擇測(cè)評(píng)手機(jī)的型號(hào),并能添加評(píng)價(jià)、可擴(kuò)展性評(píng)價(jià)、購(gòu)買商家、購(gòu)買體驗(yàn)、商家滿意度評(píng)價(jià)及其他硬件信息.其中,手機(jī)硬件信息由Linux命令讀出.
它可按機(jī)型進(jìn)行測(cè)評(píng)信息查詢,也可輸入關(guān)鍵字查詢相關(guān)信息.
它還可以將特定信息分享到QQ、微信、我的電腦等軟件中.
(4)手機(jī)硬件信息
手機(jī)硬件信息功能是本軟件的特色功能,使用命令直接調(diào)用Linux proc文件系統(tǒng),讀出Android系統(tǒng)手機(jī)的硬件參數(shù),包括處理器詳情、負(fù)載詳情、硬盤IO檢測(cè)、內(nèi)存詳情等,保證所讀參數(shù)真實(shí)可靠,且不能修改.
4手機(jī)檢測(cè)軟件的設(shè)計(jì)難點(diǎn)與特色
4.1難點(diǎn)
在Android開發(fā)環(huán)境下使用Linux內(nèi)核提供的proc文件系統(tǒng),通過命令對(duì)proc 文件系統(tǒng)進(jìn)行調(diào)用.Proc作為L(zhǎng)inux的虛擬文件系統(tǒng),既有讀取者也有寫入者,為保證軟件訪問proc系統(tǒng)時(shí)讀取信息的完整性和一致性,在讀取proc文件時(shí),調(diào)用struct proc_dir_entry->read_proc,read_proc的原型為:typedef int (read_proc_t)(char *page, char **start, off_t off, int count, int *eof, void *data). 這種實(shí)現(xiàn)方式,內(nèi)核會(huì)將內(nèi)部數(shù)據(jù)復(fù)制到page指向的緩沖區(qū)中.緩沖區(qū)最多只有一個(gè)page大小,所以當(dāng)內(nèi)部數(shù)據(jù)大于一個(gè)page時(shí),就需要第二個(gè)參數(shù)start和off的幫助.通過偏移off,可進(jìn)行多次調(diào)用.內(nèi)部數(shù)據(jù)輸出完畢時(shí),必須將eof設(shè)置為1,表示所有數(shù)據(jù)都已經(jīng)輸出.這對(duì)于內(nèi)部數(shù)據(jù)小于一個(gè)page的情況比較適合.由于可以一次輸出,內(nèi)部數(shù)據(jù)只需要用一個(gè)鎖保護(hù)就可以保證數(shù)據(jù)的一致性.[5]
4.2特色
與傳統(tǒng)硬件檢測(cè)軟件不同,該軟件使用Linux命令調(diào)用proc文件系統(tǒng)直接檢測(cè)硬件參數(shù),能夠更準(zhǔn)確地將硬件信息檢測(cè)出來,數(shù)據(jù)真實(shí)、可靠.軟件讀取信息的完整性和一致性能保證讀取信息的準(zhǔn)確度和不會(huì)被任意篡改.
5結(jié)語(yǔ)
本文設(shè)計(jì)的手機(jī)檢測(cè)軟件使用Linux命令檢測(cè)硬件信息,數(shù)據(jù)真實(shí)可靠,不能隨意篡改;操作簡(jiǎn)便,檢測(cè)結(jié)果通俗易懂,必將吸引眾多的使用者和商業(yè)投資者.
參考文獻(xiàn):
[1]孫紀(jì)坤,張小全.嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解——基于ARM[M].北京:人民郵電出版社,2007:78-79.
[2]李超.面向流媒體應(yīng)用的實(shí)時(shí)可執(zhí)行概率獲取技術(shù)研究[D].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2010.
[3]金士堯,張冬松,吳飛.超級(jí)計(jì)算機(jī)系統(tǒng)實(shí)時(shí)節(jié)能控制技術(shù)的理論與實(shí)踐研究[J].計(jì)算機(jī)工程與科學(xué),2012,34(8):24-31.
[4]李亞鋒,歐文盛.ARM嵌入式Linux系統(tǒng)開發(fā)從入門到精通[M].北京:清華大學(xué)出版社,2007:112-114.
[5]楊水清,張劍,施云飛.ARM嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2007:53-54.
責(zé)任編輯:金欣
Designing and implementation of the Linux-based software for Android phone inspection
LI Xin
(Department of Electrics and Electronics, Shijiazhuang Vocational Technology Institute, Shijiazhuang, Hebei 050081, China)
Abstract:An Android phone inspection software is designed by using the most popular C/S mode and +Bmob open source database. To prevent data from tampering, the proc system is applied for hardware information detection. The device has such functions as home paging, accelerated system testing, addition of evaluation information, and reading of the phone hardware information.
Key words:Linux; Android; proc system; Java
收稿日期:2015-12-07
作者簡(jiǎn)介:李鑫 (1982-),女,河北石家莊人,石家莊職業(yè)技術(shù)學(xué)院講師,碩士,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)、信息系統(tǒng)開發(fā).
文章編號(hào):1009-4873(2016)02-0034-02
中圖分類號(hào):TP311.52
文獻(xiàn)標(biāo)志碼:A