针对Android智能终端信息分享中实时互动体验性不强的特点,开发一款图文并茂的信息实时分享系统。本系统包含用户实时拍摄图片、编辑信息、上传信息、接收信息等功能,经移植测试界面简洁,操作方便,用户体验性较好。 Since real-time interactive experience for Android smart terminal information sharing is weak, we develop a highly illustrated real-time information sharing system. This system includes functions as following: taking real-time pictures, editing information, uploading information, receiving in-formation and so on. Portable tests show that this system has simple interface, easy operation and good user experience.
江城1,陈战胜1,2*
1北京联合大学应用科技学院,北京
2北京交通大学计算机与信息技术学院,北京
收稿日期:2015年12月29日;录用日期:2016年1月14日;发布日期:2016年1月18日
针对Android智能终端信息分享中实时互动体验性不强的特点,开发一款图文并茂的信息实时分享系统。本系统包含用户实时拍摄图片、编辑信息、上传信息、接收信息等功能,经移植测试界面简洁,操作方便,用户体验性较好。
关键词 :Android,信息实时分享,上传信息
Internet网络、计算机通信技术的快速发展,以及3G业务的普遍展开,智能移动终端悄然实现了从通讯工具到互联网终端的华丽转身,使得人们在异国他乡旅途中、城市中的每个角落驻足时,有一种将美丽瞬间拍摄、上传网络与大家实时分享的美好愿景,也有一种“似曾故人”获取友人分享的此时此景的渴望。
目前,Android市场上以微信朋友圈、QQ空间和新浪微博为代表的信息分享应用,有着广泛的消费群体,性能品质卓越,深受民众喜爱。这些软件用户基数庞大,属于以社交为目的的简单分享,软件操作步骤基本相同,分享内容多为自己的心路历程,分享形式多为图片或文字。同时,也存在着一些具有创意的类似APP应用。其中,孔令美[
根据设计需求与文献参考,本文设计了基于Android平台图文并茂的信息实时分享系统,该应用以性能为先,满足用户拍摄图片、编辑信息、上传信息、接收信息等需求,让人们享受“随时、随地、共分享”的乐趣,避免了一味追求外观美功能全给用户智能终端带来资源紧张的不足。经移植测试,该系统性能较佳、界面简洁且便于用户使用,其特点主要表现在分享心情、分享美景,让用户拥有分享的动力,体验分享的乐趣和互动的新奇,获得互动分享中展现自我,为你点赞,为你评论的满足感。
Android系统作为移动设备软件栈,采用四层架构设计,从底层到上层分别是Linux内核层、系统运行库层、应用程序框架曾及应用程序层。
Linux Kernel层中包含摄像头驱动、内存驱动、键盘驱动、显示驱动等核心系统服务,是介于底层硬件和上层应用之间的抽象层,负责上下层之间的交互。各层各尽其职,提供固定的SAP (Service Access Point),适应软件工程高内聚、低耦合的开发理念。
Android系统运行库层分为本地库和运行环境,本地库用户提供Android系统不同组件调用的函数库,便于开发者方便开发,主要包含Surface Manager、SQLite、SSL等九大部分;运行环境主要由Dalvik虚拟机和Java库组成,为应用程序提供运行环境。
应用程序框架为Android开发的基础,提供应用程序API,主要包含Activity Manager、Window Manager、Location Manager以及Notification Manager等九大部分。应用程序层运行在Dalvik虚拟机上,这些应用程序既包含Android平台自带的系列核心应用程序,如地图、邮件、联系人管理程序等,也包括自行下载安装的应用程序。Dalvik虚拟机可执行文件格式是.dex,该格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布它的功能且任何其他应用程序可以使用这些功能。
拥有一款高分辨率的Android智能移动终端是旅友们的必备出行工具,配以简洁易用的图文并茂信息分享软件则更显得相得益彰。经调研,在智能移动设备上流行的类似图片分享软件有Picasa Web Albums、Flickr、Smugmug、Oggl和Instagram,分别介绍如下。
1) Picasa Web Albums
该软件适用于Mac OS,图片管理方便,提供将图片上传共享到Google Pages上。
2) Flickr
Flickr是国内外的知名老牌图片分享软件,在港澳台地区应用广泛。
3) Smugmug 专业摄影师的乐土
Smugmug是专业摄影师的乐土,该软件提供专业的照片分享和管理服务,用户可以方便、快捷地增加、分享照片,并且可以上传原尺寸照片的软件,用户会体验到百分百的自由,是用户的图片私人领地。
4) Hipstamatic oggl
Oggl将拍摄体验摆在首位,通过分享最棒的照片讲述自己的故事,同时也可以看看 Hipstamatic团队以及世界各地其他优秀摄影师的策展精选。
5) Instagram
Instagram是一款支持iOS、Windows Phone、Android平台的移动应用,允许在任何环境抓拍自己的生活记忆,然后一键分享到Twitter、新浪微博等广大受众社交平台。
此外,还有500px专业摄影师图片社区,Photobucket影像寄存、视频寄存与照片分享服务网站,喀嚓鱼网上冲印服务以及PATH社交网等,都是与照片信息分享有关的应用网站。
针对信息分享软件的调研分析,本文决定走“界面简洁、功能满足、操作简便”的路线,从用户需求出发, 绘制用例图如图1所示,设计思路如下。
1) 程序初始化,系统引导页面。
2) 用户拍摄照片,压缩冲编码后保存本地。
3) 用户编辑照片,配以文字,选择分类等,上传服务器。
4) 服务器接收用户上传信息,并保存信息到指定存储位置,存入数据库。
5) 根据用户上传信息,用自定义随机函数调用匹配信息,返回客户端。
6) 用户查看返回信息,可以进行评论、吐槽等。
从用户体验“随时、随地、共分享”的调研分析,Android智能终端信息实时分享系统的功能模块如图2所示。如图2所示,该系统分为客户端和服务器端两部分。其中,客户端包含用户拍摄图片、编辑信息、上传信息、接收服务器端推送信息并显示等功能,服务器端包含接收客户端上传信息、保存图片,写入数据库、选定匹配信息并推送信息等功能。其中,编辑信息是在用户拍摄图片的基础上,添加配备文字信息和信息类型等,保存图片是将图片保存到服务器端指定位置,将图片路径信息写入数据库。
本文使用Eclipse集成开发环境,采用Java语言,设计并实现了基于Android平台的信息实时分享系统,Android程序的编译运行有两种方法,一种是利用模拟器AVD在电脑上模拟运行;另一种是直接利用Android设备进行运行。本文利用AVD在电脑上模拟Android环境编写代码、调试运行,最后移植到两款以上Android设备进行验证检测效果。
为了提升开发效率,遵循如图3所示的系统开发工作流程。在图3所示的流程中,会涉及takePhoto()调用系统相机进行拍照,createSDCardDir()判断存放照片的目录是否存在,然后继续图片编辑后,进行网络上传,上传后服务器会根据照片的时间或类型,采用自定义算法Selectphoto()选择一张照片并返回给客户端。其中,自定义算法是在随机函数的基础上,首先获取用户上传照片的时间,确定返回照片的类型或地点,在符合的时间范围内随机挑选一张图片,推送到客户端并显示。
本小节主要介绍系统客户端和服务器端的实现代码,限于篇幅主要介绍系统过场动画、拍摄图片,
图1. 系统用例图
图2. 信息实时分享系统功能模块图
图3. 系统工作流程
上传信息服务器以及服务器推送信息等功能,分别介绍如下。
1) 系统过场动画的实现代码
该系统的过场动画犹如古代的大门徐徐打开,让人有一种期待的感觉。具体实现是通过Intent类的跳转,Android内置的Animation动画、计时线程以及Handler类等技术实现控制跳转,部分重要代码如下所示。
2) 拍摄照片功能的实现代码
拍摄照片功能的实现思路是点击拍摄按钮,调用自定义函数createSDCardDir()检测本地是否存在指定文件夹filePath并获取系统当前时间timeString,然后调用系统相机实现照片拍摄,并以imeString.jpg为文件名将其保存至filePath。然后,利用Android的onActivityResult机制获取刚保存的照片,使用Compress方法将图片适当压缩,将其显示于photoShow上。拍摄照片功能中部分实现代码如下所示。
3) 上传信息至服务器的实现代码
信息上传的实现思路是点击上传按钮,初始化PostImage Thread类,重置上传状态为true,启动PostImageThread线程,创建HttpURLConnection类以Post方式发送数据包到服务器,部分实现代码如下。
随着相机分辨率的提升,用户拍摄的照片数据量较大,在上传时采用字节流形式,而服务器端向客户端返回数据量较小,采用传输速度和安全性较高的JSON格式。
本文采用AVD在计算机编程实现后,移植到小米2和华为荣耀6 plus分别进行测试,界面美观,使用便捷且能够满足用户信息实时分享的需求,功能展示如图4所示。
其中,图4(a)为经过动画和导航展播后进入的系统主界面,图4(b)为调用系统相机界面,图4(c)为拍照保存之后显示的效果图,图4(d)是信息上传处理页面,图4(e)表示上传成功,图4(f)为服务器端推送的随机照片。
图4. 信息实时分享系统功能运行图
基于Android平台图文并茂的信息实时分享系统的研发是为了摆脱日志式的信息分享,而是旨在通过信息的分享获取与用户兴趣相投者信息分享的互动,体验一种新奇,一种趣味。
本文基于Android智能终端平台信息实时分享系统的研究与实现,借鉴了微信朋友圈、新浪微博等交友平台的理念,融入了信息“分享、互动、实时”的理念,既具备了记载用户旅程心得的历程,又获取了一路同行者的分享,迎合了部分群体用户的需求。
综上所述,本文开发的信息实时分享系统具有如下特点:
1) 该系统分为模拟器和不同型号的真机模拟进行测试,效果不错。
2) 在Wifi覆盖条件下,信息上传和服务器推送的实时速度满足用户心理需求。
3) 信息在上传过程中配有文字,自动获系统时间,给出风景、人物等类型选项,便于用户进行信息编辑,操作便捷。
4) 该应用以图片分享为前提,便于用户寻找同一时间间隔内,同一区域内相同爱好者分享的信息互动,收获惊喜。
5) 服务器端筛选照片的算法基于图片类型和时间临近的原则,算法简单,实时性较好。
本应用目前存在不足主要是由于不能保证用户所有用户都会打开GPS地位,所以在图片上传过程中采用用户自动填写地点的方式,因此地点信息不够准确,会使得返回地点类型的照片匹配度不够精确。此外,服务器端图片帅选的自定义算法功能简单,图片的吐槽、美化等功能都是今后继续完善的地方。
本软件经测试,功能完备,界面简洁,使用方便,适用于喜欢旅游、拍照的用户。经过不同机型的测试,运行速度性能尚佳,具有一定的实用性。
北京联合大学“启明星”大学生科技创新项目(201511417SJ029和201511417SJ045),北京联合大学新起点计划项目资助(zk10201303),北京市职业院校教师素质提高工程资助项目(京教财[
江城,陈战胜. Android智能终端信息实时分享系统的研究与实现 Research and mplementation of Android Intelligent Terminal Real-Time Information Sharing System[J]. 计算机科学与应用, 2016, 06(01): 1-8. http://dx.doi.org/10.12677/CSA.2016.61001