APP下载

基于Android的驾考练习App设计与实现

2022-02-20潘红丽陈三清

无线互联科技 2022年24期
关键词:政策法规交通标志题库

潘红丽,陈三清

(攀枝花学院,四川 攀枝花 617000)

0 引言

随着大众物质生活质量的改善和对美好生活的憧憬以及生存、工作等需要,车辆驾驶几乎成为社会生活必备技能,人们对于通过驾照考试的需求持续扩大。同时,“互联网+驾考”的新模式有助于解决传统驾考模式下的费用混乱、服务差、效率低等问题[1]。

各类驾考App如雨后春笋般出现,如驾考宝典和驾校一点通,它们具有题库涵盖面全、题库更新及时以及方便交流等优点。它们也有不足之处,比如有的功能过于复杂、缺少学习相关法律法规和交通标志等的环境,有的存在学习效率不高的问题,所以有必要开发一款高质量、高效率且契合市场的驾考练习App。

1 系统分析

1.1 功能分析

其整体功能分析如下:

①注册:系统用户角色分为管理员和普通用户。普通用户可通过客户端注册和管理员添加用户信息两种方式完成注册,管理员仅可通过其他管理员添加。

②登录:系统提供同一个登录界面,通过判断用户类别来区分用户角色,再分别进入对应界面。

③退出:退出软件,返回登录界面。

④忘记密码:重置密码,用户需要提供昵称、电话及新密码作为必要信息,前两个信息用于比对用户身份。

⑤随机测试:模拟实际理论驾考的情况,从题库中随机抽取一定的题目进行测试,模拟正式测试,45分钟倒计时,自动打分。

⑥顺序练习:模拟实际理论驾考的情况,按照顺序练习题目,每次练习题目100道。

⑦重点复习:可复习巩固用户刷题过程中手动添加的题目和自动收录的错题。

⑧交通法律法规政策学习功能:提供了最新发布的驾照考试切实相关的法律法规,同时添加了第三方网站给用户作为补充学习。

⑨交通标志的学习功能:通过网上搜集的交通标志自建数据库,目前主要囊括的标志有警告、指示、禁令、指路和旅游5种。

⑩个人中心:通过此功能查看和修改个人信息。

1.2 角色功能需求

Android驾考练习App分为管理员和普通用户两类用户角色,其分别有各自相对应的客户端和用例设计,具体可见图1软件整体用例。

2 系统结构设计

2.1 系统体系结构设计

Android驾考练习App,基于MVC(Model-View-Controller)分层架构而开发,主要分为基础层和业务层。其中,基础层主要包括一些工具类和系统SDK。在业务层中,由Model,View和Controller三者进行业务交互。本App采用MySQL数据库、文件、SharedPrefe rences等多种方式进行存储,其中MySQL数据库为主要存储方式。本App采用JDBC的连接方式,通过反射技术注册驱动以及调用一系列方法连接和操纵数据库[2]。而由于使用Android程序表现为单线程运行的特性,需耗费较长时间,进而影响流畅度的任务,需要使用多线程技术,故MySQL的服务都放在了子线程中来实现,并调用runOnUiThread来负责线程的切换[3]。

2.2 系统模块划分

Android驾校练习App共分为用户管理、交通标志管理、顺序练习、随机测试、重点复习、政策法规学习、交通标志学习、个人中心和软件基本项九大模块。其中,用户管理模块和交通标志管理模块为管理员模块。个人中心模块和登录模块为公有模块,但根据不同用户角色存在差别。其余模块为普通用户独有模块。系统模块划分如图2所示。

图1 软件整体用例

图2 系统功能模块

3 系统核心模块设计与实现

3.1 用户管理模块设计与实现

本模块主要为管理员用户设计和使用,通过RadioGroup,RadioButton,ViewPager和FragmentPager Adapter实现管理端的底部导航栏,通过底部导航栏来切换Fragment。用户管理的界面具体呈现在一个Fragment里面,实现对用户的管理。其中,删除和查找提供ByID,ByName,ByTel,ByKind4种方式进行,具体采用AlertDialog实现。

3.2 交通标志管理模块设计与实现

本模块主要为管理员用户设计和使用,主要实现对于交通标志的增删、改查的管理。其中,查找或删除操作分为4种方式,分别是:ByID,ByName,ByLoc,ByKind。此模块与用户管理模块类似,主要不同是管理的对象类型不同和相关的各类属性有较大差别。

3.3 顺序练习模块设计与实现

在用户成功登录后,点击用户主页的“题库练习”按钮,进入题库练习主页。主页利用RadioGroup和RadioButton实现用户对于科目类型、驾照类型和测试类型的选择。目前,提供的科目类型仅包括科目一和四,驾照类型提供了A1、A2、B1、B2、C1和C2共6种,测试的题目类型涵盖单选题、多选题和判断题。每次练习都将由用户自主选择练习题目范围,且题目数量为100道。考虑到用户实际机型的分辨率问题,可能会出现界面显示不全等情况,为此对题库练习的相关界面设计都采取了ScrollView布局。

3.4 随机测试模块设计与实现

随机测试相比于顺序练习的不同有3点:第一点不同在于不再由用户控制题目范围,而是由系统随机出题100道;第二点不同在于随机测试为了模拟考场加入了倒计时机制,倒计时为保持与现实考试一致故设置为45 min;第三点不同在于随机测试从题库练习主页按下开始按钮后,如果题库加载成功就会直接进入测试界面,并在工具栏中开始倒计时。

3.5 重点复习模块设计与实现

此模块题目来源有两种方式:一是用户手动添加的难题,二是系统自动收录用户的错题。当新用户第一次进入软件即没有复习题目时,系统会给出消息提示。

在模块实现时,将重点复习的入口设置在练习主页右上角菜单栏中。在每次题库练习界面加载时,会同时从数据库中加载复习题目,将其存入一个数组。重写题库练习界面的onDestroy方法,实现每次用户退出题库练习时都会将新增的复习题目写入数据库。

3.6 政策法规学习模块设计与实现

相较于市场同类App,本模块主要呈现了相关政策法规的学习,并提供相关的第三方网站给予用户作为补充学习,在设计实现上具有一定的创新性。

政策文件的展示采用文件IO的方式最终展示在TextView上面,由于需要阅读文件,因而对TextView采用了ScrollView布局;对第三方网站的访问则借助WebView将第三方网站加载在App页面,必要时会打开浏览器跳转到指定的第三方网站。

3.7 交通标志学习模块设计与实现

此模块在实现方法上使用MySQL建立交通标志数据库。目前,将交通标志分为警告、指示、禁令、指路和旅游5类,分门别类地提供给用户自行选择学习。

在界面设计方面,与政策法规学习模块存在相似的一点是都采用了RadioGroup加上RadioButton的思想实现用户界面的切换。为了提高页面的复用率,与政策法规学习模块类似,在设计上使用一个Activity,之前的管理端采用的是Fragment等技术实现页面切换,此处使用的仅仅是控制控件的Visibility属性,在政策法规学习模块中主要采用TextView和WebView控件来显示关键内容,此处则使用ImageView来实现图片的显示。

3.8 App界面实现

本App分为管理员和普通用户两个客户端,管理员客户端主要实现了对于用户和交通标志的管理以及管理员的个人中心,管理员填写必要的信息再点击对应的按钮,操作结果会反馈在界面上,如图3所示。普通用户客户端则实现了顺序练习、随机测试、重点复习、政策法规学习和交通标志学习等主要功能,其中顺序练习、随机测试和重点复习都通过点击“题库练习”按钮进入,具体如图4所示。

图3 管理员客户端界面

图4 普通用户客户端界面

4 结语

基于“互联网+驾考”的新型联合发展模式,虽然市场中存在着很多较优秀的同类App,但仍旧在政策法规、交通标志等方面存在行业空白以及在效率等方面还有较大提升空间,因此有必要秉持创新和学习的理念开发一款新的驾考练习App。软件为即将参加考试的广大用户提供了一个全天候的移动辅导学习平台。通过本软件,用户能通过手机进行全天候的学习,短时间内完成学习并提高通过率,在节省时间的同时还可以获得一些建议和考试技巧,对驾考用户有较大的帮助。

本App基于C/S的模式,面向于兼具稳定性和有一定广大市场占有率的Android 9进行开发,由于Java在Android开发方面具有独特的优势[4],故采用Java并结合开发平台Android Studio进行课题设计和开发,利用夜神模拟器进行仿真模拟,基于MySQL数据库、文件、SharedPreference等多种形式结合的方式进行存储,依托宝塔面板和基于鲲鹏架构的华为云服务器部署服务器端。经过设计和开发,软件顺利实现了用户管理、交通标志管理、顺序练习、随机测试、重点复习、政策法规学习、交通标志学习、个人中心和软件基本项九大模块,为驾考用户搭建起了一个辅导学习平台。其中,交通标志管理模块和政策法规学习模块具有一定创新意义,采用了自建数据库、文件IO、跳转第三方网站等方式为用户整合了两个方面知识的资源并提供了专门的学习环境。软件运行良好,基本达到预期。本App后期将充分发挥鲲鹏架构的云服务器特性且着眼于版本多样化,进一步细化和完善软件。

猜你喜欢

政策法规交通标志题库
基于双向特征融合的交通标志识别
“勾股定理”优题库
“轴对称”优题库
政策法规
“轴对称”优题库
政策法规
政策法规
政策法规