基于Android平台的博客客户端.doc_第1页
基于Android平台的博客客户端.doc_第2页
基于Android平台的博客客户端.doc_第3页
基于Android平台的博客客户端.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Android平台的博客客户端设计与实现杨定标广西大学计算机与电子信息学院 南宁 530004摘要: 本文主要介绍采用Google发布的Android SDK开发基于Android系统的手机软件,解决手机网民不能随时发布博客的需求。在实现该系统中,需要服务器端与客户端进行数据交换,在实现中使用的是自己搭建一台服务器来解决这个问题。服务器端需要解决接收客户端发来的指令并作相应的处理,封装客户端的数据并返回给客户端。客户端需要解析并显示返回的数据以便以后操作。关键词:手机软件、Android、博客 Design and Implementation of blog client based on AndroidYang DingbiaoComputer and Electronic Information College, Guangxi University, Nanning 530004Abstract:This paper introduce the Android system-based phone software to solve the mobile phone users can not publish their blogs. In order to implement this system, we need a server to exchange data with the client, so we should build a server to solve this problem. The server-side need to receive the processing instructions client send, and packaging and returning the data client needs . Then the client needs to parse and display the returned data.Keywords:Phone software、Android、Blog40 引言随着无线网络的不断发展,智能移动终端的迅速普及,越来越多的人开始体会到移动互联网带来的深刻变革。移动互联网不仅改变了人们的生活方式,甚至对人们工作方式也产生了巨大的影响。因此,本文提出了并实现了一种基于android平台1的博客系统,用户可在手机通过客户端来。在整个发表博客过程中脱离电脑和网络的限制。可解决用户在无电脑在身旁而无法发表博客的困扰。1 系统设计1.1 系统技术选型Android客户端使用Java技术,网络通信使用TCP连接,中间WEB服务器采用Servelt技术响应客户端请求,后台采用JDBC访问数据库。WEB服务器采用开源的Tomcat服务器,数据库采用MySQL。1.2 系统整体架构APK(Android Package)客户端结构类似于B/S结构,由APK客户端、服务器和数据库构成,客户端Android系统智能手机具有前端处理与计算能力,而且可通过无线网络访问Web服务器。系统体系结构如下图1: 图1 系统架构图1.3 服务器端数据库设计本系统采用MySQL数据库来模拟后台数据库2。包括用户表(user)、头像表(head)、好友表(friend)、日志表(diary)、日志评论表(comment)、访客表(visit)、相册表(album)、图片表(photo)。系统数据库设计如下图。图2 数据库设计2 系统功能及其实现2.1 服务器端功能2.1.1 服务端监听客户端请求Android客户端采用套接字连接连接服务器端(TCP连接)来与服务端进行数据交换,根据TCP连接原理,服务器端需监听客户端是否有连接请求,该监听程序需要在服务器端一直运行以避免某些客户端发出的请求未被接受。为此,在服务端为每个监听开启一个线程(Thread),当客户端请求连接是接受连接请求(accept(),接受连接后为该线程创建一个接收客户端发送的指令的线程,该线程还得解析指令并做相应的处理,如:将客户端需要的数据封装并回复给客户端。为了实现服务器端能实时处理客户端的请求,在服务端使用了ServletContextListener接口来监听Servlet Context的生命周期(Web应用生命周期)。public void contextInitialized(ServletContextEvent sce)trymServletSocket = new ServerSocket(8888);mServeltThread = new ServerThread(mServletSocket);mServeltThread.start();catch(Exception e)e.printStackTrace();2.1.2 数据存储功能客户端发送指令过来,服务器根据指令做相应的处理,这些处理可能涉及到操作数据库,数据库操作分为查询、新增、修改和删除。由于数据库需要存储诸如jpg,png等类型的二进制文件,在操作数据库时需分别对待这类类型数据的操作。在操作数据库时,使用的是预编译的、支持批量处理的、效率更高的PreparedStatement,由于操作数据库的操作较多,在这里给出具有代表性的几个操作:获得Blob对象、插入Blob对象和修改日志操作。public static Blob getPhotoData(String id) Blob result = null;try mConnection = DBUtil.getConnection();mPreparedStatement = mConnection.prepareStatement(select p_data from photo where p_id=?);mPreparedStatement.setInt(1, Integer.valueOf(id);mResultSet = mPreparedStatement.executeQuery();if (mResultSet.next() result = mResultSet.getBlob(1);System.out.println(getPhotoData-获得blob数据,id为+id); catch (SQLException e) e.printStackTrace(); finally DBUtil.closePre();return result; 对于数据库操作,有一点肯定不变的是先获得数据库连接,预编译SQL语句,数据库操作完之后再将数据库资源释放。2.2 客户端功能Android客户端主要功能如图3,主要分为登录注册、日志模块、好友模块、相册模块、心情管理模块、访客模块。客户端还负责封装解析与服务器端通信数据并显示在客户端以供用户操作。图3 客户端功能2.2.1 客户端发送指令并解析服务器返回的数据客户端以TCP方式连接服务器,在客户端只需要指定IP和端口号即可创建连接对象,创建连接后客户端可向服务器发送指令,服务端端接收指令后对其进行解析,进行相应的操作以满足客户端的需求并将客户端需要的数据封装发送给客户端,客户端接收到这些数据后进行解析。2.2.2登录注册为了使用该系统,用户需要注册一个帐号,为此,用户需将个人信息存储到博客网站的数据库中,注册时要求填写用户的各种详细信息:用户名、密码、邮箱、心情及头像信息,其中心情可选用默认的,头像在注册时也是选用默认头像。用户id在注册成功后系统会返回。如图4。当用户注册成功后可输入帐号和密码,向服务器发送登录请求,登录成功后进入客户端主界面如图5。 图4 登录 图5 注册2.2.3日志模块 在登入成功后,用户可以进行发表日志,浏览他人日志等操作。进入日志界面时获得该用户的日志列表,当用户点击某一篇日志时浏览该篇日志,浏览时如有心得体会用户可对该篇日志发表评论及浏览他人对该篇日志的评论如图7,长按该日志是可选择对该篇日志的操作3:修改或删除,如图6。 图6 日志操作 图7 评论用户日志以列表的形式形式展现,当用户进入日志模块时客户端向服务器获取该用户的的所有的日志列表,日志列表以时间倒序排序排列。日志列表界面实现代码如下:每一个列表的内容通过适配器注入到该ListView中,适配器继承自BaseAdapter,主要实现重写BaseAdapter中的方法。Overridepublic View getView(int position, View convertView, ViewGroup parent) final ViewHolder holder;if (convertView = null) holder = new ViewHolder();convertView = LayoutInflater.from(mContext).inflate(R.layout.layout_diary, null);holder.title = (TextView) convertView.findViewById(R.id.tv_diary_title);holder.content = (TextView) convertView.findViewById(R.id.tv_diary_content);holder.sure = (Button) convertView.findViewById(R.id.btn_diary_edit);holder.del = (Button) convertView.findViewById(R.id.btn_diary_del);convertView.setTag(holder); else holder = (ViewHolder) convertView.getTag();2.2.4相册 在相册模块中,用户可上传相片,新建相册,删除自己的相册及照片,以及修改该相册对外可见性,如图8。 图8 相册权限修改图9 搜索并添加好友2.2.5好友 好友是互动的基础。用户可通过搜索来实现添加好友,如图9。但该添加是单向添加。用户若不想与某用户为好友也可长按该好友进行删除。2.2.6心情模块 心情模块只允许用户更新当前心情。对于用户以前的心情直接覆盖不考虑。2.2.7访客模块 在访客模块中,主要是提供一个进入访客博客空间的入口,实现空间互踩功能。3 总结 论文实现了一个基于Android平台的博客客户端。实现了博客的基本功能,如日志的发表更新、相册编辑上传、好友的查找添加删除以及心情更新等。本客户端具有良好的可扩展性,当有用户新需求是只要服务端和客户端同一数据传输格式即可开发新功能。在实现该系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论