潘紅麗,陳三清
(攀枝花學(xué)院,四川 攀枝花 617000)
隨著大眾物質(zhì)生活質(zhì)量的改善和對(duì)美好生活的憧憬以及生存、工作等需要,車輛駕駛幾乎成為社會(huì)生活必備技能,人們對(duì)于通過(guò)駕照考試的需求持續(xù)擴(kuò)大。同時(shí),“互聯(lián)網(wǎng)+駕考”的新模式有助于解決傳統(tǒng)駕考模式下的費(fèi)用混亂、服務(wù)差、效率低等問(wèn)題[1]。
各類駕考App如雨后春筍般出現(xiàn),如駕考寶典和駕校一點(diǎn)通,它們具有題庫(kù)涵蓋面全、題庫(kù)更新及時(shí)以及方便交流等優(yōu)點(diǎn)。它們也有不足之處,比如有的功能過(guò)于復(fù)雜、缺少學(xué)習(xí)相關(guān)法律法規(guī)和交通標(biāo)志等的環(huán)境,有的存在學(xué)習(xí)效率不高的問(wèn)題,所以有必要開發(fā)一款高質(zhì)量、高效率且契合市場(chǎng)的駕考練習(xí)App。
其整體功能分析如下:
①注冊(cè):系統(tǒng)用戶角色分為管理員和普通用戶。普通用戶可通過(guò)客戶端注冊(cè)和管理員添加用戶信息兩種方式完成注冊(cè),管理員僅可通過(guò)其他管理員添加。
②登錄:系統(tǒng)提供同一個(gè)登錄界面,通過(guò)判斷用戶類別來(lái)區(qū)分用戶角色,再分別進(jìn)入對(duì)應(yīng)界面。
③退出:退出軟件,返回登錄界面。
④忘記密碼:重置密碼,用戶需要提供昵稱、電話及新密碼作為必要信息,前兩個(gè)信息用于比對(duì)用戶身份。
⑤隨機(jī)測(cè)試:模擬實(shí)際理論駕考的情況,從題庫(kù)中隨機(jī)抽取一定的題目進(jìn)行測(cè)試,模擬正式測(cè)試,45分鐘倒計(jì)時(shí),自動(dòng)打分。
⑥順序練習(xí):模擬實(shí)際理論駕考的情況,按照順序練習(xí)題目,每次練習(xí)題目100道。
⑦重點(diǎn)復(fù)習(xí):可復(fù)習(xí)鞏固用戶刷題過(guò)程中手動(dòng)添加的題目和自動(dòng)收錄的錯(cuò)題。
⑧交通法律法規(guī)政策學(xué)習(xí)功能:提供了最新發(fā)布的駕照考試切實(shí)相關(guān)的法律法規(guī),同時(shí)添加了第三方網(wǎng)站給用戶作為補(bǔ)充學(xué)習(xí)。
⑨交通標(biāo)志的學(xué)習(xí)功能:通過(guò)網(wǎng)上搜集的交通標(biāo)志自建數(shù)據(jù)庫(kù),目前主要囊括的標(biāo)志有警告、指示、禁令、指路和旅游5種。
⑩個(gè)人中心:通過(guò)此功能查看和修改個(gè)人信息。
Android駕考練習(xí)App分為管理員和普通用戶兩類用戶角色,其分別有各自相對(duì)應(yīng)的客戶端和用例設(shè)計(jì),具體可見(jiàn)圖1軟件整體用例。
Android駕考練習(xí)App,基于MVC(Model-View-Controller)分層架構(gòu)而開發(fā),主要分為基礎(chǔ)層和業(yè)務(wù)層。其中,基礎(chǔ)層主要包括一些工具類和系統(tǒng)SDK。在業(yè)務(wù)層中,由Model,View和Controller三者進(jìn)行業(yè)務(wù)交互。本App采用MySQL數(shù)據(jù)庫(kù)、文件、SharedPrefe rences等多種方式進(jìn)行存儲(chǔ),其中MySQL數(shù)據(jù)庫(kù)為主要存儲(chǔ)方式。本App采用JDBC的連接方式,通過(guò)反射技術(shù)注冊(cè)驅(qū)動(dòng)以及調(diào)用一系列方法連接和操縱數(shù)據(jù)庫(kù)[2]。而由于使用Android程序表現(xiàn)為單線程運(yùn)行的特性,需耗費(fèi)較長(zhǎng)時(shí)間,進(jìn)而影響流暢度的任務(wù),需要使用多線程技術(shù),故MySQL的服務(wù)都放在了子線程中來(lái)實(shí)現(xiàn),并調(diào)用runOnUiThread來(lái)負(fù)責(zé)線程的切換[3]。
Android駕校練習(xí)App共分為用戶管理、交通標(biāo)志管理、順序練習(xí)、隨機(jī)測(cè)試、重點(diǎn)復(fù)習(xí)、政策法規(guī)學(xué)習(xí)、交通標(biāo)志學(xué)習(xí)、個(gè)人中心和軟件基本項(xiàng)九大模塊。其中,用戶管理模塊和交通標(biāo)志管理模塊為管理員模塊。個(gè)人中心模塊和登錄模塊為公有模塊,但根據(jù)不同用戶角色存在差別。其余模塊為普通用戶獨(dú)有模塊。系統(tǒng)模塊劃分如圖2所示。
圖1 軟件整體用例
圖2 系統(tǒng)功能模塊
本模塊主要為管理員用戶設(shè)計(jì)和使用,通過(guò)RadioGroup,RadioButton,ViewPager和FragmentPager Adapter實(shí)現(xiàn)管理端的底部導(dǎo)航欄,通過(guò)底部導(dǎo)航欄來(lái)切換Fragment。用戶管理的界面具體呈現(xiàn)在一個(gè)Fragment里面,實(shí)現(xiàn)對(duì)用戶的管理。其中,刪除和查找提供ByID,ByName,ByTel,ByKind4種方式進(jìn)行,具體采用AlertDialog實(shí)現(xiàn)。
本模塊主要為管理員用戶設(shè)計(jì)和使用,主要實(shí)現(xiàn)對(duì)于交通標(biāo)志的增刪、改查的管理。其中,查找或刪除操作分為4種方式,分別是:ByID,ByName,ByLoc,ByKind。此模塊與用戶管理模塊類似,主要不同是管理的對(duì)象類型不同和相關(guān)的各類屬性有較大差別。
在用戶成功登錄后,點(diǎn)擊用戶主頁(yè)的“題庫(kù)練習(xí)”按鈕,進(jìn)入題庫(kù)練習(xí)主頁(yè)。主頁(yè)利用RadioGroup和RadioButton實(shí)現(xiàn)用戶對(duì)于科目類型、駕照類型和測(cè)試類型的選擇。目前,提供的科目類型僅包括科目一和四,駕照類型提供了A1、A2、B1、B2、C1和C2共6種,測(cè)試的題目類型涵蓋單選題、多選題和判斷題。每次練習(xí)都將由用戶自主選擇練習(xí)題目范圍,且題目數(shù)量為100道??紤]到用戶實(shí)際機(jī)型的分辨率問(wèn)題,可能會(huì)出現(xiàn)界面顯示不全等情況,為此對(duì)題庫(kù)練習(xí)的相關(guān)界面設(shè)計(jì)都采取了ScrollView布局。
隨機(jī)測(cè)試相比于順序練習(xí)的不同有3點(diǎn):第一點(diǎn)不同在于不再由用戶控制題目范圍,而是由系統(tǒng)隨機(jī)出題100道;第二點(diǎn)不同在于隨機(jī)測(cè)試為了模擬考場(chǎng)加入了倒計(jì)時(shí)機(jī)制,倒計(jì)時(shí)為保持與現(xiàn)實(shí)考試一致故設(shè)置為45 min;第三點(diǎn)不同在于隨機(jī)測(cè)試從題庫(kù)練習(xí)主頁(yè)按下開始按鈕后,如果題庫(kù)加載成功就會(huì)直接進(jìn)入測(cè)試界面,并在工具欄中開始倒計(jì)時(shí)。
此模塊題目來(lái)源有兩種方式:一是用戶手動(dòng)添加的難題,二是系統(tǒng)自動(dòng)收錄用戶的錯(cuò)題。當(dāng)新用戶第一次進(jìn)入軟件即沒(méi)有復(fù)習(xí)題目時(shí),系統(tǒng)會(huì)給出消息提示。
在模塊實(shí)現(xiàn)時(shí),將重點(diǎn)復(fù)習(xí)的入口設(shè)置在練習(xí)主頁(yè)右上角菜單欄中。在每次題庫(kù)練習(xí)界面加載時(shí),會(huì)同時(shí)從數(shù)據(jù)庫(kù)中加載復(fù)習(xí)題目,將其存入一個(gè)數(shù)組。重寫題庫(kù)練習(xí)界面的onDestroy方法,實(shí)現(xiàn)每次用戶退出題庫(kù)練習(xí)時(shí)都會(huì)將新增的復(fù)習(xí)題目寫入數(shù)據(jù)庫(kù)。
相較于市場(chǎng)同類App,本模塊主要呈現(xiàn)了相關(guān)政策法規(guī)的學(xué)習(xí),并提供相關(guān)的第三方網(wǎng)站給予用戶作為補(bǔ)充學(xué)習(xí),在設(shè)計(jì)實(shí)現(xiàn)上具有一定的創(chuàng)新性。
政策文件的展示采用文件IO的方式最終展示在TextView上面,由于需要閱讀文件,因而對(duì)TextView采用了ScrollView布局;對(duì)第三方網(wǎng)站的訪問(wèn)則借助WebView將第三方網(wǎng)站加載在App頁(yè)面,必要時(shí)會(huì)打開瀏覽器跳轉(zhuǎn)到指定的第三方網(wǎng)站。
此模塊在實(shí)現(xiàn)方法上使用MySQL建立交通標(biāo)志數(shù)據(jù)庫(kù)。目前,將交通標(biāo)志分為警告、指示、禁令、指路和旅游5類,分門別類地提供給用戶自行選擇學(xué)習(xí)。
在界面設(shè)計(jì)方面,與政策法規(guī)學(xué)習(xí)模塊存在相似的一點(diǎn)是都采用了RadioGroup加上RadioButton的思想實(shí)現(xiàn)用戶界面的切換。為了提高頁(yè)面的復(fù)用率,與政策法規(guī)學(xué)習(xí)模塊類似,在設(shè)計(jì)上使用一個(gè)Activity,之前的管理端采用的是Fragment等技術(shù)實(shí)現(xiàn)頁(yè)面切換,此處使用的僅僅是控制控件的Visibility屬性,在政策法規(guī)學(xué)習(xí)模塊中主要采用TextView和WebView控件來(lái)顯示關(guān)鍵內(nèi)容,此處則使用ImageView來(lái)實(shí)現(xiàn)圖片的顯示。
本App分為管理員和普通用戶兩個(gè)客戶端,管理員客戶端主要實(shí)現(xiàn)了對(duì)于用戶和交通標(biāo)志的管理以及管理員的個(gè)人中心,管理員填寫必要的信息再點(diǎn)擊對(duì)應(yīng)的按鈕,操作結(jié)果會(huì)反饋在界面上,如圖3所示。普通用戶客戶端則實(shí)現(xiàn)了順序練習(xí)、隨機(jī)測(cè)試、重點(diǎn)復(fù)習(xí)、政策法規(guī)學(xué)習(xí)和交通標(biāo)志學(xué)習(xí)等主要功能,其中順序練習(xí)、隨機(jī)測(cè)試和重點(diǎn)復(fù)習(xí)都通過(guò)點(diǎn)擊“題庫(kù)練習(xí)”按鈕進(jìn)入,具體如圖4所示。
圖3 管理員客戶端界面
圖4 普通用戶客戶端界面
基于“互聯(lián)網(wǎng)+駕考”的新型聯(lián)合發(fā)展模式,雖然市場(chǎng)中存在著很多較優(yōu)秀的同類App,但仍舊在政策法規(guī)、交通標(biāo)志等方面存在行業(yè)空白以及在效率等方面還有較大提升空間,因此有必要秉持創(chuàng)新和學(xué)習(xí)的理念開發(fā)一款新的駕考練習(xí)App。軟件為即將參加考試的廣大用戶提供了一個(gè)全天候的移動(dòng)輔導(dǎo)學(xué)習(xí)平臺(tái)。通過(guò)本軟件,用戶能通過(guò)手機(jī)進(jìn)行全天候的學(xué)習(xí),短時(shí)間內(nèi)完成學(xué)習(xí)并提高通過(guò)率,在節(jié)省時(shí)間的同時(shí)還可以獲得一些建議和考試技巧,對(duì)駕考用戶有較大的幫助。
本App基于C/S的模式,面向于兼具穩(wěn)定性和有一定廣大市場(chǎng)占有率的Android 9進(jìn)行開發(fā),由于Java在Android開發(fā)方面具有獨(dú)特的優(yōu)勢(shì)[4],故采用Java并結(jié)合開發(fā)平臺(tái)Android Studio進(jìn)行課題設(shè)計(jì)和開發(fā),利用夜神模擬器進(jìn)行仿真模擬,基于MySQL數(shù)據(jù)庫(kù)、文件、SharedPreference等多種形式結(jié)合的方式進(jìn)行存儲(chǔ),依托寶塔面板和基于鯤鵬架構(gòu)的華為云服務(wù)器部署服務(wù)器端。經(jīng)過(guò)設(shè)計(jì)和開發(fā),軟件順利實(shí)現(xiàn)了用戶管理、交通標(biāo)志管理、順序練習(xí)、隨機(jī)測(cè)試、重點(diǎn)復(fù)習(xí)、政策法規(guī)學(xué)習(xí)、交通標(biāo)志學(xué)習(xí)、個(gè)人中心和軟件基本項(xiàng)九大模塊,為駕考用戶搭建起了一個(gè)輔導(dǎo)學(xué)習(xí)平臺(tái)。其中,交通標(biāo)志管理模塊和政策法規(guī)學(xué)習(xí)模塊具有一定創(chuàng)新意義,采用了自建數(shù)據(jù)庫(kù)、文件IO、跳轉(zhuǎn)第三方網(wǎng)站等方式為用戶整合了兩個(gè)方面知識(shí)的資源并提供了專門的學(xué)習(xí)環(huán)境。軟件運(yùn)行良好,基本達(dá)到預(yù)期。本App后期將充分發(fā)揮鯤鵬架構(gòu)的云服務(wù)器特性且著眼于版本多樣化,進(jìn)一步細(xì)化和完善軟件。