陳功鎖+溫佐承+彭志強(qiáng)
摘要:隨著移動互聯(lián)網(wǎng)的快速發(fā)展,越來越多的系統(tǒng)開始支持移動設(shè)備訪問,而傳統(tǒng)高校運(yùn)維系統(tǒng)只是單一網(wǎng)站,嚴(yán)重缺乏對移動設(shè)備的支持。通過對高校運(yùn)維系統(tǒng)的需求分析,提出一種基于安卓平臺的高校運(yùn)維系統(tǒng),并基于MVP架構(gòu)實(shí)現(xiàn)。經(jīng)相關(guān)功能測試和性能測試證明該系統(tǒng)能夠穩(wěn)定運(yùn)行且能承受較大的壓力。
關(guān)鍵詞:高校運(yùn)維系統(tǒng);安卓;MVP;Retrofit;RxJava
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)34-0078-03
Abstract: With the rapid development of mobile network, more and more systems have been supporting mobile devices. But the traditional operation and maintenance system only have web site without considering mobiles access. Analysis on operation and maintenance system, a system based on Android platform is provided. And the system is implemented on MVP architecture. After functional and performance tests, the system is proved to be correct and stable.
Key words:operation and maintenance system; android; MVP; Retrofit; RxJava
隨著移動互聯(lián)網(wǎng)的快速發(fā)展,移動設(shè)備操作的便捷性,越來越多的系統(tǒng)開始支持移動設(shè)備的訪問。而傳統(tǒng)高校運(yùn)維系統(tǒng)只是單一網(wǎng)站,操作十分不便,因此設(shè)計(jì)并實(shí)現(xiàn)基于安卓平臺的高校運(yùn)維系統(tǒng)是十分必要的。
通過對四川旅游學(xué)院網(wǎng)絡(luò)中心運(yùn)維需求的分析,設(shè)計(jì)并實(shí)現(xiàn)一種基于安卓平臺的高校運(yùn)維系統(tǒng)。師生可以通過安卓手機(jī)就可以完成工單提交,查看當(dāng)前工單處理進(jìn)度等功能,進(jìn)一步方便用戶操作,提高師生滿意度。
1 系統(tǒng)需求分析
需求分析是軟件開發(fā)生命周期的開始,其耗費(fèi)時間較多,一般占據(jù)整個生命周期中一半以上的時間。但其作用也十分關(guān)鍵,直接決定軟件產(chǎn)品的成功與否。
1.1 需求概述
越來越多的系統(tǒng)開始支持移動設(shè)備的訪問,高校運(yùn)維系統(tǒng)也不例外。通過對四川旅游學(xué)院運(yùn)維系統(tǒng)對移動設(shè)備支持的需求分析,得出主要的功能模塊有:知識庫搜索模塊、工單管理模塊、個人中心模塊、消息管理模塊以及登錄注冊模塊。
1.2 詳細(xì)功能需求
針對上述需求綜述,提出以下各模塊具體的需求:
1.2.1 登錄注冊模塊
新用戶可以通過系統(tǒng)注冊,注冊成功后,使用賬號和密碼完成登錄。
1.2.2 個人中心模塊
主要需求是:
1)用戶可以修改個人資料,包括昵稱、性別、手機(jī)號、頭像等信息;
2)查看當(dāng)前工單的處理進(jìn)度;
3)查看新建、完成等其他各種狀態(tài)的工單;
4)查看系統(tǒng)發(fā)送的消息。
1.2.3 知識庫模塊
所有已經(jīng)成功解決的工單將進(jìn)入系統(tǒng)知識庫,以便于用戶搜索。在用戶遇到新的問題的時候,首先使用系統(tǒng)提供的搜索功能,如提供的答案能夠幫助用戶解決問題,則無需生成新的工單。知識庫模塊能夠在很大的程度上提高網(wǎng)絡(luò)中心的解決效率,避免重復(fù)勞動。
1.2.4 工單管理模塊
當(dāng)用戶在日常學(xué)習(xí)生活中,遇到網(wǎng)絡(luò)或計(jì)算機(jī)等方面的問題,可以直接使用運(yùn)維APP完成對問題的拍照,再加以文字描述,提交至學(xué)校網(wǎng)絡(luò)中心。中心隨后便派遣維修人員,解決用戶提交的問題。
1.2.5 消息管理模塊
系統(tǒng)能夠?qū)?dāng)前工單的處理進(jìn)度、最新通知公告以站內(nèi)信的方式通知用戶及時關(guān)注,避免用戶錯過重要信息。
2 系統(tǒng)設(shè)計(jì)
在完成系統(tǒng)需求分析后,接下來非常關(guān)鍵的就是系統(tǒng)設(shè)計(jì)。良好的系統(tǒng)設(shè)計(jì)是系統(tǒng)實(shí)現(xiàn)的開端,同時也為今后系統(tǒng)維護(hù)提供便利。
2.1 系統(tǒng)架構(gòu)設(shè)計(jì)
傳統(tǒng)的安卓開發(fā),將所有的代碼都統(tǒng)一寫在Activity中,這種開發(fā)方式對于小的系統(tǒng)來說,不會產(chǎn)生太大的影響。但是一旦系統(tǒng)成長到一定的規(guī)模,那么這種方式將會是噩夢般的存在。究其原因在于,業(yè)務(wù)邏輯代碼、界面代碼、數(shù)據(jù)處理代碼等混合在一起,為后續(xù)的系統(tǒng)維護(hù)帶來很大的麻煩。針對該問題,很多公司提出了MVC、MVP、MVVM等多種架構(gòu)。因MVP架構(gòu)自身的成熟、穩(wěn)定,因此本系統(tǒng)采用基于MVP的架構(gòu)來實(shí)現(xiàn)。
View層一般為Activity或Fragment,主要負(fù)責(zé)界面的顯示,所有關(guān)于界面的操作全部在該層實(shí)現(xiàn),如提示用戶密碼輸入錯誤等信息。
Presenter層負(fù)責(zé)所有和用戶交互的事件,進(jìn)行復(fù)雜業(yè)務(wù)邏輯的處理
Model層完成數(shù)據(jù)的存取,采用三級緩存機(jī)制,來完成數(shù)據(jù)的存取。先從內(nèi)存緩存查找數(shù)據(jù),如未找到再從sqlite本地?cái)?shù)據(jù)庫查找數(shù)據(jù),如還未找到則通過網(wǎng)絡(luò)請求從遠(yuǎn)程服務(wù)器獲取數(shù)據(jù)。
2.2 系統(tǒng)功能模塊設(shè)計(jì)
系統(tǒng)主要的功能模塊如圖2所示:
3 系統(tǒng)核心功能實(shí)現(xiàn)
在完成系統(tǒng)設(shè)計(jì)后,接下來就需要在需求分析和設(shè)計(jì)的基礎(chǔ)上,進(jìn)行代碼的實(shí)現(xiàn)。
3.1 系統(tǒng)開發(fā)環(huán)境
3.2 關(guān)鍵技術(shù)
Retrofit提供了HTTP GET、POST等多種方法來獲取API接口數(shù)據(jù),由于是Rest風(fēng)格的接口,因此可讀性非常強(qiáng)。只需要定義接口,就可以返回相關(guān)數(shù)據(jù),如下:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.build();
GitHubService service = retrofit.create(GitHubService.class);
另外Retrofit網(wǎng)絡(luò)請求的執(zhí)行還提供了同步和異步兩種方式,為應(yīng)對不同的場景,提供了很大的靈活性。
3.2.2 RxJava介紹
RxJava是一款實(shí)現(xiàn)異步操作的框架,通過一種簡單的方式,為復(fù)雜的異步操作帶來便利。當(dāng)業(yè)務(wù)邏輯較為復(fù)雜時,傳統(tǒng)的異步操作由于嵌套層次較深,代碼可讀性較差,給后續(xù)的維護(hù)帶來非常大的問題。
RxJava通過提供Observable、Observer以及強(qiáng)大的操作符等功能,最大程度上簡化異步編程。以下是一個簡單的示例:
Observable.from(folders)
.flatMap((Func1) (folder) -> { Observable.from(file.listFiles()) })
.filter((Func1) (file) -> { file.getName().endsWith(".png") })
.map((Func1) (file) -> { getBitmapFromFile(file) })
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe((Action1) (bitmap) -> { imageCollectorView.addImage(bitmap) });
3.2.3 Glide介紹
Glide是谷歌員工推出的一款開源的圖片加載框架,在Goole I/O上被推薦使用。它的特點(diǎn)是配置簡單、支持多種圖片格式、高效緩存機(jī)制等。以下是官方提供的一個使用示例:
// For a simple view:
@Override public void onCreate(Bundle savedInstanceState) {
ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);
}
3.3 部分界面設(shè)計(jì)與實(shí)現(xiàn)
在完成系統(tǒng)設(shè)計(jì)后,接下來主要的工作就是實(shí)現(xiàn)所有的功能。
3.3.1 用戶登錄
當(dāng)用戶第一次訪問本系統(tǒng)的時候,會通過下方圖片所顯示的頁面完成用戶的注冊,在此用戶需要設(shè)置用戶名和密碼,然后提交注冊信息,界面如圖:
3.3.2 主頁
登錄成功后,即進(jìn)入系統(tǒng)首頁。首頁對用戶電腦可能存在的問題進(jìn)行了分類,分別是:網(wǎng)絡(luò)異常、系統(tǒng)異常、電腦卡慢、充電異常、硬件故障、軟件異常、其他問題,也可以通過搜索,查找電腦故障的處理方案,界面如圖:
3.3.3 個人中心
點(diǎn)擊底部導(dǎo)航欄“個人中心”,進(jìn)入用戶個人中心頁面,即可查看用戶的相關(guān)信息,用戶的保修情況、接收到的消息、用戶個人信息,界面如圖:
3.3.4 提交工單
如果用戶在使用搜索功能后仍然不能解決自己遇到的問題,就可以選擇使用提交報(bào)修的功能,將自己遇到的問題以文字或者圖片的形式描述說明,然后上傳,系統(tǒng)會將成功上傳的工單分配給相應(yīng)的專業(yè)人員,他們會及時幫助您解決問題。
用戶進(jìn)入“主頁”頁面,點(diǎn)擊左下角“上門服務(wù)”,進(jìn)入提交報(bào)修工單的頁面,填寫用戶自己遇到的問題的具體情況,點(diǎn)擊右上角“上傳”即可提交報(bào)修工單,界面如圖:
3.3.5 評價(jià)工單
用戶進(jìn)入“個人中心”頁面,點(diǎn)擊頁面“待評價(jià)”文字,進(jìn)入“我的評價(jià)”,在評價(jià)中可以對服務(wù)的總體評價(jià)、服務(wù)質(zhì)量和解決問題的速度進(jìn)行星級評價(jià),還可以提交文字對運(yùn)維人員進(jìn)行詳細(xì)的評價(jià),用戶的評價(jià)是對運(yùn)維人員最好的支持,界面如圖:
4 系統(tǒng)測試
系統(tǒng)開發(fā)完成后,需要經(jīng)過完備的測試才能上線運(yùn)行。另外如果代碼經(jīng)過重構(gòu)后,也需要進(jìn)行回歸測試,確保新的修改不會影響其他功能。
4.1 功能測試
根據(jù)系統(tǒng)功能需求,對所有功能模塊進(jìn)行完備測試,經(jīng)測試,所有模塊功能正確,無明顯錯誤。
4.2 性能測試
使用monkey等工具,模擬用戶的大規(guī)模點(diǎn)擊,來測試系統(tǒng)能夠承受的壓力。進(jìn)一步分析系統(tǒng)的性能瓶頸,為下一步的優(yōu)化做準(zhǔn)備。
5 結(jié)束語
通過對高校運(yùn)維系統(tǒng)的分析,基于安卓MVP架構(gòu)實(shí)現(xiàn)需求中定義的所有功能,經(jīng)相關(guān)功能測試和性能測試,證明系統(tǒng)是正確的、穩(wěn)定的。因工單處理流程較為復(fù)雜,下一步將重點(diǎn)優(yōu)化流程處理,提出一種更加靈活的流程處理模塊。不同高校的運(yùn)維需求差異很大,因此很難設(shè)計(jì)一套通用的基于安卓的系統(tǒng)。但是本文提出的一種設(shè)計(jì)和實(shí)現(xiàn)方法,可作為今后高校運(yùn)維系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)提供重要參考。
參考文獻(xiàn):
[1] 劉延杰. 基于JavaEE的科研管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 成都: 電子科技大學(xué), 2015.
[2] 金天昕. 淺析高校IT運(yùn)維系統(tǒng)的建設(shè)[J]. 電腦知識與技術(shù), 2015, 11(28).
[3] 成健, 張重陽. 基于安卓平臺的限速交通標(biāo)志的檢測和識別[J]. 微型電腦應(yīng)用, 2016, 32(4).
[4] 吳麗淳, 樊爽. 基于安卓平臺的手機(jī)定位軟件開發(fā)[J]. 計(jì)算機(jī)與現(xiàn)代化, 2014(9).
[5] 丁樺, 余金花. 基于安卓平臺的手部護(hù)理按摩儀系統(tǒng)研發(fā)[J]. 電腦知識與技術(shù), 2015, 11(18).
[6] 徐懷志, 趙航. 基于安卓平臺的電磁頻譜監(jiān)測應(yīng)用程序的開發(fā)[J]. 設(shè)計(jì)與研發(fā), 2016(13).
[7] 宋曉瑩, 王浩君, 廖振松. 一種基于Android 平臺的遠(yuǎn)程智能處理系統(tǒng)[J]. 信息通信, 2014(8).