手机作为一种通讯终端(MMS),伴随着网络的升级而不断的升级换代。1995年1G问世,手机只能进行基本的语音通讯,1996-1997年2G(GSM,CDMA)及其后的GPRS,EDGE等技术的快速发展,手机开始逐渐增加了数据服务功能。2009年开始,3G在全世界开始大规模布置以及苹果创造性开发新型苹果手机。手机慢慢的变成互联网的终端,从而带动了一个新的时代--移动互联网时代。因此现代手机通常都支持这些常用网络设备,如WIFI,NFC,蓝牙等。

Android是由互联网巨头Google带头开发的,因此对网络功能的支持是必不可少的。Google的应用层采用的是Java语言。所以JAVA支持的网络编程方式Android都支持,同时Google还引入了Apache 的HTTP扩展包。另外,针对WIFI,NFC,分别提供的单独的开发API.

表1展示了Android SDK中的一些与网络有关的API包名

表1. Android SDK 网络包

描述

API Level

Java.net

提供与联网有关的类,包括流和数据包(datagram)sockets、Internet 协议和常见 HTTP 处理。该包是一个多功能网络资源。有经验的 Java 开发人员可以立即使用这个熟悉的包创建应用程序。

1

java.io

虽然没有提供显式的联网功能,但是仍然非常重要。该包中的类由其他 Java 包中提供的 socket 和连接使用。它们还用于与本地文件(在与网络进行交互时会经常出现)的交互

1

java.nio

包含表示特定数据类型的缓冲区的类。适合用于两个基于 Java 语言的端点之间的通信。

1

org.apache.*

表示许多为 HTTP 通信提供精确控制和功能的包。可以将 Apache 视为流行的开源 Web 服务器。

1

android.net

除核心 java.net.* 类以外,包含额外的网络访问 socket。该包包括 URI 类,后者频繁用于 Android 应用程序开发,而不仅仅是传统的联网方面。

1

android.net.http

包含处理 SSL 证书的类。

1

android.net.wifi

包含在 Android 平台上管理有关 WiFi(802.11 无线 Ethernet)所有方面的类。

1

android.telephony.gsm

包含用于管理和发送 SMS(文本)消息的类。一段时间后,可能会引入额外的包来来为非 GSM 网络提供类似的功能,比如 CDMA 或 android.telephony.cdma 等网络。

1

Android.net.sip

包含Andriod平台上管理有关SIP协议如建立和回应Voip的类

9

Android.nfc

包含所有用来管理近场通信相关的功能类

9

在Android中,常见有如下几种情况的网络编程开发:

  • 针对TCP/IP的Socket,SeverSocket编程和针对UDP的DatagramSocket,DatagramPackage这里需要注意的是,考虑到Android设备通常是手持终端,IP都是随着上网进行分配的。不是固定的。因此开发也是有一点与普通互联网应用有所差异的。
  • 针对URL的URLConnection和HttpURLConnection

· 针对HTTP,Google集成了Appache Http core和httpclient 4版本,因此特别注意Android不支持httpclient 3.x系列,而且目前并不支持Multipart(MIME),需要自行添加httpmime.jar

· Android可以通过开源包如jackson去支持Xmlrpc和Jsonrpc,另外也可以用Ksoap2去实现Webservice

· 基于WebView 进行开发,Google已经提供了一个基于chrome-lite的Web浏览器,直接就可以进行上网浏览网页。

我们知道手机不同于PC,PC电脑主要用于办公娱乐,手机最开始就是作为一种通信终端出现的,专业称之为移动台MMS。手机进行通信需要依赖于无线网络,这里无线网络是指采用无线传输媒介(如无线电波、红外线等)的网络。通常指允许用户建立远距离无线连接的全球语音和数据网络,也包括为近距离无线连接进行优化的红外线技术及射频技术。无线网络种类比较多,通常按照覆盖区域的大小分为无线广域网、无线城域网、无线局域网及无线个域网。每种网络实现的技术也是有很大差异,通常无线广域网和无线城域网由一些专门的运营商进行运营,采用国际标准的通信技术如2G及2.5G(GSM,GPRS,EDGG,CDMA,CDMA-2000)、3G(WCDMA,TD-SCDMA,CDMA-EVDO,HSPDA等)以及未来将要实现的4G (WIMAX,TD-LTE,FDD-LTE)。无线局域网WLAN通常是指的WIFI。无线个域网通常指得是Bluttooth,现在比较流行的NFC也是无线个域网范围。当然其它像物联网、企业网(如对讲机)等这些也包含无线网络概念,只是强调的重点不一样。

通过查看API,在andorid.net.ConnectivityManager中显示出支持连接类型(TYPE_MOBILE,TYPE_MOBILE_DUN,TYPE_MOBILE_HIPRI,TYPE_MOBILE_MMS,TYPE_MOBILE_SUPL,TYPE_WIFI,TYPE_WIMAX)