Android客户端(精选九篇)
Android客户端 篇1
在当今信息技术高速发展的时代,学习的自主化、智能化和终身化使得远程教育必须要与时俱进,就是要运用信息技术改善远程教学系统以满足人们的迫切需求。远程实验[1]是通过互联网远程操作实验仪器,在异地完成真实的实验过程。远程实验不受时空限制,特别是随着平板电脑、智能手机等移动终端的普及,Android系统占据了主流,只要连接了Internet,就可以根据实验者的水平和需要,随时随地使用客户端去选做各种实验,这种移动学习环境下的实验教学模式增加了教学的灵活性,具有广泛的应用前景。
为了满足移动学习的需求,本文结合远程控制实验的系统特点,设计了一种基于Android的客户端,实现了远程控制实验的移动性操作。
1 系统硬件及其工作原理
远程实验系统的硬件结构如图1所示,服务器通过串口连接控制模块,控制模块连接实验仪器,通过执行服务器传送过来的指令控制实验仪器,并采集实验数据。摄像机捕获现场仪器的运行情况通过USB接口反馈给服务器,服务器再通过网络及时反馈给远程的操作者。
控制模块主要由主控单片机和相关外设组成,服务器上使用LabVIEW软件与控制模块进行通信,使用VLC media player进行流媒体数据的编码和传输,使用Tomcat进行搭建Web应用服务器,响应HTML页面的请求访问,提供了实验数据处理功能。
2 客户端设计
客户端是远程实验系统的一部分,实验者直接在客户端上进行远程实验的操作,具有实时观察实验现象、实时远程控制实验仪器、实验数据接收与处理等功能。
2.1 Android应用程序开发环境
开发环境[2]由JDK(Java开发工具包)、Eclipse(开发Java程序的软件工具)、Android SDK(Android专属的软件开发工具包)、ADT(开发Android应用程序的插件)、NDK(原生开发工具包)5部分组成,通过安装和进行相应的配置即可完成开发环境的搭建。
2.2 功能流程
远程实验的实验仪器是实际设备,远程用户使用客户端通过网络对其进行操作,控制实验设备的运行。客户端的整体功能如图2所示,其中观察实验现象部分是先要接入流媒体服务器,再把通过HTTP协议传输过来的H.264视频流进行解码[3],最后通过控件SurfaceView播放出来;控制实验仪器部分主要是Socket通信,在主线程下申请子线程进行处理,具体采用Handler消息传递机制;数据处理部分是下载服务器端采集为txt格式的数据文件,读取后在HTML5上使用canvas绘制波形图,这种可视化的数据分析可以让实验者读取数据进行公式运算。
2.3 关键技术
2.3.1 JNI接口
将开源播放器VLC[4]应用到Android上,需要通过将VLC的源代码编译成库文件,再通过Android提供的JNI接口调用,因为VLC的代码完全由C/C++编写,在需要调用第三方C/C++库文件时,使用JNI接口的应用[5]可以让开发者实现一些用Java语言难以实现的功能。
在上层通过以下代码载入已经编译好的libvlcjni.so库文件:
LibVLC类通过声明库中的本地函数就可以在上层应用程序调用。
在主类MainActivity中,调用VLC接收服务器端发送的视频流,经过程序处理后进行播放,关键代码如下:
2.3.2 多线程应用
采用多线程技术可以避免UI线程的阻塞,其中Handler Message[6]方法最为常用。具体操作是在新启动的线程中发送消息,在主线程中获取、处理消息,通过回调的方式,主线程能够处理先启动线程所发送的消息。
在观察实验现象的同时,要对实验仪器进行控制,这就需要使用多线程来实现,主线程是视频播放,实验仪器控制就会开启新的子线程来执行,简单的代码实现如下:
在主线程中定义handler:
在另一线程中执行任务:
控制实验仪器通过Socket通信[7]实现,包括3个步骤:建立连接、发送数据、关闭套接字。核心代码如下:
整个Socket通信过程需要采用try…catch机制。
2.3.3 HTML5<canvas>标签
<canvas>标签是HTML5中的新标签[8,9],只是一种图形容器,必须使用脚本来绘制图形,<canvas>有一个基于JavaScript的绘图API,所以在绘图方面非常方便。其基本的使用步骤如下:
在Android WebView控件中使用JavaScript,必须在WebView中使能JavaScript,还要解决乱码问题,代码如下:
3 应用实例
使用该客户端进行操作远程控制实验,选用单摆法测重力加速度实验[10],因为此实验需要实时观察实验现象、远程控制电机的开关、采集传感器数据进行运算等内容,最后通过实验的完成进而算出重力加速度。通过读图,输入t1=2.79 s,t2=0.83 s,然后客户端会自动计算出重力加速度,计算原理是由周期,得到重力加速度g=4π2L T2,客户端的数据处理界面如图3所示。
4 结语
本文设计的客户端,结合基于C/S模式的远程控制实验系统,实现了在客户端上通过互联网完成远程实验的操作过程。实时观察实验现象、低延时控制实验设备、准确处理实验数据等功能增强了远程实验的真实感,有助于更好地掌握实验原理。本客户端除了应用到以上实验外,还可以应用到其他物理实验的教学当中。基于Android平台的远程实验客户端突破了传统实验的时空限制,提高了实验设备的利用率,最大限度地共享实验教学资源。
摘要:为了让实验者在移动终端上完成远程实验的异地操作,设计一种基于Android平台的远程实验客户端。通过对开源播放器VLC进行二次开发,使用Socket通信传输跨平台控制指令,利用HTML5中的canvas标签绘画波形图,实现客户端进行远程实验的视频监控、远程控制实验仪器和数据处理等功能。以单摆法测重力加速度实验进行效果验证,实测结果表明,客户端具有稳定可靠、实验数据处理精度高、人机交互性好等优点。
关键词:远程实验,Android,客户端,HTML5
参考文献
[1]吴先球,刘朝辉,叶穗红,等.网络环境下远程实验的技术探讨[J].实验技术与管理,2008,25(6):30-33.
[2]公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(8):85-89.
[3]刘龙飞,章坚武.基于H.264的Web视频监控客户端设计与实现[J].现代电子技术,2011,34(19):27-30.
[4]李宗辰,朱秀昌.基于VLC的Android多路视频监控系统[J].现代电子技术,2013,36(24):63-66.
[5]杨丰盛.Android应用开发揭秘[M].北京:机械出版社,2010.
[6]闫伟,叶建栲.多线程技术在Android手机开发中的应用[J].信息通信,2012(1):46-47.
[7]孙剑,董超,夏继媛,等.基于Android的Socket(TCP/IP)在LED灯光控制系统中的应用[J].深圳职业技术学院学报,2012(5):19-23.
[8]庞程,崔宣,粟潘,等.基于Android平台HTML5的研究与实现[J].机械管理开发,2012(6):136-137.
[9]佚名.HTML<canvas>标签的具体使用方法[EB/OL].[2013-05-07].http://www.w3school.com.cn/tags/tag_canvas.asp.
Android客户端 篇2
SecuXabber 是一个安全的 Android 上的 Jabber 客户端,使用加强的、不对称的加密 XMPP 协议,在应用的启动时生成密钥配对,
用户可通过蓝牙发送他们的公钥到其他 SecuXabber 用户。面对面的检查确保了公钥的真实性。一旦密钥被双方导入后,所有的同时都将使用 4096 位加密。支持所有 XMPP 特性,支持多帐号,高度可定制等等。
项目主页:www.open-open.com/lib/view/home/1384438052664
Android客户端 篇3
关键词:客户端; Android; 校园通
中图分类号:TP311.52 文献标识码:A 文章编号:1006-3315(2014)08-152-001
一、引言
近年来,随着移动通讯技术的不断发展,手机已经成为了人们生活中不可或缺的移动设备。手机不仅仅拥有传统的打电话、发短信等基本的功能,基于android系统的智能手机强大的信息处理能力和可扩展能力,以及3G网络高速的数据传输,大量基于此系统的移动客户端被开发出来。
目前,各大高校基本都搭建了自己的校园网以及相应的校园通管理系统,师生通过电脑及互联网,可以很方便的使用系统功能。比如,查看图书信息、课程资料下载、师生互动等。但对于身边没有电脑的师生来说就显得不是那么方便了。目前校园内都覆盖的有3G和WLAN信号,用户使用智能手机可以不受时间和地域限制,通过移动客户端获取信息。目前,在高校智能手机的使用量甚至超过了PC,智能手机系统以android普及面最广,受众群体最大。因此本文介绍了一种以android为开发平台的校园通客户端,最大程度的满足了师生对获取信息的需求。
二、安卓平台架构简介
Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成[1]。它提供包括SDK、KeyApps、Middleware、Linux Kernel四个部分在内的全套手机软件方案。它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用。
三、系统功能模块设计
整个开发过程分为前台和后台两部分,其功能为:前台在手机端运行,供用户使用,可以实现图书信息、公告信息、课程信息的查询等功能。
后台为管理员使用,主要实现针对数据库的管理功能。主要包括:图书管理、课程管理、学生管理、公告管理等。
四、系统的实现
基于android平台的校园通系统主要由客户端模块和服务器端模块组成。利用android平台提供的API可以实现客户端的功能和界面设计,服务器端采用JDBC访问数据库。客户端和服务器端的数据交换通过Apache+Servlet技术来完成。
1.服务器端
服务器使用DAO+MVC的模式,按照分层结构来设计,数据库的访问通过JDBC来实现,当接受到HttRequest请求时,返回相应数据[2]。服务器端包含了数据库访问接口以及相应的实现类、过滤器类和处理逻辑业务的servlet类。处理逻辑业务的类包括:dengluServlet,用于对用户登录信息进行验证,并把相应的验证结果返回前台。studentServlet,通过后台完成学生信息的管理。BookServlet,用于图书管理,实现图书信息和借阅信息的查询。courseServlet,提供课程信息的查询和参考资料下载。noticeServlet,对校园公告进行管理,管理员在后台实现公告的增删改查功能。
2.客户端
Android系统平台提供了常见的API函数,本系统使用了4个组件来构建,包括了意图接收器、服务、内容提供者和活动[3]。客户端主要分为以下几个模块实现:
(1)登录模块:当用户使用客户端软件登陆系统的时候,需要输入用户名和密码。提交的数据通过ApacheHttp传递给服务器端的dengluServlet处理,如果匹配失败,则弹出错误提示并返回登陆界面,匹配成功可以进入主菜单模块。提供用户登录的servlet为dengluServlet,重写其doPost()和doGet()方法,该servlet是用来处理普通用户和管理员登录的请求。登录的参数有username、userpassword,
部分代码如下:
PrintWriter out = response.getWriter();
System.out.println("welcome");
String xml=null;
//获得帐号
String flag=request.getParameter("flag").trim();
String username=
request.getParameter("username").trim();
String password=
(String)request.getParameter("password").trim();
LibraryDao dao=new LibraryDaoImpl();
(2)主菜單模块:用户名和密码匹配成功后,用户就可以进入系统的主菜单。系统的主菜单由MainActivity类文件来实现,用户可以通过在屏幕上点击相应的图标,进入功能界面。主要的功能界面包含了图书信息、公告信息、课程信息等。
五、结语
为实现师生及时、快捷的查询校园信息,本文开发了一款基于andriod平台的校园通系统客户端。用户登陆该系统,可以实现公告信息、图书信息、课程信息等的查询及操作。本系统通过智能手机测试,系统性能稳定,运行良好,极大的方便了校园师生的学习和生活。
参考文献:
[1]http://baike.baidu.com/subview/1241829/9322617.htm
[2]岳国宾,王洁,张增艳.基于Android 平台的移动智慧校园系统设计与实现[J]电脑编程技巧与维护,2012,24:79-80.
Android客户端 篇4
关键词:移动互联网,Android,VoIP,SIP
1 引言
在计算机发展的历程中, 软件技术往往会伴随着硬件技术的进步得到飞速的发展。以太网络的桌面电话已不再能够满足时代的需求。将Vo IP与Android两者的结合, 将是未来的发展趋势。把这种技术引入商业市场有着巨大的潜在价值, 因为Vo IP这种传输方式成本极为低廉, 并且随着网络技术的发展, 通话质量将会不断提高, 用户数也将有很大提升。本文设计了一个基于Android平台的Vo IP移动客户端, 该客户端使用了Vo IP最流行的信令协议SIP协议, 它是Vo IP建立连接的IETF标准。
2 技术分析
2.1 Android
Android系统架构分应用层、应用框架层、系统运行库层和内核层四个层次。Android的核心系统服务依赖于内核层, 该层为系统提供安全管理、内存管理、进程管理、网络协议栈和驱动模型[1]。内核层还为Android提供了硬件与软件栈之间的抽象层。系统运行库层包括Android运行时和Android库, Android运行时为应用程序提供运行环境和虚拟机, Android库是Android系统中各种不同组件所使用的C/C++集库[2]。
2.2 SIP
SIP (Session Initiation Protocol) 是一个应用层的信令控制协议。用于创建、修改、释放会话。它是Vo IP建立连接的IETF标准, 本设计就是基于SIP协议的Android应用程序。SIP的一个重要特点是它不定义要建立的会话的类型, 而只定义应该如何管理会话[3]。
2.3 XML在Android中的应用
XML的全称是“可扩展标记语言” (Extensible Markup Language) 它诞生于1996年。主要用途是为需要预定义数据结构的项目存储结构化数据[4]。Android中大量使用基于XML的标记语言来定义应用程序的基本组件, 尤其是一些可见的组件。XML还可以用于定义应用程序的每个细节, 从用户界面到数据访问[5]。
3 系统框架
3.1 Vo IP系统框架
Vo IP软交换系统分为客户端和服务器端两个部分。服务器端完成注册和验证用户, 同时路由两个手机终端之间的呼叫请求。如图1所示:
3.2 注册流程简介
用户A向服务器发送REGISTER请求, 服务器收到请求后先查看后台数据, 若有用户A的数据执行第4步, 没有则返回401 Unauthorized。用户收到消息后将用户名密码加密后再次发送REGISTER到服务器, 服务器收到消息后解密消息, 验证用户信息, 合法则发送200 OK给用户A进行响应。整个注册流程如图2所示:
3.3 建立通信流程
用户A向服务器发送INVITE请求, 服务器收到后向用户B转发INVITE请求, 并向用户A返回100 TRYING作为响应, 用户B收到INVITE请求后向服务器响应100 TRYING, 再发送180 RINGING消息, 服务器转发180 RINGING到用户A, 用户B接听电话后发送200 OK给服务器, 服务器将此消息转发给用户A, 用户A收到200 OK后向服务器发送确认消息ACK, 服务器在将ACK转发给用户B, 于是用户A和用户B就建立了连接可以开始正式通话了。整个过程如图3所示:
3.4 释放通信流程
假设用户A先挂断电话, 则用户A向服务器发送BYE请求, 服务器收到请求并将其转发给用户B, 用户B挂机并发送200 OK给服务器确认, 服务器向用户A转发挂机消息200OK, 双方结束通信。释放通信流程如图4所示:
4 功能模块设计
(1) 用户界面设计:用户界面的设置让用户使用起来友好、方便, 本程序的用户界面文件共有四个:uimanin.xml、settings.xml、call_card_popup.xml () 、ongoing_call_notification.xml。
(2) 主控模块设计:主控模块实现用户界面和本地接口调用。主控模块主要由uimanin和settings这两个类组成。主控模块设计的过程为:程序先从uimain类运行, 这需要在Android Manifest.xml文件中声明:
将用户界面文件uimain.xml与uimanin类进行绑定:
setContentView (R.layout.uimanin.xml) ;
settings类与settings.xml文件也需要与settings类绑定:
set Content View (R.layout.settings.xml) ;
uimanin类中几个比较主要的方法:
public void on Create (Bundle icicle) ;该方法相当于C语音中的main方法。是程序的入口, 里面主要是进行初始化程序。
public void on Click (View v) ;这是单击事件回调方法, 用来处理手机界面中单击事件。
public boolean on Create Options Menu (Menu menu) ;这是创建菜单的方法, 用于菜单的初始化。
public boolean on Options Item Selected () ;菜单被选中时会调用此方法来处理菜单事件。
(3) 用户代理模块设计:用户代理模块实现了用户注册、通话。它主要是通过实例化Android SIP API中包含的类和接口来实现的, 图5是这些类和接口的概述:
(4) 图标设计:最后为应用程序定制一个Android图标, 这个图标将显示在用户的Android设备中, 通过触摸这个图标就可以启动应用程序。首先选取一张合适的图片, 然后是将图片添加透明度, 让图片可以无缝叠加显示在任何系统桌面壁纸上面, 这个工作可以用Photoshop来完成。最后是创建图标, 图标需要有64×64像素、32×32像素、22×22像素这三个尺寸来匹配不同大小的屏幕。
5 结束语
本程序以Android 4.0为平台, 使用Eclipse集成开发软件, 以及Java与XML为开发语言。在分析了J2ME平台的体系结构和特性, 研究了SIP协议的信令控制流程, 理解了Android应用程序开发过程后成功为Vo IP系统开发了一个Android客户端。本程序的主要工作是用户界面设计、主控模块设计、用户代理模块设计、图标设计等。经过测试证实本程序运行稳定, 且实现了局域网内免费通话的功能。
参考文献
[1]Wallace Jackson, 周自恒.Android应用开发入门[M].北京:人民邮电出版社, 2013.
[2]李宁.Android开发权威指南[M].北京:人民邮电出版社, 2013.
[3]余志龙, 郑名杰.Google Android SDK开发范例大全 (第三版) [M].北京:人民邮电出版社, 2009.
[4]马越.Android的架构与应用[D].北京:中国地质大学, 2008.
Android客户端 篇5
Android是Google推出的一个基于Linux操作系统,包含底层框架,中间件和开发环境的一套平台系统。它支持流行的组件式程序设计,具有针对性移动设备的Dalvik虚拟机。浏览器核心是基于开源的WebKit引擎,对基于HTML的各种语言具有良好的支持。图像引擎使用基于openGLES1.0的三维图形库[1,2]。本文的研究目的就是基于Android平台,提出一种能为多种移动客户端提供即时通信服务系统的客户端解决方案。
1 系统开发环境
Android的应用开发使用Java语言环境下Android应用开发工具和API接口[3],包括支持各种分辨率的设备模拟器、调试工具、内存及性能分析图表和Eclipse集成开发环境插件在内的方便快捷的开发环境。
2 客户端设计
系统客户端主要实现与服务器端进行通信,向服务器发送和接收相应的请求,完成即时通信的过程。开发的客户端基于Jabber协议[4],可以实现用户注册和登录、即时消息处理、好友的分组管理、在线状态的监视等功能。
2.1 客户端设计结构
系统客户端,采用MVC模式来进行构建,MVC模式中应用系统被分成3个部分:模型(Model)、视图(View)和控制器(Controller)[5]。View向用户展示模型的状态以及控制信息,Controller作为控制器,负责View和Model之间的流程控制,客户端MVC结构如图1所示。采用MVC模式架构进行设计[6,7],可以将视图层与逻辑代码以及数据模型层进行分离,实现系统的松散耦合,便于系统的维护和代码的重用。同时,在Android中,视图层可以通过定义XML文件的方式来设计用户界面,在数据模型层提供了Content Provider类来屏蔽底层具体的存储设备细节,从而使应用系统具有良好的数据迁移性。
2.2 应用模块框架
Android中用户界面允许采用定义XML文件或编写代码建立。通过定义XML文件来设计用户界面便于代码理解和重用,效率较高。故系统选用定义XML文件来实现客户端的用户界面。Android应用程序与用户打交道的基本功能单位是活动(Activity),它通过调用方法setContentView()加载视图资源显示[8]。运行于后台的应用程序可以通过Service来进行设计,通过Binder机制,与相关的活动绑定在一起,系统应用模块架构如图2所示。
2.3 数据存储
客户端采用Android平台自身所带的SQLite数据库来存储用户信息以及即时通信聊天信息,使用文件存储设备SDeard来存储图片和音乐。使用contentProvider将SQLite资料库系统封装起来,让应用程序直接使用能够屏蔽数据库差异性,提供一致界面的content Provider所提供的界面函数。
2.4 实现主要功能
系统客户端主要实现以下功能:
(1) 注册用户:填写相关的个人信息进行注册,向服务器提交后服务器返回相应的信息;
(2) 系统设置:对系统的一些选项进行相应的设置;
(3) 用户设置:对用户基本信息和一些Jabber选项进行设置;
(4) 登录和注销:选择相应的服务,输入用户名和密码,登录即时通信系统,或注销用户,退出本系统;
(5) 分组管理:可以创建新的分组,对分组信息进行修改或删除;
(6) 好友管理:可以添加好友至某个分组,修改好友的备注信息,删除好友;
(7) 好友信息:登录后,可以按照分组查看所有好友的信息;
(8) 信息发送:登录后可给某位好友发送信息,如果好友离线,信息暂存于服务器中,待其上线后接收;
(9) 信息接收:接收好友发送过来的信息,并显示;
(10) 查看聊天记录:可查看与某位好友的聊天记录。
3 主要模块设计
系统的即时通信采用XMPP协议,XMPP是基于XML的协议。在系统的即时通信过程中,通信信息都是以XML语句进行传输的,而具体的消息内容则嵌入在XML元素中[9,10]。系统主要包括解析、加密、即时通信、图片传输、音乐播放、图片浏览等模块,各模块设计如下:
(1) 解析模块。系统采用Android平台上提供的org.xmlpull.vl解析包对XML消息进行解析。XMPP协议中的XML语句是一种树型结构,解析XMPP协议的过程即对树的遍历,节点的名字就是属性的名字,节点的值就是属性的值。在解析中,只对主要消息元素进行解析,主要解析XMPP协议的3个顶层元素<message/>、<Presence/>和<iq/>所包含的内容以及包含错误信息的元素<error/>。解析完后,封装,供应用模块进行调用;
(2) 加密模块。加密模块对发送和接收的消息进行加解密,以确保通讯数据的安全。该加密机制是分两步完成的,首先将二进制码转换成BASE64码。在转换成BASE64码之后,再进行加密,加密算法由各网络实体建立会话时通过TLS协商。
(3) 即时通信模块。客户端通过GPRS无线网络采用TCP协议连接到Openfire服务器,通过服务器作为即时通信平台,实现客户端与客户端之间即时通信。为了解决TCP在连接服务器的过程中,等待服务器响应时间过长,易造成程序暂停,系统假死现象。在与服务器的通信过程中采取了多线程的方式,使用3个线程,分别负责消息发送、接收和心跳信息的发送。
(4) 图片传输。从文件系统中读入图片后,将图片转换成“.png”的格式,写入到字节输出流中。由于图片信息相对于通信文本信息要大很多,因此采用分组传输的方式,对字节数组进行分组,加密后,分别嵌入到XML语句中进行传输。接收图片时,将收到的各个子字符串转换为字节数组并进行解密,最后进行组合,还原成原来的图片,供用户浏览。
(5) 音乐播放。音乐播放通过调用MediaPlayer实现的。Android的Media Player包含了Audio和Video的播放功能。MediaPlayer在底层上是基于OpenCore(PaeketVideo)的库实现的,为了构建一个MediaPlayer程序,上层还包含基于Android基本库中的Binder机制的进程间通讯等内容。
(6) 图片浏览。图片浏览主要用android. Graphics类包实现,这个类包提供了如画布、点和矩形等底层图形工具,可直接的在屏幕上进行绘制。从文件系统中把所需要的图片读入到内存中,转化成“.png”的图片格式,然后在不同的用户界面中,使图片以不同的形式显示。
4 结 语
近年来,Android系统由于其开源性、易开发性得到广泛的应用。移动通信的即时通信服务把手机的短信和手机移动互联网完美地结合起来,用户通过移动设备终端,能便捷地与他人进行实时信息交流。利用本设计方案,可以实现在Android操作系统上完成即时通信系统客户端的开发,具有较大的发展、应用空间。
参考文献
[1]赵远萍.即时通信系统拓扑建模及消息传播模型研究[D].北京:北京邮电大学,2010.
[2]CHATTERJEE S,ABHICHANDANI T,LI Hai-qing,etal.Instant Messaging and Presence Technologies for CollegeCampuses[J].IEEE Network,2005,19(3):22-33.
[3]于少山,卡米力,毛依丁.基于XML的即时通信系统的研究与实现[J].重庆邮电大学学报,2007(6):59-61.
[4]ED P Saint-Andre.RFC3921,Extensible messaging andpresence protocol(XMPP):instant messaging and presence[S].[S.l.].IETF,2004.
[5]田森.用Android开发手机应用[J].程序员,2008(1):25-27.
[6]姚昱?,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008(11):110-112.
[7]罗伟.基于Android平台的即时通讯系统的研究与实现[D].长沙:湖南师范大学,2009.
[8]WHITEHEAD Jim.Streaming XML with Jabber/XMPP[R].USA:IEEE Computer Society,2005.
[9]SAINT-ANDRE Peter.Streaming XML with Jabber/XMPP[R].USA:IEEE Computer Society,2006.
[10]冯亚军,宋子林.基于XMPP协议的即时通信系统[J].军事通信技术,2005(12):57-59.
[11]李聪玲.液氧/煤油发动机试验控制系统软件架构与设计[J].火箭推进,2009,35(2):46-53.
Android客户端 篇6
关键词:Android系统,新媒体,消息推送
1 引言
现如今,全球顶尖的3大智能手机操作系统分别是安卓、苹果公司的IOS系统和微软的Windows phone。Android是由谷歌公司和开放手机联盟支持的一个手机软件开发平台,完全开源的特性不但受广大开发人员青睐,也使得Android系统在全球智能手机市场占主导地位。截止2015年12月,Android以81.36%的市场占有率稳居移动操作系统市场之首。
基于Android的新媒体客户端通过设置政府发布、信息公开、本地新闻、中国网事、便民信息等栏目,为人民群众搭建了行政事务审批平台和参政议政,生活娱乐平台,这是地方党委政府自主掌控的掌上新媒体。突发事件发生时,地方党委政府可以通过新媒体客户端将重要的信息推送给群众,从而第一时间发出党和政府的声音。
2 系统开设计与实现
2.1 主要功能模块
新媒体客户端包括前台APP和后台管理发布平台两部分。前台APP包括欢迎页、栏目列表、首页栏目、用户登录、用户注册等,后台包括采编管理、发布管理、栏目管理、互动管理、素材管理、群组推送等。如图1所示。
2.2 界面
接下来介绍下首页、导航栏、社情民意等几个主要功能模块的界面设计。
2.2.1 首页
进入系统首页。首页如图2所示。
该模块主要向公众用户展示系统的应用名称、新闻图片、应用栏目信息。具体的应用栏目可以根据不同的客户端,定制不同的栏目分类。并且客户端能根据最新定制及时更新同步相应的首页内容。“头条”主要展示当天或某段时间内最新或重大新闻。
2.2.2 导航栏
可以看到,导航栏由“点击登录”、“我的收藏”、“新闻搜索”、“清空缓存”、“设置”等几个模块,下面分别介绍一下。
点击登录:已注册的用户输入自己的用户名和密码,验证通过,登录成功。没有注册的用户可以注册自己的账号。
我的收藏:方便用户快速浏览感兴趣的内容。在此处通过点击相应的内容,快速浏览相应的详细信息。
新闻搜索:为公众用户提供新闻检索功能。用户可以通过模糊查询,查询相关的新闻信息。信息结果以列表的形式展示。通过点击相应的内容,可以浏览具体的详细信息。
清空缓存:向用户提供清除当前用户手机端系统相关的缓存内容。点击该菜单可以清除该系统相关的所有文件夹中的缓存信息。
设置:显示系统版本等信息。
2.2.3 社情民意
社情民意版块展现如图4所示。
社情民意功能模块直接面向公众用户,由公众用户监督并反映个人或公众问题。对于公众提出的问题,后台管理人员可以直接确认回复,回复后的信息可以直接在此模块显示,供其他终端用户进行查阅。对于长时间未能解决或用户不满意的解决方式,问题提出用户针对此问题可以进行多次的回复,其他用户不能进行回复。公众问题反馈支持图片+文字方式,同时支持用户在提交信息时把自己输入的联系方式隐藏(隐藏是指其他人员不能查看,但后台人员可以查看到)。反馈的问题需要经过后台人员的审核才可以显示,对于不合格的反馈信息后台人员可以选择性删除。
2.3 功能实现
接下来介绍一下客户端的注册、登录、消息推送等几个功能模块的代码实现。
2.3.1 用户注册
客户端用户填写用户名、密码、手机号等注册信息申请注册。
注册涉及到的参数描述如表1所示:
注册请求协议如下:
客户端向服务器提交的注册信息为:用户名为shandong,密码为password,中文名爱沂南,注册邮箱为aiyinan@163.com,性别男,电话号码18605311255,生日是2014年9月17日,appid是371321,获取到设备的唯一编号,头像编码001,昵称xxxx。
服务器收到注册信息后,回复应答协议xml数据包如下:
查看返回协议说明如表2所示:
因Response值为“00”,所以用户注册成功。
2.3.2 用户登录
客户端把用户输入的用户名和密码后提交给服务器,与存储在数据库中的用户名和密码进行比对,匹配成功后返回登录信息。
登录涉及到的参数如表3所示。
登录请求协议如下:
客户端向服务器提交的登录信息为:用户名为zkaa,密码为123,appid为370303,请求登录。
服务器回复应答协议如下:
通过查看登录返回协议说明如表4所示。
用户登录成功,同时服务器将用户的所有相应信息一起返回给客户端,如头像、手机号、邮箱、生日等。
2.3.3 推送功能代码与实现
消息推送服务是管理发布平台为移动客户端主动发送内容更新和消息通知的一种提醒服务,用户在不打开移动客户端的情况下,也可以接收到提醒消息。管理发布平台的消息推送服务可以及时、准确地实现稿件推送、消息推送、用户行为数据推送3种消息类型,可以支持实现定向精准推送,例如针对某一角色的用户或者某一个、某几个特定用户的推送。消息推送服务支持的消息类型包含以下几种:
(1)稿件推送:消息推送服务器向客户端推送稿件,客户端解析推送稿件信息,弹出消息提示框,用户点击后,依据推送稿件的信息,进入相应的稿件正文。
(2)通知推送:消息推送服务器向客户端推送通知信息,客户端解析通知信息,弹出提示框显示通知信息,用户点击后,进入客户端首页。
(3)控制命令推送:消息推送服务器向客户端推送控制命令,客户端解析控制命令,进行相应的行为操作,例如:控制用户清除客户端缓存。
推送对象:
(1)定向推送:针对某个用户或者某个范围内的用户进行消息推送,在管理发布平台上,可以为特定用户名的单一用户推送消息,也可以为某一类角色的用户群体推送消息。通常,这适合高级定制用户和企业用户的消息推送。
(2)广播式推送:针对接入管理发布平台的移动客户端上的所有用户推送消息,通常这适合新闻内容更新提醒。推送服务代码如下:
管理发布平台通过调用Push Xml类发送通知公告类推送消息或一键撤稿,调用create Xml方法创建消息串,调用Pushtext Dao类推送,可以按群组、时间推送。通过调用Pushtext Service类推送稿件信息。用户提交推送申请后,调用save Base方法保存创建人信息、处理发送方式以及推送群组信息,调用sub方法提交给管理员审核,管理员调用send方法审核,审核通过后放入推送池中。后台调用Scan Task类启动定时扫描任务,发现待推送的消息后调用Push Service类的scan And Push方法,该方法根据需要推送的信息列表,生成推送的用户名,读取配置文件信息获取推送路径,调取推送方法进行推送,推送完成后,将推送数据从待推送表删除并放到已推送表中。
3 结语
基于Android的新媒体客户端与传统的新闻客户端相比主要有以下两方面不同。第一是提供了系统交互功能。传统的新闻客户端主要是新闻发布功能,只有简单的稿件评论功能,互动性不强。设计的新媒体客户端除具备基本的稿件评论功能外,还有拍客播客、投票调查、社情民意等版块,为群众提供了交互的窗口,是群众建言献策、参政议政的载体。党委政府通过在客户端上设置议题,让群众参与互动讨论,也可以在手机上举行民主恳谈会,网络听证会。第二是具有便民服务功能。客户端涵盖了便民信息、办事指南,汇聚了本地商家信息以及各类衣食住行和购物、旅游、休闲资讯,从而使群众享受到了方便快捷的生活。该系统也有一些不足,如何提高信息推送的准确性和时效性是下一步研究的方向。
参考文献
[1]张永芹.2012年移动新媒体新闻客户端影响力研究[D].浙江:浙江大学,2012.
[2]许力.地方新闻门户网站手机新闻客户端内容研究[D].安徽:安徽大学,2014.
[3]王艺璇.基于Android平台移动图书馆客户端设计与实现.智能计算机与应用,2011,06:28-33.
[4]刘胜男.新华社发布:冰山下的“新世界”.中国传媒科技,2014,08:9-13.
Android客户端 篇7
国外, 可汗学院 (http://www.khanacademy.org /) 和TED-Ed (http:// ed.ted.com/) 依托全球著名的You Tube视频网站搭建起各具特色的微课程平台, 向世界各地的人们提供免费的高品质教育, 课程平台与手机客户端也已达到无缝对接。
国内, 根据中国互联网络信息中心 (CNNIC) 发布的《第34次中国互联网络发展状况统计报告》[1]:截至2014年6月, 手机网民规模5.27亿, 网民上网设备中, 手机使用率达83.4%。我国移动设备的拥有量已处于世界前列, 移动学习也逐渐引起了人们关注;微课程平台建设方面, 国家开放大学5分钟课程网、佛山微课、微课网等各种微课程平台也被大众所认知, 但国内课程平台建设多采用自建的资源服务器, 建设成本高, 资源更新迟缓, 交互性不强, 对移动设备应用支持不得力, 尤其对于资金薄弱地区和学校, 建立微课程平台, 无论硬件建设、维护还是技术支持, 都存在很大的困难, 本文依托国内最大视频网站优酷及其免费的开放平台, 设计微课程平台系统, 实现基于Android平台的微课程平台手机客户端, 试图为微课程平台建设及对应手机客户端开发带来启发。
1 微课程、微课程平台、Android手机客户端
1.1 微课程
微课程最早由美国戴维·彭罗斯于2008年秋首创;他把微课程称为“知识脉冲”, 就是片段化的学习内容, 这种片段化的学习内容可以按照学生的个性化学习需求组织, 成为聚焦于单一知识点的微课程[2]。国内率先提出微课程概念的是广东佛山教育局胡铁生, 他认为微课程是指按照新课程标准及教学实践要求, 以教学视频为主要载体, 反映教师在课堂教学过程中针对某个知识点或教学环节而开展教与学活动的各种教学资源有机组合。
1.2 微课程平台
微课程是以微视频为主要呈现方式的, 同时还包括与学习活动相关的微电子辅助支持资源, 如微教案、微课件、微练习、微反馈、微评价及微反思等, 它们共同构建成一种半结构化、主题突出的新型资源单元应用“生态环境”, 微课程平台是这一“生态系统”的具体实现[3]。
可汗学院依托You Tube视频网站, 以由易到难的进阶方式将相应的微视频课程衔接起来, 并设计和配置了相应的练习微课程平台, 其在线图书馆已收藏了3 500多部可汗教师的教学视频[4];TED-Ed是TED在You Tube上推出教育频道, 它将课程与视频、字幕、交互式问答系统等融合为一体, 其微视频已经吸引了8亿多人次的播放次数。Udemy是于2010年成立的在线教育平台, 至今发布了13 000多个课程, 包含2亿多名学生;其平台除了提供微大纲、微视频和微教案, 依据微课程设计是以学习者为中心的自主学习这一出发点, 设计了形成性评价与总结性评价等作为检验学习成效的方式。
1.3 基于Android平台的手机客户端
Android是一种基于Linux的自由及开放源代码的操作系统, 主要使用于移动设备, 如智能手机和平板电脑, 由Google公司和开放手机联盟领导及开发。2013年的第四季度, Android平台手机的全球市场份额已经达到78.1%。Android应用通常由一个或多个基本组件组成, Android的基本组件总共包括五大类。
(1) Activity——应用表示层 (基类Activity) 。
(2) Service——无可示界面, 可长时间运行于后台。Service与Activity的地位是相同, 区别在于:Service组件运行于程序后台, 一般用户不可见, 不需要与用户交互, 因此可以把Servic组件视为没有图形的用户界面。
(3) Broadcast Receiver——用户接收广播通知的组件。
(4) Content Provider——处理各应用程序之间数据的共享与通信问题。
(5) Intent——连接组件的纽带。
通常将手机应用大体上分为两类, 即单机应用和交互应用, 单机应用指的是仅需要手机终端的支持就可使用的应用, 如移动办公应用等。交互应用指的是除了手机终端外还需要其他终端或服务端支持的软件;微课程平台客户端择属于交互应用[5]。
2 系统的设计
2.1 系统框架的设计
微课程平台总体架构如图1所示。
微课程平台网站服务端由Apache Web服务器、数据库服务器和优酷开放平台组成, Web服务器和数据库服务器重点实现课程的组织架构, 同时实现微课程生态系统中微教案、微评价等资源存储访问, 微视频交由优酷开放平台实现专业管理, 以提高平台应用效率和运行稳定性。
Android智能终端用户通过手机客户端软件访问微课程平台, 选用JSON作为数据交换格式;PC浏览器用户及管理员通过PC端浏览器访问管理微课程平台, 通过HTTP POST方式与服务器交换数据。
2.2 功能模块的设计
Android手机客户端功能模块如图2所示。
由用户授权登陆、微课程集、课程搜索, 学习工具和帮助系统组成。核心微课程集中微课程由课程简介、学习模块和互动模块构成。课程简介由课程名称、主讲教师信息、 课程介绍、课程设置通知、课程分享和课程评价等部分组成。学习模块顶端学习进度时间轴给学习者直观的进度显示;下方为学习内容部分, 它是整个界面的核心, 也是呈现篇幅最大的区域, 包含课程章节、每节课的主题、时长学习内容呈现形式。互动模块由讨论、公告、学习成员三部分组成。课程讨论区域是用于学习者提问, 师生答疑, 师生间、学习者间交流的区域。课程公告区域是主讲教师用来发布课程的相关通知。学习成员可显示所修该课程的所有成员姓名, 点击进入成员列表, 可对学生姓名加以搜索, 还可对他们加以关注或发送消息。
3 视频开放平台、Anth2.0授权机制和JSON数据解析技术
3.1 优酷视频开放平台
所谓开放服务, 指把网络上的服务能力封装成一系列计算机易识别的数据接口开放出去, 供第三方开发者使用, 即Open API (open application programming interface) , 这样可提供多种多元化的应用服务来快速满足用户的各种需求, 进而提高用户黏性。优酷开放平台是基于优酷海量视频库的开发的发现、订阅、分享与交流平台。优酷开放平台提供几乎无限的存储空间以及随时在增长的服务带宽, 实现视频从上传、传播、播放到分享、聚合、交流的全部需求[6]。
优酷视频开放平台通过开放接口 (Open API) , 实现对用户、评论、视频、节目、专辑、搜索、人物和数据约束类数据的访问或控制;通过授权, 开发者可以无缝的将视频平台与自己的网站或手机客户端融合, 实现第三方开发应用。
3.2 Anth2.0授权机制
图3中步骤:A客户端发起授权请求, B授权页面等待用户授权, 如果授权成功, 则携带用户授权码跳转到指定的URL, C应用的服务器端获取用户授权码, 并向授权服务器申请令牌, D应用服务器获得令牌, 保存下来, 以便下次使用[6]。
Anth2.0授权验证流程简单更安全, 是未来最主要的用户身份验证和授权方式。如图3所示, 通过授权机制, 可获取用户信息、用户上传和分享的视频, 帮助用户实现上传视频、关注他人、评论视频等用户动作;是是否能对优酷开放平台进行访问的充要条件, 只有授权用户才有对视频平台使用权[7]。
3.3 Android JSON数据解析
调用优酷开放平台所提供的公共接口, 返回为JSON格式的数据, 必须对其解析, 才能获得符合android视图使用的数据。JSON (Java Script Object Notation) 是一种轻量级的数据交换格式。JSON建构有两种结构:对象和数组。对象:在js中表示为“{}”扩起来的内容, 数据结构为{key:value, k e y : v a l u e , . . . } 的键值对的结构, 在面向对象的语言中, key为对象的属性, value为对应值。数组在js中是中括号“[]”扩起来的内容, 数据结构为["java", "javascript", ...]。Android的JSON解析部分都在包org.JSON下, 主要类JSONObject:是JSON对象, 是基本单元, 其包含一对儿 (Key/Value) 数值Value的类型包括:Boolean、JSONArray、JSONObject、N u m b e r 、 S t r i n g等。其数值添加需先初始化一个JSONObject实例, 引用内部的put () 方法添加数值如, new JSONObject () .put (“JSON”, “Hello, World!”) ;其取值方法为对象.key获取属性值。
4 系统主要模块的实现
4.1 功能实现
在手机客户端编程实现时, 首先需在优酷开放平台申请应用的Appkey和Appsecret (应用在优酷平台的ID和密钥) ;主程序实现用户授权登录、视频播放、上传和评论等功能;视频播放、上传为程序的主核心, 其实现如下文。
4.1.1 视频播放的实现
优酷开放平台提供的SDK以libiary包的形式供第三方接入和使用优酷播放器, 设备中需要预先安装Youku Player应用, 在主程序的on Create函数中对Youku Player View实例进行初始化, 在on Initialization () 函数中获取Youku Player, 通过传入视频id进行播放。
视频播放器实例化代码1如下:
主程序初始化成功后播放视频代码2如下:
4.1.2 视频上传的实现
视频上传主要实现第三方Android应用程序上传视频文件到优酷。上传请求均位于非UI线程、不会阻塞UI操作, 可通过匿名内部类处理回调结果, 响应结果均返回JSONObject。上传实例化时, 调用参数client_id指手机客户端在优酷开放平台申请appkey, 参数client_secre指appsecret具体实现代码3如下:
4.2 客户端UI设计
作为手机应用或客户端, 友好美观的用户界面是手机操作系统和软件开发商角逐的热点, 微课程平台客户端参考目前市场主流的UI设计, 采取九宫格的主页面, 以List View实现次页面, 主色调简洁淡雅, 力求在页面上吸引用户注意力, 其主页面和次页面如图4。
5 结束语
本文通过对微课程平台可汗学院、TED-Ed和Udemy的研究分析, 依托国内最大优酷视频网站开放平台, 设计了集微视频、微教案和微评论等为一体的微课程平台系统, 实现了基于Android的手机客户端。通过平台与手机等智能终端紧密结合, 将使微课程学习更为便捷, 更适合移动学习。
参考文献
[1]中国互联网信息中心 (CNNIC) .第34次《中国互联网络发展状况统计报告》[R].http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/201407/t20140721_47437.htm.
[2]梁乐明, 曹俏俏, 张宝辉.微课程设计模式研究_基于国内外微课程的对比分析[J].开放教育研究.2013
[3]胡铁生.“微课”:区域教育信息资源发展的新趋势[J].电化教育研究, 2011 (10) :62.
[4]百度百科.可汗学院[DB/OL]http://baike.baidu.com/view/5913590.htm?fr=aladdin.
[5]肖红, 王辉, 赵娅.基于“微课程”的移动学习平台构建[J].教育教学论坛, 2014 (40) :142-143.
[6]LeeJK.Web2.0andOpenAPI.NHN, KRNet2006
Android客户端 篇8
随着3G、云计算等技术从概念转为现实, 移动互联网迎来了高速、爆炸式的增长。移动互联网应用的核心是手机。虽然移动互联网应用需要服务器作为后台的业务支撑, 但手机上的终端服务和应用是吸引用户的关键。由于智能手机提供了更为绚烂多彩的用户界面、更多的应用程序, 其增长速度远远超过了非智能手机。
目前智能手机移动平台进入了全新的Android、i OS、Windows Phone三足鼎立的时代。Android因拥有良好的用户界面和开放性受到各大手机厂商的追捧, 成为市场占有率增长最快的智能移动平台, 也是目前市场占有率最大的移动平台。根据美国市场研究公司Strategy Analytics的数据显示, 2 0 1 2年第三季度, Android在中国智能手机市场的份额已经达到了88%。另一方面, Android Market的应用软件数量也在以惊人的速度增长。在过去一年中, Google对Android终端下载的数字内容进行了整合, 推出了官方统一的Play数字商城, 已经拥有70万款软件, Android应用已经成为市场的主流。Android应用的丰富必然将带动对Android终端的需求, 推动Android终端的普及。
从开发者角度看, 随着Google公司Android新版本SDK的发布, Android热潮正在全球范围内迅速蔓延, 各大厂商更是纷纷投入以Android为平台的产品研发。有别于其他封闭的移动设备系统, Google一直以开放的角度欢迎广大开发者加入Android行列, 在程序语言方面也是选择全球目前市场占有率最高的Java语言, 这有别于Apple及Microsoft, 除了降低软件开发上的门槛, 相比之下, 也提升了软件创意的想象空间。
二、Android平台架构概述
Android不仅仅是一款手机操作系统, 而更像是一个对任意开发者开放的移动终端开发平台。该平台是由操作系统、中间件、用户界面以及应用程序组成, 并且对外开放源代码, 一经推出便引起世界各地开源爱好者的关注。同时, Google与各大厂商的大力合作也大大的促进了Android新的手机业务不断推出, 同时也使得Android更加的标准化。Android系统架构为四层结构, 从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层, 分别介绍如下:
1. 应用程序层
Android平台包含了许多应用程序, 诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的, 并且这些应用程序都是可以被开发人员开发的其他应用程序所替换, 这点不同于其他手机操作系统固化在系统内部的系统软件, 更加灵活和个性化。
2. 应用程序框架层
应用程序框架层是我们从事Android开发的基础, 很多核心应用程序也是通过这一层来实现其核心功能的, 该层简化了组件的重用, 开发人员可以直接使用其提供的组件来进行快速的应用程序开发, 也可以通过继承而实现个性化的拓展。
3. 系统运行库层
Android系统运行库层可以分成两部分, 分别是系统库和Android运行时。系统库是应用程序框架的支撑, 是连接应用程序框架层与Linux内核层的重要纽带。Android运行时分为核心库和Dalvik虚拟机两部分。核心库提供了Java语言API中的大多数功能, 同时也包含了Android的一些核心API, 如Android.os、Android.net、Android.media等等。每个Android程序都有一个Dalivik虚拟机的实例, 并在该实例中执行。
4. Linux内核层
Android是基于Linux2.6内核, 其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。
三、Android平台和i OS平台的区别
1. 基础功能比较
从技术角度而言, Android和i Phone相似, 采用Web Kit浏览器引擎, 具备触摸屏、高级图形显示和上网功能, 用户能够在手机上查收电子邮件、搜索网址和观看视频节目等。Android手机比i Phone等其他手机更强调搜索功能, 界面也更强大, 可以说是一种融入了全部Web应用的平台。Android的版本很多, 随着版本的更新, 从最初的触屏到现在的多点触摸, 从普通的联系人到现在的数据同步, 从简单的Google Map到现在的导航系统, 从基本的网页浏览到现在的HTML 5, 这都说明Android已经逐渐稳定, 而且功能越来越强大。另外, Android不仅支持Java、C、C++等主流编程语言, 还支持Ruby、Rython等脚本语言, 甚至Google专门为Android应用开发推出simple语言, 这使得Android有着非常广泛的开发群体。
2. 开发环境比较
基于Android平台的开发, 我们选择的是Eclipse集成开发环境, 因为它具有非常丰富的功能组, 同maven无缝隙整合, 能够快速而简便的进行代码重组。苹果的开发环境目前是Xcode 4。总的来说, Xcode 4依然落后于Java IDE。Xcode也提供一些开发包, 但需要开发者支付100美元会员费。
3. Android的优势
和目前已经存在的其他智能操作系统相比, Android具有什么样的优势呢?
(1) 开放性。Android完全开源, 平台从底层操作系统到上层的用户界面和应用程序都不存在任何阻碍产业创新的专有权障碍。同时开源的最大好处是, 使得Android平台会拥有越来越壮大的开发者队伍, 并且随着用户与应用的日益丰富, 必然会使得Android这个崭新的平台走向成熟与稳定。
(2) 不受限任何限制的开发商。由于Android的开放性, 所以不同的厂商可以根据自身的情况对Android平台进行定制与扩展。这样的一个好处便是, 对于用户来说, 选择一款Android的手机将会有更大的抉择空间, 更能展现自身的个性化。
(3) 应用程序间无界限。Android打破了应用程序间的界限, 开发人员可以将在自己开发的程序与本地联系人、日历、位置信息等很好的联系起来。
(4) Android与Google服务的无缝集成, 紧密结合Google应用。全球最大的在线搜索服务商Google在过去的10年中, 已经逐渐的渗透进人们的日常生活中了。人们不再仅仅满足于使用电脑终端来享受诸如Gmail、Google地图、在线翻译等在线服务, 电脑终端到移动终端的延伸成了一种必然的趋势。
四、基于Android平台的新华社新闻客户端的互动性探索
新华社新闻客户端是我们基于Android平台自主研发的应用程序。该应用是新华社面向Android平台的权威新闻发布窗口, 依托新华社权威性、全球性报道优势, 以全媒体形式全天候发布新闻信息和深度报道。我们研发的应用程序可以和后台的发布系统无缝对接, 并设有新闻、图片、视频等栏目, 全景式报道焦点、国内、国际、财经、体育、社会、生活等新闻, 用户可以充分享受由庞大新闻数据库和遍布全中国、全世界采编力量支撑的新华社一流的新闻服务, 见证中国发展, 领略世界精彩, 共享文明成就。
在此基础上, 我们还致力于为用户提供互动性的全新体验。几经探索和尝试, 我们在基础框架上成功研发了社交化媒体分享, 文章排行, 邮件互动, 微博互动及动画特效等功能, 提高用户体验, 满足用户沟通、交流、参与、反馈、贡献的需求。
1. 社交化媒体分享功能
为了使用户随时随地将感兴趣的文章分享到微博, 人人网, 开心网的等社会化媒体, 我们实现了文字、图片、视频等多媒体新闻的社会化媒体分享功能。在功能实现上首先创建一个Options菜单, 该菜单项为“分享”。当点击菜单项时, 创建一个Intent。该Intent设置为发送给支持ACTION_SEND的Activity。我们用两个put Extra给Intent设置了SUBJECT和CONTENT的数据, 再用start Activity方法让系统调用适当的Activity执行。create Chooser方法接受Intent做参数, 也同时接纳了Intent里要求的filter (ACTION_SEND) , 只有支持ACTION_SEND的Activity才会被列入可选分享列表。
2. 文章排行功能
由于客户端每天发稿量很大, 用户往往倾向于优先浏览关注度较高的热点新闻, 因此, 我们为客户端增加了文章排行功能。用户可以在关注的栏目中查看按点击次数排序的新闻列表。我们调用程序请求后台根据用户点击量生成的栏目排行JSON文件。JSON是一种轻量级的数据交换格式, 具有良好的可读和便于快速编写的特性。和XML一样, JSON也是基于纯文本的数据格式。我们在程序中自定义了Column Resolver类用来解析栏目排行数据, 将解析出的名值对存入Hash Map供前端展示调用。
因为要访问外部网络, 所以要在Android Manifest.xml文件里增加一行安全许可:
3. 邮件互动功能
我们的主程序中以Edit Text作为邮件互动功能的内容组件, 当用户输入完成后, 单击发送按钮发送邮件, 程序调用Android系统的邮件API, 再通过Intent过滤并向程序内预设好的后台接收人的邮件地址发送邮件, 将用户提交的建议发给后端系统。
4. 微博互动功能
为了提高互动性, 我们在新华社新闻客户端中内置了新华视点微博, 供用户浏览查看。我们选取内置Web Kit引擎的Web View实现微博互动。我们首先调用Web View.load URL来加载新华视点微博的网址, 传入参数值str URI字符串, 然后交由Web View.set Web View Client () 处理, 利用Web View.load Data将HTML TAG传给Web View对象, 最后在客户端展示。
5. 动画特效
为了提高用户体验, 在用户浏览图片时, 我们添加了屏幕自动翻转的动画效果。我们先定义好动画的XML文件, 在配置文件通过根元素和若干个
五、结束语
Android客户端 篇9
科技的发展改变了人们的生活方式,使人们的生活日趋方便和快捷。伴随着3G网络的日益发展和智能手机的日趋普及,传统的基于PC机的很多应用,例如社交网络,网上购物,在线音乐等,已经逐渐向手机客户端转移。手机终端正在改变人们的生活与沟通方式,而多种多样智能手机软件的大量使用则可以满足不同群体的个性化需求。在上述环境背景下并基于个性化、智能化的设计目标,本文开发了基于Android平台和智能手机的移动图书馆系统。
1 Android与无线网
Android是由谷歌(Google)和开放手机联盟(Open Handset Alliance)所支持的一个手机软件开发平台。目前,联盟成员数量已经达到了34家,其中包括手机制造商、手机芯片厂商和移动运营商等几类。完全开源的特性不仅赢得了广大开发人员的青睐,也为Android系统赢得了全球智能手机市场的主导地位。
Android支持多种无线网络连接方式,如GPRS、Wi Fi、蓝牙等。通过这些方式,Android手机可以方便地通过无线网络通信,访问Internet和各种网络上的服务器。同时,Android框架提供了对HTTP等通讯协议的支持。标准协议的使用,使得客户端与服务器之间的通讯变得简洁又高效。
2 系统设计
2.1 系统框架的设计
移动图书馆系统主要由三个部分组成:
(1)前台客户端。负责与用户的交互,将用户的请求发送给后台服务器;
(2)后台服务器端。负责接收客户端的请求并对请求作出响应,发送至客户端;
(3)数据库。作为数据存储的介质,只能被服务器访问。框架设计如图1所示。这种设计有如下优点:
首先,客户端不需要进行大量的计算和数据存储,降低了客户端的实现难度和对硬件的要求;
其次,采取统一的通信协议和文件格式,可以实现与不同平台的客户端对接;
最后,服务器端直接与数据库连接,保证了数据的安全性和一致性。
这种设计模式在现代客户端中被广泛应用,其实用性和可行性已经得到很好的证实。但这种实现方式也存在一定的问题,就是对网络的严重依赖,如果失去了网络环境,客户端将变成一个孤岛,失去所有与外界的联系,无法获得任何数据。但是,随着我国网络基础设施的不断完善,一个稳定高速的网络环境对于现今的智能手机用户将不难成为现实。
2.2 功能模块的设计
设计的第一个阶段,系统主要包含6个功能模块,如图2所示。这6个功能模块分别是:
(1)新书推介和活动通知模块使广大读者可以随时获得最新咨询,如新到图书,本周推荐,最新活动等;
(2)馆藏图书查询模块方便读者随时随地查询馆藏图书、图书的馆藏地以及是否可借等信息;
(3)图书定位模块是通过对图书条形码的扫描获知其位置信息,如本书应该放置在A馆F架第4排。这个功能不但方便读者定位已知条形码的图书,更便于管理人员对散落的图书重新上架归位;
(4)身份验证主要提供图书馆的会员身份的验证,在必要时亦可以代替图书证使用,只有通过身份验证的读者才可以通过客户端查看我的图书馆中的相关信息;
(5)我的图书馆模块提供了用户个人信息的查询,包括已借图书、图书是不是超期以及自助续借功能;
(6)电子资源阅览模块使得读者不需要进入到电子阅览室,在自己的手机上就可以访问图书馆提供的电子资源。
3 通信协议
3.1 通信原理
任何一部提供了上网功能的手机都可以通过GPRS或者Wi Fi连接到网络。下面以GPRS为例,说明客户端与服务器之间的通讯原理。GPRS是移动运营商提供的手机网络业务。此业务主要通过手机的SIM卡发信号到运营商设立的信号接收发射塔,接入到网络,网络回传信号同样通过信号接收发射塔发回至手机。简单来说,其原理就是在原有的GSM网络的音频脉冲信号上进行改进,使其采用电磁信号进行传输,并且扩大了网络带宽。无论使用何种方式,当客户端连接到网络后就可以使用HTTP协议进行与服务器的通信了。即,客户端通过HTTP协议向服务器发送get请求,服务器接收后同样使用HTTP返回用户端请求的数据。
整个系统的通信协议由两部分构成,分别是底层的HTTP网络协议和上层的自定义通信协议。其中,通信协议定义了服务器与客户端的交互方式,客户端按照请求协议进行请求报文的组织,服务器端则按照响应协议进行相应报文的组织。正是因为有了统一的通信协议,客户端与服务器的会话得以进行,也使客户端跨平台成为可能。
3.2 底层网络协议
客户端采用HTTP协议与应用服务器进行通信,把私有通信协议封装在HTTP报文的数据段之中。
(1)客户端发出的HTTP请求报文格式
(2)Server返回的HTTP回应报文格式
3.3 通信协议形式
通信协议的通信数据格式使用JSON,JSON是一种轻量级的数据交换格式。这种格式利于阅读和编写,同时也易于机器解析和生成。协议以数据类的形式定义。以下是请求类和响应类的定义。
(1)请求类的定义
(2)响应类的定义
以上两个类定义了请求和响应的公共字段,而扩展字段则根据请求的不同,详见不同事务的相应定义。例如用户登陆请求command值为1。请求扩展字段中包含user Password,表示用户登陆的密码;相应的响应扩展字段包含user Info,表示用户基本信息,同时也是JSON字符串,对应用户信息的数据类定义。通信的具体操作流程如图3所示。
4 系统主要模块的实现
4.1 图书定位功能的实现
图书定位实现了通过扫描图书条形码信息获得图书具体存放位置信息。硬件方面,需要摄像头作为扫描设备。根据目前的市场调查,智能手机都配有百万像素的摄像头,而且大多数都配备了前后两个摄像头,其拍照速度和清晰度甚至可以与数码相机相媲美。因而完全可以通过摄像头去扫描条形码,实时捕捉摄像头当前所获得的图像,并对其进行处理。软件方面,需要对图片进行快速识别,通过条形码检测(当前图片是否有条码存在,如果有,则获得条码的具体坐标)和条码识别(确定条码所包含的数值信息)把图片转换为数值信息。
条码识别的原理描述如下:通过对实时图片的分析获取黑条与白条的宽度,对整个条形码按照码型的编码规则进行分割,再依次找寻每个条形码字符的逻辑值在数据库中的匹配字符来输出[1]。条码信息确定后,使用网络模块向服务器发送查询图书位置的请求。服务器接到后,根据图书的条码数据,在数据库中找到该书所对应的条目,提取该书的位置信息后,返回给客户端。客户端则把返回的位置信息在屏幕上显示给用户。
现在,使用摄像头扫描条形码并将其转换为数据的技术已经相当成熟,不单有很多诸如此类的应用问世,更有一些稳定的第三方库提供了详细的解决方案。在本系统中对开源的第三方包ZXing进行了剪裁,从而实现从摄像头图片到条码信息的转换。Android虽然没有应用程序级别的区分,资源对所有的应用程序都是开放的,但对于需要使用的资源却必须在工程的Manifest.xml文件中进行注册。本工程通过在Manifest.xml 文件中加入
4.2 客户端UI的设计
作为一款手机软件产品,最直接被用户感知的就是用户界面,因此友好、美观的用户界面一直是手机操作系统以及软件开发商的角逐热点。移动图书馆客户端参考了目前市场上主流的UI设计,采取九宫格的主页面,主色调简洁、明快,力求在有限的页面上展示读者最关注的信息。图4是主页面和图书查询效果图。
4.3 系统安全问题的解决方案
一款合格的产品必须要重视安全和隐私问题。为保证在数据传输的过程中用户信息不外泄,因此在系统设计之初就需着重考虑个人信息存储方式。
在本地数据存储方面,所有从服务器返回的私人数据都是即时显示,并不在本地保存任何副本。用户在退出当前页面后,页面显示的信息也就不复存在;如果用户还需要访问这个页面,则需要重新发送请求。
在数据传输过程中同样也采取了先压缩后加密的方式来确保数据在传输过程中的安全。其中压缩算法使用GZIP,这是一款基于LZ77与哈弗曼编码[2]的自由压缩软件;而受到客户端计算能力的限制,加密算法则使用简单的异或操作,其优势在于实现简单、执行效率高。
5 结束语
本文提出了一个移动图书馆系统,并在Android系统上得以实现。系统的主要功能集成了传统的馆藏图书查询等功能,新增了个人图书馆、新书推介、图书定位等多种新功能。客户端注重用户体验和个性化需求,较好地满足了人们随时随地访问图书馆的需要。 但是,整个系统还处于初期阶段,仍 存在一些不足和有待改善之处,如界面设计不够专业,缺少互 动以及社交功能等,这些也是移动图书馆系统下一步的工作。
参考文献
[1]战荫伟.128条码的编码分析和识别算法[J].计算机工程与科学,2002,24(1):74-76.
[2]徐成俊,舒毅,等.文本压缩算法的比较研究[J].甘肃科技,2006.
[3]师晓青,谢军红.基于3G的智能手机移动图书馆创新研究[J].图书馆研究,2009.
[4]杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社,2-010:220-276.
相关文章:
android安全机制01-06
android移动开发答案01-06
android面试题目01-06
android项目心得01-06
Android Activity 详述01-06
android程序报告01-06
android横竖屏总结01-06
android开发环境简介01-06
Android测试01-06
android开发培训01-06