深圳市组创微电子有限公司
销售部:158 1687 4032采购部:0755-8299 4126行政部:0755-8299 4126
咨询电话
0755-8299 4141

消费电子

客户成功故事与项目成功案例

安卓行车记录仪控制板开发


随着我国社会经济的不断发展,交通运输业得到了快速发展,机动车数量急剧增加,其中私家车队伍也在不断壮大,交通管理的规模和等级逐步扩大,由此带来的问题也不断增多。为此,实施智能交通管理,提高驾驶安全性能,改善交通乱象,越来越为行业所关注。作为保障汽车行驶安全的智能汽车行驶记录仪APP应运而生,因为在行车过程中,可能会遇到很多突发事件,保留合适的现场资料成为应对突发事件不可缺少的环节,对其的研究、开发和应用也吸引了部分IT从业者。

本论文的研究基于Android平台,在该平台下,进行智能行车记录仪APP的设计与实现,即不单独设计硬件,借用安卓手机实现智能行车记录功能。当前,手机的更新换代速度越来越快,很多人有两个及两个以上的手机,二手手机买卖的价格较低,回收处理较复杂,而且目前国内手机回收处理产业不发达,所以可以利用淘汰的旧手机作为智能行车记录仪APP的硬件平台,节省硬件成本。目前,人们对手机的操作比较熟练,开发智能行车记录仪APP某种程度上也方便了人们的使用。

基于以上结论,本文设计一种基于Android平台的智能行车记录仪APP,下面进行详细阐述。

一、行车记录仪系统功能设计

Android系统底层是基于Linux 2.6版本的内核,如进程管理、文件系统等,内核是上层软件与底层硬件通信的桥梁。An⁃droid系统框架大致可分为四个部分:应用程序层、应用框架层、库和Android运行时、Linux内核。

本系统是在Android应用程序层开发,根据需求,该手机应用主要有以下几种功能,一是根据出行方式的不同给出路线规划,二是根据起点和终点给出实时导航,三是根据手机的方向传感器给出方向和经纬度,四是拍照和录像功能,五是活动的展示,六是音乐播放界面和功能的实现,七是新闻和周边页面的查看,八是文件管理功能,包括图片和视频的缩略图、列表展示功能,图片的查看和视频的播放功能,图片和视频文件的一键清理和分享功能,再者是连接到电脑,使用电脑管理手机文件。

二、行车记录仪系统功能实现

该系统客户端使用Activity、Service两大组件,充分利用In⁃tent通信机制,并辅以SharedPreferences存储数据,HTTP协议和服务器通信,同时使用Mob移动开发者服务平台和百度地图开发平台提供的服务,成功构建了一款功能丰富的智能行车记录仪APP。

该系统服务端使用Servlet接收客户端发送的请求,由于只需要返回给客户端数据,而不需要通过浏览器展示图形界面,所以不需要编写jsp。该系统采用MySQL数据库,在服务器和数据库之前使用jdbc桥连接。

2.1导航

(1)百度地图SDK:百度地图Android SDK是一套基于Android 2.1及以上版本设备的应用程序接口,通过调用SDK接口,可以访问百度地图的服务和数据,其提供的所有服务都是免费的,接口使用可以无次数限制。使用时,必须先申请密匙(key),并在Mainfest.xml中设置Accesskey,在application标签中加入<meta-data android:name="com.baidu.lbsapi.API_KEY"android:value="key"/>,并声明相应权限,同时要导入相应的资源Jar包,.so动态库。百度地图提供普通的2D、3D地图、卫星图,同时支持POI检索,地理编码与反编码,线路规划,地图覆盖物,位置定位等特色服务。下面简单介绍本系统使用到的技术。

百度地图Android定位SDK是为Android移动端应用提供的一套简单易用的LBS(Location Based Service,基于位置的服务)定位服务接口,可以提供GPS、基站、WiFi等定位方式。使用需先在xml文件中添加MapView,然后开启定位图层。定位初始化过程中,首先实例化LocationClient,然后注册定位监听,最后设置定位参数,如坐标系的选择,定位时间间隔的控制等。定位监听函数会返回位置信息,通过对位置信息的设置,即可显示在界面上。在退出定位界面时应关闭定位图层,销毁LocationClient,防止内存泄露。百度地图Android导航SDK与之原理类似,不再赘述。

(2)功能实现:首先,人们使用导航功能时,更多的是需要找到从当前位置到某一地点的路线,所以,本系统首先使用百度地图定位SDK获取到当前位置,并在页面上绘制出来街道、热点等标志,给用户提供导航依据。然后,在页面上起点和终点输入框可以输入地点,在输入时会触发联想词功能(Sug⁃gestionSearch),智能提示用户相应地点。

2.2文件管理

本系统需要管理的文件为视频和图片文件,视频文件为调用系统摄像机录像生成的,图片文件为调用系统照相机拍摄生成的,生成的文件都存储在自定义的文件下,这是为了把行车记录仪文件和手机中的其他文件区分开来,便于管理。为了提高用户体验,在文件管理界面,提供列表和缩略图展示功能,点击列表中的文件和缩略图都可以进行播放,同时常按缩略图会跳出自定义对话框,自定义对话框功能为分享、删除文件等。

(1)缩略图实现:无论图片还是视频缩略图均使用GridView布局,为Grid⁃View添加Adapter便可根据文件的个数动态添加缩略图个数。此处为采用回调的方式自定义Adapter继承BaseAdapter,要实现的有四个方法,其中最重要的有两个,getCount()和getView(),getCount()返回缩略图的个数,getView()返回缩略图,在返回缩略图的过程中需要创建一个ImageView对象,而利用ViewHold⁃er和convertView结合便可以不重复创建ImageView对象,con⁃vertView.setTag()便是把创建的ImageView对象保存在convert⁃View中,以待复用,convertView.getTag()便是把保存在convert⁃View中的ImageView取出,进行复用。以上是把生成的缩略图显示在界面上,而生成图片的缩略图文件则用到了位图工厂BitmapFactory,通过BitmapFactory可以生成一个原图片的拷贝,同时其格式为bitmap,便可以修改大小了,这样最终得到的图片便是需要的缩略图文件。而生成视频的缩略图文件则先通过ThumbnailUtils来创建一个视频的缩略图,然后再利用ThumbnailUtils来生成指定大小的缩略图。生成缩略图是一个耗时操作,这时可以利用异步加载,在子线程中处理生成缩略图的部分,而主线程负责显示在界面上。本系统利用自定义异步类继承AsyncTask,重写doInBack⁃ground和onPostExecute两个方法,便可以实现想要的功能。

(2)查看图片功能:为了能够全屏显示,首先通过DisplayMetrics获得屏幕分辨率,然后把获得到的图片经过BitmapFactory生成全屏的图片。

(3)视频播放功能:首先播放时通过WindowManager把状态栏隐藏,而播放视频,首先需要解码,原生的Android视频播放框架支持的格式很小,这时可以利用一些开源的框架,如百度的Android播放器SDK或者vitamio这种全能多媒体开发框架,支持硬件解码与GPU渲染。本系统采用的是百度的Android播放器SDK,通过BVid⁃eoView为媒体播放显示提供支持,BMediaController为媒体播放控制提供支持,在使用这些时,需导入Jar包、.so动态库和相应的资源文件。

2.3音乐播放器

为了实现音乐播放功能,首先自定义服务,通过继承An⁃droid四大组件之一的Service来实现后台音乐服务,Service可以理解为没有界面的Activity,但Service比Activity有更高的优先级。在定义服务中通过Handler机制实现刷新进度条、持续时间、当前音乐名称等UI界面,同时提供了播放当前音乐,播放下一首,暂停播放等方法,实现这些方法需要调用Android的MediaPlayer类。而获取音乐信息需要另一个组件ContentResolver,ContentProvider和ContentResolver是一对,Con⁃tentProvider用来提供内容给其他应用来操作,ContentResolver用来操作自己或其他应用数据。通过ContentResolver查询到Media信息,然后把这些信息封装到一个Parcelable类中,提供给Service进行处理。音乐列表的展示则通过ListView来实现。在Activity中调用Service服务时,首先通过ServiceConnec⁃tion获得自定义服务通过onBind返回的IBinder对象,通过IB⁃inder对象可以调用Service中的所有public访问权限的方法,还可以通过注册BroadcastReceiver接收Service发送的广播执行相应操作。Android的IPC通信采用了更适合自己的IBinder机制,而不是Linux的信号量、共享内存、消息队列等通信方式。

2.4天气情况

对于天气情况这种需要获取实时数据的服务,需要找提供稳定且准确数据的数据服务商,本系统选择的是百度天气API。首先通过百度地图定位返回手机使用者所在的城市,然后创建一个子线程,使用Http协议获取到天气数据,百度天气返回的天气数据为xml格式,通过解析xml即可获得实时天气数据,然后利用Handler刷新主线程,把天气情况显示在主界面上。

2.5个人中心

个人中心采用WebService和Android结合的C/S结构方法设计,要实现个人中心页面,必须要实现注册、登陆功能,首先要搭建数据库,存储用户名、密码等信息,本系统采用MySQL数据库,具体数据结构如下表1所示。首先,在MyEclipse中新建一个Web Project,其中通过JDBC桥连接数据库,JDBC桥是java提供的一套访问数据库的统一API。然后新建两个Servlet,一个为客户端登陆提供响应,一个为客户端注册提供响应,都是部署在Tomcat下客户端发送请求,服务器端完成注册或登陆验证的操作,这之间通过Request和Re⁃sponse来携带数据,最终实现客户端登陆、注册功能。

总结

针对当前行车安全的现状,设计并实现了基于Android的行车记录仪APP,这种设计不但有助于改善交通乱象,同时节省了硬件成本。在功能设计上,该系统不仅可以对路径进行定位和导航,可以拍照、摄像,并对图片和视频文件进行管理,同时提供音乐播放等功能,充分满足用户驾驶过程中的需要。随着用户空间的不断完善,使用者会体验到更满意的服务。

以上就是我们深圳市组创微电子有限公司为您介绍的基于Android的智能行车记录仪的设计与开发示例。如果您有行车记录仪方案开发需求,可以放心交给我们。我们代理多种单片机、语音芯片、双模蓝牙IC、wifi芯片。品牌有松翰单片机、应广单片机、杰理蓝牙、安凯蓝牙、全志、瑞昱(realtek)。我们的技术服务范围有:PCB设计、单片机开发、蓝牙方案、软硬件定制开发、APP开发、小程序开发、微信公众号开发等。还可以承接智能电子产品方案设计、生活电器开发、美容仪器研发、物联网平台应用、智能家居控制系统、TWS耳机、蓝牙耳机音箱开发、儿童益智玩具方案开发、电子教育产品方案设计等。