多终端的网络新闻发布系统Android手机客户端设计(4)

图2-1 Activity生命周期 2.1.2 Service Service级别与Activity一样,工作在系统后台,对于用户来说它是不可视的,可以与其他组件进行交互功能,有自己独立的生命


图2-1 Activity生命周期

2.1.2 Service

Service级别与Activity一样,工作在系统后台,对于用户来说它是不可视的,可以与其他组件进行交互功能,有自己独立的生命周期[4]。Service为其它组件提供后台服务。例如播放音频文件时并不需要用户界面,Service可以在后台控制着播放音频的播放。通过调用Context.bindService( )方法或者Context.startService( )方法启动Service。

2.1.3 BroadcastReceiver

BroadcastReceiver是程序间信息传输机制,本质上是全局监听器[3]。过滤接收发送来的Broadcast并进行响应,提供组件间的信息传输机制,与系统应用和第三方应用进行信息的交互。BroadcastReceiver不能够生成UI,因此没有用户界面。广播之间的传输是通过Intent对象传递实现的。调用Intent方法又可分成显式调用和隐式调用两种。注册广播也有两种方式,一种是利用清单文件XML的静态注册,另一种为利用代码的动态注册。动态注册的程序只有当程序在运行时才能收到广播消息,而静态注册的程序无论何时都能接收到广播。

2.1.4 Content Provider

Content Provider提供安卓数据访问机制[5]。在安卓系统中,除了放在SD卡上的数据文件,其他各个应用中的私有数据都不允许另一个程序直接访问得到。但显然各个应用之间不可能没有任何数据联系。因此Android为各个应用都提供数据访问机制,这就是Content Provider。应用凭借派生Content Provider类,每个Content Provider数据集都用一个公开uri作为标识。一个Content Provider中包含多张数据包,这决定了有多少URI与这些表一一对应。

2.2 http协议

http协议(超文本传输协议)定义了客户端和服务器之间的通讯规则,是世界上使用范围最广的应用层协议。通信设备之间的消息传输机制需要一定的规则来维持,这样的网络通讯规则就被称为是网络协议。http应用层协议的实现依赖在传输层的TCP协议[6]。协议有可靠的传输保障是因为TCP用“三次握手”[7]的方式来确认信息在两端的可靠传输。第一次是客户机向服务器发送请求,第二次是服务器在收到客户机请求后向客户机发送确认消息,第三次是客户机发送对收到服务器发来确认消息的确认,这个原理能保证信息万无一失的传输。

http协议因以下特点而得到了广泛应用:

(1)简易快速:由于http协议较为简易,http服务器不必具有特别复杂的结构,为及时通信提供了协议保障[1]

(2)灵活:http协议不限制对象的类型,由Content-type字符串来标记响应的类型[2]。Content-type的响应内容包含多种类型,可能是请求一个语音资源,也可能是一张图片。

(3)无连接:无连接并不是指客户和服务端没有连接,而是没有一条持续时间的线路连接。当服务器收到客户端发来的确认响应后就断开了本次通信连接,客户端下一次请求同样要经过三次握手机制[8]。这样的传送机制对于两端硬件的要求较高,但是节省了传输时间。

(4)无状态:http协议是无状态的协议,因为http服务器并不会保存关于客户机的任何信息[3] 。

2.3 json数据格式

  Json是轻量级的数据交换格式,是传递对象的语法。服务器访问完数据库后返回json数据到前台,随后解析成能被客户端读取的数据结构并予以显示。Json能被多种编程语言解析并使用,可以使用ajax[9]方法来传递。比起XML,json更加简短,没有标签,无疑更适合开发者书写与描述,程序阅读者使用json格式来实数据现传输能更快速地阅读程序。XML语言的优势在于高级检索、数据存储的高性能。Json语言则相对轻巧,浏览器能快速解析该语言,在崇尚速度,效率为先的网络数据传输时代有着不可替代的作用。