基于Android的微博客户端系统设计
2015-05-30刘强吴文高熊星星
刘强 吴文高 熊星星
摘 要: 微博是伴随着移动互联网和智能手机的广泛普及所产生的一个新颖的社交媒体,成为大众日常生活的一部分。文章提出一个基于Android移动终端的微博客户端系统设计方案,采用OAuth认证,与微博服务端连接,实现以微博为中心的多应用机制,包含微博发布、浏览、转发、评论、收藏等全面的个性化功能。
关键词: 微博客户端; Android; OAuth认证; 微博服务端
中图分类号:TP316.8 文献标志码:A 文章编号:1006-8228(2015)05-50-02
Abstract: Micro-blog is a new social media with a wide popularization of mobile Internet and intelligent mobile phone products has become a part of people's daily life. This paper presents a scheme of mobile micro-blog client terminal system based on Android, using OAuth authentication, connected with the micro-blog server, realizes the multi application mechanism to micro-blog as the center, contains micro-blog release, browse, comment, forwarding, collections and other personalized comprehensive functions, and has the realistic meaning.
Key words: MicroBlog clien; Android; OAuth authentication; microblog server
0 引言
随着移动互联网和Android智能手机的普及,越来越多的人喜欢使用移动终端来查看自己的微博,朋友圈等,使其成为日常生活的一部分。因此,设计一款轻便的、可靠的、个性化的微博客户端系统,即以微博为中心,实现微博发布、浏览、转发、评论、收藏等全面的功能,显得很必要。
1 基于Android的微博客户端系统总体设计
微博作为一种社交媒体,使用它的用户主要目的在于借助微博快速发布自己最新动态或者其他消息。为了使Android智能手机用户能够方便查阅自己的微博,实现以微博为中心的多应用机制,遵循软件工程的开发方式,在调研的基础上,将所设计的基于Android的微博客户端系统,主要的功能模块划分为以下几个方面。
⑴ 用户登录模块
建立以手机作为终端登录微博系统的首界面。进入微博系统时,用户需要输入用户名和密码,检查用户名及其密码的有效性。登录有效则存入手机数据库,并进入微博系统,否则弹出错误信息。在手机终端只需要首次输入用户名和密码就可以了,以后直接从数据库调用进入微博系统[1]。
⑵ 微博功能模块
用户登录之后进入个人微博主页面,设置为五个部分:微博发表、评论、转发、收藏和分享。
微博发表:发表属于自己的微博。
微博评论:对注册用户所关注的用户进行评论以及回复。
微博转发:对注册用户关注的用户所发的微博进行转发,从而变为自己的微博。
微博收藏:对注册用户关注的用户所发的微博进行收藏,从而使所收藏的微博进入注册用户的收藏夹中。
微博分享:对注册用户关注的用户所发的微博进行分享,可以分享到主流的网站,如qq空间、新浪微博、天涯论坛等等。
⑶ 好友粉丝模块
注册用户登录进入个人主页面后,寻找自己好友的场所,其内容就是当注册用户在其他用户中点击了“加粉”之后,该用户就已经成为了注册用户的粉丝。同样的规则,如果其他用户对注册用户点击了“加粉”,那么注册用户也成为了其他用户的粉丝。
⑷ 搜索功能模块
用户登录以后,主要针对以微博和用户这两类对象的查找。在“发现”界面,输入所要查找的微博(用户)的关键字,进行微博(用户)的查找。
⑸ 消息模块
在用户登录后,提供的相关消息由@我的、评论我的、粉丝三部分构成,查看自己或者是粉丝的基本信息,如用户头像、用户名、所在地、用户网站、用户宣言、用户关注的人、关注用户的人、该用户的所有微博、该用户收藏的所有微博等。
⑹ 微吧
类似贴吧,用户可关注自己感兴趣的微吧,在相关微吧内发帖子、评论和点赞相关帖子。
⑺ 会议讨论组
类似QQ的群功能,是专为会议或临时讨论而建立,基于即时聊天,无需加入好友信息[2]。在举行会议时,每个人点击会议按钮,接收信息,系统自动将一定范围内的人加入到一个临时讨论组中,在该讨论组中,可以上传文件,发布文件,以供参加会议的人员浏览,也可以进行相关话题的讨论。
基于Android的微博客户端系统是通过手机客户端与微博服务器进行交互,进行请求和回传数据,是一种典型的客户机/服务器方式,其业务流程设计如图1所示。
2 微博客户端数据的存储与管理
微博客户端系统的数据存储与管理采用Sqlite数据库。由于客户端系统中实际涉及到的信息是通过和服务器交互得到的,所以设计一个表User,它所存储的数据是放在Android终端的Sqlite数据库中,用于存储用户登录时所需要的信息及OAuth认证通过后所需的一些参数信息。
为了确保用户个人信息的保密性,在手机客户端与服务器进行用户个人数据传递之前,使用OAuth协议对第三方开发软件屏蔽用户的账号和密码信息,只有在获得用户许可情况下,客户端才能从服务器下载和向服务器上传用户的微博数据[3]。显示由微博服务器传回的数据时,使用JSON对其进行解析处理。在显示数据时,恰当的使用适配器模式,可以将显示界面设计的更加友好。
3 基于Android的微博客户端系统特色
在实现微博基本功能的基础上,着重优化系统的网络访问速度和节约网络流量,主要特色体现在以下四个方面。
⑴ Android数据存储技术,将已浏览数据保存到数据库中,下次可以在无网络的情况下浏览数据,这样可以提高软件的加载速度和节省网络流量[4]。通过使用Android自带的Sqlite数据库,来保存微博信息。例如,个人的信息、基本的评论和回复的记录数据,以及听众和自己关注的人等信息,这些信息均作为缓存数据处理,避免每次都要从服务器上获取数据,加大网络流量的开销,对于不经常变化的数据,保存在本地即可,用到时直接从本地加载显示。采用开放的OAuth协议为用户资源的授权提供一个安全的、开放而又简易的标准。
⑵ 采用图片缓存技术(图片异步加载)。将从网络上下载的图片保存到手机内存上,下次再获取相同图片时,先从内存卡上查找对应图片,如果有就不加载网络图片,如果没有则加载网络图片,并保存到手机上。对于从网上下载到手机终端的图片,建立一个线程池,存放线程,在需要加载图片时,启动一个线程,访问网络,获取相应的图片[5]。随后再转交给UI线程刷新界面显示图片。
⑶ 数据模型的封装。对于从网络上获取的json数据进行解析处理,抽离出不同的实体模型,方便以面向对象的方式开发,比较好维护。
⑷ 任务分离。主线程(UI线程)主要是负责控制UI界面的显示、更新和控件交互。在Android程序创建之初,一个Process呈现的是单线程模型,所有的任务都在一个线程中运行。因此,UI线程所执行的每一个函数,所花费的时间都应该是越短越好。而其他比较费时的工作(访问网络,下载数据,查询数据库等)交由子线程去执行,以免阻塞主线程,即UI线程只负责刷新界面。
4 结束语
本文以微博的多应用需求为出发点,基于Android移动终端设计微博客户端解决方案,采用Sqlite数据库存储、OAuth认证等数据管理技术,实现与微博服务端数据库连接,验证用户名和密码的一致性和正确性,强化了微博应用的安全性设计。采用图片缓存、json数据模型封装、线程式任务分离等技术,实现Android移动终端的异步加载和离线浏览功能,以提升微博客户端的网络访问速度和减少网络流量。在实现微博发布、浏览、转发、评论、收藏等基本功能的基础上,实现了微吧和会议讨论组等个性化功能,该设计应有广泛的应用前景。对于微博客户端的同步功能,即同一个微博账号在不同终端(Android、PC终端)登录后,其微博历史信息同步迁移,便于微博信息的共享和查阅,这个同步功能还有待于后续进一步设计和实现。
参考文献:
[1] 王世江,佘志龙,陈昱勋等.Google Android SDK开发范例大全[M].人民邮电出版社,2011.
[2] 赵宏伟.Android NDK开发环境实现与应用[J].电脑知识与技术,2010.35:3261-3263
[3] 彭艳,杨欧.Android平台的数据存储技术[J].计算机系统应用,2012.5:192-194
[4] 白文江.基于Android平台的移动应用开发研究[J].太原大学学报,2011.3:46-48
[5] 李杨,冯刚,李亮.基于Android的多媒体应用开发与研究[J]. 计算机与现代化,2011.4:92-93