欢迎来到工作报告网!

基于Android的电子工程师小助手的设计与实现

市场调研报告 时间:2022-02-14 10:08:54

摘 要:文中提出了一项基于Android系统的致力于为电子行业相关人员带来方便与快捷体验的应用。该应用结合了相关电子电路知识,在用户端实现了电子计算工具,具有常用电子元件及电路查询、相关业内资讯推送等功能。本系统服务端采用JavaEE规范中的Servlet与JDBC,利用MySQL数据库及Tomcat服务器,通过HTTP协议及JSON进行数据交换,实现了行业相关新闻的推送,技术交流模块中用户的提问与回复以及用户注册信息的上传及登录校验等功能。经测试,该应用客户界面友好,操作方便,且客户端和服务端整体工作稳定,两者能进行有效通信,性能良好。

关键词:Android;MySQL;HTTP;JSON;Servlet

中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2017)01-0-03

0 引 言

随着移动设备的不断普及和移动互联网的高速发展,移动端接入互联网的用户数量不断增长,移动终端已成为人们获取信息的主要来源,而Android系统凭借其开源性和易用性,在生活中得到广泛应用[1-5]。移动平台开始连接各种不同的行业,并不断改变着这些行业的传统与习惯。本文针对电子行业从业人员,电子相关专业学生及电子科技爱好者,设计开发了基于Android系统的电子工程师小助手软件,可以方便用户随时随地查询元件或电路相关知识,方便获取行业动态资讯和技术交流,为电子行业相关人员带来便利。

1 系统设计

图1 系统模块功能图

本系统模块功能图如图1所示,图中主要包括基于Android平台的客户端设计和基于Web技术的服务端设计。所涉及的技术主要有Android应用程序开发,数据库设计,服务端开发及接口设计,HTTP通信协议。所实现的主要功能包括登录注册,电子计算工具,电子元件及电路查询,新闻推荐,技术交流等。

1.1 数据库设计

1.1.1 SQLite数据库设计

Android系统底层集成了SQLite数据库,为较大数据的处理提供了便利。SQLite数据库只需要一个动态库,核心引擎不需要第三方软件的支持。在本系统设计中,为了快速响应用户频繁的查询操作,客户端使用SQLite数据库存储常用元件与电路信息,不用每次查询联网访问服务端,把占用空间资源较多的文档放在服务端管理,下载文档需联网请求服务器。系统设计中在客户端首次启动时SQLite数据库会被复制到移动设备的存储空间。数据库中的表有components、circuit,其中components表的设计见表1所列。

1.1.2 MySQL数据库设计

本系统服务端采用MySQL数据库,相比之下,由于多线程的支持,MySQL能更加充分的利用系统CPU的资源。在本系统设计中,MySQL用来存储用户信息和新闻、提问模块相关资源,与其他数据资源文件一起构成服务端的持久层。此外,一些数据表中还要关联文件形式数据的URL地址。数据库中数据表有article-comment、articles、comment、news、user、web-site-sources六张表。

1.2 客戶端设计

在本软件系统设计中,Android客户端采用MVC (Model View Controller)设计模式,即模型(Model)视图(View)控制器(Controller)模式。这种模式将业务逻辑、数据、界面显示分开在不同的层,以降低各层之间的耦合性,使软件的可维护性大大增强。

1.2.1 电子计算工具模块

本模块包含了电阻色环计算器、普通计算器、多谐振荡器、电阻电容电感串并联计算器、贴片计算器等与电子电路相关的计算工具,其实现方法主要涉及将相关电路或元器件参数计算转换为算法,然后结合Android系统的界面绘制与事件机制来实现最终的电子计算工具。

1.2.2 查询模块

查询模块实现了对电子元件及重要电路的查询功能,实现了对电子元件名称及型号和对电路关键字的模糊查询。当查询到所需元件后,点击条目则能看到该元件的参数信息,如果想获取更为详尽的信息可选择“下载XXX”来下载该元件对应的文档。该模块中的电子元件及电路信息都存储在客户端系统SQLLite数据库中,由于是本地数据库,不需要联网请求服务端,所以有着较快的查询速度并且每次启动都会获取服务端数据库版本,如果版本不同,则提示用户进行数据库更新。

在获取到用户输入的查询关键字后,用户点击“查元件”或“查电路”,从而执行封装的模糊查询方法。其中“%”在SQL语句中代表通配符,可表示任意字符,关键字前后零个,一个或多个字符,只要"name"或 "type"字段含有查询关键字,不论出现在哪个位置,均能检索到此元件。

1.2.3 资讯模块

新闻推荐模块可实现行业热点资讯与新闻的动态更新,用户可进入到此模块中浏览资讯内容。在此模块中,新闻列表及评论列表均使用了Android提供的ListView控件。ListView是Android中的一个重要控件,其自身符合MVC模式的设计。新闻数据的加载需要根据服务器提供的接口,通过HTTP协议采用GET方式请求服务器。对应用户提交评论信息则需要通过POST方式与服务端通信。GET或POST请求从服务端获得的数据为JSON格式,需要解析JSON字符串并封装到相应的对象中才能方便使用。

交流提问模块的数据展示方式与新闻推荐模块相同,同样采用HTTP协议GET方式来获取数据,采用ListView控件展示数据给用户。用户提问数据信息采用POST方式上传至服务端存储,与服务端的数据通讯传输格式同样为JSON。

资源推荐模块在本模块中可解析展示服务端动态推荐的资源网站及其他资源,通过解析后展示给用户。通过GET方式请求服务端获取数据,列表采用ListView,详情页面通过WebView实现对资源网页的解析。

1.2.4 注册登录模块

注册登录模块将用户注册信息上传到服务端,在发表新闻评论或回答问题帖时,用户必须处于登录状态才能提交。

用户注册功能模块通过POST方式提交用户注册的相关数据信息到服务端,并将其保存在MySQL数据库中,以持久化存储。在提交之前会对用户的输入信息进行校验,先对密码长度进行判断,对其格式采用正则表达式进行校验。String regular = "[0-9A-Za-z]*";用户登录模块同样采用POST提交用户信息到服务端,根据服务端的返回结果来判断用户是否登录成功。

1.3 服务端设计

在服务端系统中,控制层由Servlet实现,模型层由数据库操作JavaBean对象来封装数据。服务端收到Android客户端请求及响应请求的处理过程如图2所示。对于客户端请求的服务端数据,其对应的Servlet解析请求信息后会作出响应,然后把请求的数据进行相应封装后返回给客户端。

1.3.1 连接数据库

采用JDBC与服务端MySQL数据库进行连接。数据库相关信息(如主机名、端口号、用户名)写在配置文件中,需要时从配置文件中读取配置的相关信息,这样可以增强程序的扩展性。JDBC连接数据库进行数据库操作时,需要先加载对应数据库的驱动程序,而这里加载MySQL数据库的驱动。另外连接数据库需要传入其URL地址,用于标识所需要连接的数据库位置,通过DriverManager类使JDBC程序连接到指定数据库。

1.3.2 Servlet处理请求

1.3.2.1 GET方式

GET方式需要先获取客户端发送过来的请求参数,如在请求新闻处理时,首先从参数中获取请求新闻条目的数量,然后连接数据库查询其所要请求的数据。执行对应的SQL语句,调用prepareStatement(SQL),即采用JDBC预编译预处理的工作方式来执行相应的SQL操作语句,可以提高在多次操作时的执行效率,又可以有效防止SQL注入,提高安全性。把查询到的数据封装至JavaBean对象,再存入ArrayList集合中,把集合对象再转为JSON格式,最后把数据输出到客户端。这里使用Google Gson工具包。由此便完成了Servlet对一个GET请求作出响应并把数据输出的过程。

1.3.2.2 POST方式

POST方式处理客户端请求的基本流程与GET方式相同,主要区别在于解析到请求参数及内容信息后,根据需求会执行插入数据到数据库的操作来保存用户提交的数据内容,如新闻评论数据信息、用户注册信息。

1.3.3 服务端接口

服务端接口的设计应规范客户端与服务端之间的通信,客户端只需要根据服务端接口中的要求传入响应的参数,即可请求到所需数据。主要封装接口名称、URL地址、请求方式、请求参数、返回结果等信息。

2 系统实现和系统测试

2.1 系统实现

根据以上详细的系统设计分析,在配置好系统开发环境后可逐个完成模块功能的实现。部分实现效果如图3所示。其中图3(a)所示为登录界面,图3(b)所示为计算界面,图3(c)所示为查询界面,图3(d)所示为资讯界面。

2.2 系统测试

除了功能实现过程中的单元测试,对整个系统的功能测试也是本设计实现工作的一个重要环节。由于本系统先由客户端发起请求,服务端处理收到的请求并做出响应,同时对客户端与服务端进行测试。对登录注册、电子计算工具、电子元件及电路查询、新闻推荐、技术交流问答模块进行测试,其中部分测试用例设计见表2所列。

3 结 语

目前应用市场关于电子行业的移动应用软件还相对匮乏,一款能及时关注行业动态,解答自己专业领域内问题以及拥有便利电子计算工具及元件查询功能的应用可以为从业者或学生带来非凡体验。本设计具有明确的用户人群与较高的实用价值,系统操作方便,界面友好。

参考文献

[1]朱凤山.Android移动应用程序开发教程[M].北京:清华大学出版社,2014.

[2]杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2010.

[3]南秦博,慕德俊,候艳艳.基于Android 平台的手机防盗安全软件设计与实现[J].现代电子技术,2015,38(4):46-49.

[4]王浩,韩敏,董杰.基于Android 平台的车载视频智能监控系统的研究[J].电子技术应用,2016,42(6):121-123,127.

[5]倪红军.基于Android 平台的消息推送研究与实现[J].实验室研究与探索,2014,33(5):96-100.

[6]赵新慧.Java程序设计教程[M].北京:清华大学出版社,2014.

[7]杨卫兵.Java Web编程详解[M].南京:东南大学出版社,2014.

[8]孔祥盛.MySQL核心技术与最佳实践[M].北京:人民邮电出版社,2014.

[9]趙俊峰,姜宁,焦学理.Java Web应用开发案例教程:基于MVC模式的JSP + Servlet + JDBC和AJAX[M].北京:清华大学出版社,2012.

[10]Android project [EB/OL]. [2013-05-20]. http://source.android.com/.

[11]马建红,姬莉霞,卫权岗.基于Android平台的移动个人助手设计与实现[J].现代电子技术,2012,35(2):24-26.

推荐访问:小助手 电子工程师 设计 Android

热门文章