Skip to main content
 Web开发网 » 操作系统 » linux系统

Android网络编程概要

2021年10月14日7160百度已收录

Android网络编程概要

今天,Android上使用网络的应用越来越多,如电子邮件、Web浏览器和IM等传统的 应用都是基于网络的程序;微博、微信等大量的新兴应用都是在网络的基础上开发的;音 乐播放器、词典等传统的本地应用,在加人在线存储功能、在线推荐、分享等功能后也成 为网络应用。

随着Android的发展,其对网络编程的支持也日益强大。Android系统的功能已经远远 超过了普通通信手机的功能,更像是有手机功能的PC。Android网络编程将会变得更加简 洁和广泛:一方面Android的开源和强大的开发框架大大简化了网络应用的编程;另一方 面众多网络服务提供商的开放API也对网络编程提供了极大的便利。

在用Android编写网络程序的时候,需要了解一些Android开发的基础知识。本章将 概述Android的发展,讨论Android网络程序的功能,设置Android开发环境。本章最后将 用实战案例来具体分析Android网络编程的步骤。

Android 的发展

Android纪元正式开始于2008年10月22日。这天,T-MobileGl正式在美国公开发

售。时至今日,Android平台集成了操作系统、中间件、用户界面和应用软件,已经成为开 放和完整的移动生态系统,可谓发展飞速。

目前移动终端市场上,随着Android平台的发展以及不断完善,越来越多的厂商开始 选择Android系统作为其主要发展方向,自2008年9月Android系统的第一个版本发布 至今,Android系统在手机市场大放异彩,已经长期占据市场份额第一的位置。就目前来 说,Android手机的统治地位还是无可动摇的。Android 4.0版本发布以来已渐成主力,推 动Android手机和平板的份额不断提高,同时也为Android系统“碎片化”的问题提供了可 靠的解决方案。

Android系统能够取得今天的成功,最主要的应归功于其开源及免费性。正是在其开 源和免费的基础上,各大厂商纷纷在原生系统的基础上进行定制和扩展,植人自身的应用, 开发出更多有特色的产品,来满足市场的需求。这种情况在促进全球智能手机产业发展的 同时,也使得Android系统的覆盖面积更为广阔。

Android的开源,对于厂家来说可以更好地集成自己的产品和服务;开发者更可以在其 开源的基础上进行进一步开发,提供更好的应用;用户能用到免费的Android系统和众多的应用。

目前采用了 Android系统的主要的大手机厂商包括:HTC、联想、华为、中兴、魅族、 小米、酷派、天语、华硕、OPPO、三星、摩托罗拉、索尼、LG和夏普等。Android已经成 为互联网的重要人口和载体。很多互联网企业开始在Android系统上发力,360、盛大、百 度、阿里巴巴和网易等互联网巨头,均开始致力于千元左右的智能手机的开发。

Android的未来充满了活力,将给人们的生活带来更加深刻的变革。Google在Android 移动平台的基础上推出云音乐服务和电影服务,并与电子书服务相结合,提供更为全面的 内容资源。Android TV借助各种应用和游戏,变身成为客厅多媒体娱乐中心的理想将成为 现实。Android开放式配件标准包括第三方配件的硬件设计和系统API。第三方配件将会层 出不穷,届时这些配件均可得到Android设备的兼容支持。未来将会有更多的智能设备出 现,比如Android音箱、闹钟,甚至电饭锅、电冰箱等。如果有大量的Android第三方配件 出现,基于Android的家庭自动化则可以让整个家庭生活都会更方便、更欢乐。

Android功能特性

Android系统在其开放性的基础上,引人了很多由软件和硬件实现的实用功能,在方便 人们使用的同时,也给了开发者广阔的空间。下面是其中的一些重要的功能特性。

□数据存储。Android 提供了 SharedPreferences、ContentProvider、文件、SQLite 数据

库和网络等多种方式来存储数据。

□通信网络。Android操作系统支持所有的网络格式,包括GSM/EDGE、IDEN、 CDMA、EV-DO、UMTS、Bluetooth、Wi-Fi、LTE、NFC 和 WiMAX 等。

□信息。Android操作系统原生支持短信和邮件,并且支持所有的云端信息和服务器 信息。

□语言。Android操作系统支持多语言。

□浏览器。Android操作系统中内置的网页浏览器基于WebKit内核,并且采用了 Chrome V8引擎。在Android 4.0内置的浏览器测试中,HTML5和Acid3故障处理中均获得了满分。

□支持Java。虽然Android操作系统中的应用程序大部分都是由Java编写的,但是 Android却需要转换为Dalvik执行文件,在Dalvik虚拟机上运行。由于Android中并不 自带Java虚拟机,因此无法直接运行Java程序。不过Android平台上提供了多个Java 虚拟机供用户下载使用,安装了 Java虚拟机的Android系统可以运行J2ME的程序。 □多媒体。Android操作系统本身支持以下格式的音频/视频/图片媒体:WebM、 H.263、H.264 (in 3GP or MP4 container), MPEG-4 SP、AMR,AMR-WB (in 3GP container), AAC、HE-AAC (in MP4 or 3GP container), MP3、MIDI、Ogg Vorbis、 FLAC、WAV、JPEG、PNG、GIF、BMP。

□流媒体。Android操作系统支持RTP/RTSP (3GPPPSS,ISMA)的流媒体以及 (HTML5<video>)的流媒体,在安装了 RealPlayer之后,还支持苹果公司的流媒体。

□外围设备。Android操作系统支持识别并且使用视频/照片摄像头、多点电容/电阻 触摸屏、GPS、加速计、陀螺仪、气压计、磁强计、键盘、鼠标、U盘、专用的游 戏控制器、体感控制器、游戏手柄、蓝牙设备、无线设备、感应和压力传感器、温 度计、2D和3D图形加速等。

□多点触控。Android内核支持原生的多点触摸。

□多任务处理。Android操作系统支持原生的多任务处理。

□语音功能。除了支持普通的电话通话之外,Android操作系统从最初版本就支持使用 语音进行网页搜索等功能。而从Android 2.2开始,语音还可以用来输人文本、实现 语音导航等功能。

□无线共享功能。Android操作系统支持用户使用本机充当无线路由器,并且将本机的网 络共享给其他手机,其他机器只需要通过WiFi寻找到共享的无线热点,就可以上网。

□截图功能。从Android 4.0版本开始,Android操作系统便支持截图功能,该功能允许用 户直接抓取手机屏幕上的任何画面,用户可以通过编辑功能对截图进行处理,还可以通 过蓝牙、Email、微博等方式共享给其他用户或者上传到网络上,也可以复制到计算机中。

□ Google Now。Google Now是Android 4.1的一个新功能,这个功能可以根据搜索历 史或者日历以及其他更多数据来预测出用户想要的到底是什么,并在指定的时间或 者地点进行搜索并提出反馈建议。比如当用户有一个新的日历预约,Google将利用 各种信息(交通数据、地图、公交换乘)来帮助用户准时到达预约地点;如果用户 搜索了一个航班信息,Google将会持续通知这个航班的动态更新;甚至还可以跟踪 一个球队的表现情况。

□ Android Beam功能。Android Beam优化了近场通信以及蓝牙分享功能。

□ Smart App Updates。Smart App Updates是一种智能型的应用更新模式,应用程序在 更新时不需要下载整个APK,只需要下载修改的部分即可,这样更节省流量。

Android系统构架

Android不仅仅局限于操作系统,Android平台由操作系统、中间件、用户友好的界面 和应用软件组成。Android核心是经过Google剪裁和调优的Linux Kernel,对于掌上设备 的硬件提供了优良的支持;在Dalvik虚拟机上,大部分Java核心类库都已经可以直接运 行;拥有大量立即可用的类库和应用软件,可以轻易开发出可媲美桌面应用复杂度的手机 软件;基于Android,Google已经开发大量好的应用软件,同时可以直接使用Google很多 的在线服务;Google还提供了基于Eclipse的完整开发环境、模拟器、文档、帮助和示例。

Android系统框图如图1-1所示。可以看出Android分为5层,从低到高分别是Linux Kernel内核层、Android系统库、Android运行时、应用程序框架层和应用层。

□ Linux Kernel内核层。Linux内核层是硬件和软件层之间的抽象层。其包含了显示驱 动、摄像头驱动、蓝牙驱动、闪存驱动、IPC管道通讯驱动、USB驱动、键盘驱动、 Wi-Fi无线驱动、音频驱动和电源管理驱动。最下层是Linux系统核心驱动,主要用□ Android系统库。Android包含一个C/C++库的集合,供Android系统的各个组件使用。 这些功能通过Android的应用程序框架提供给开发者。其核心库包含:SurfaceManager 显示系统管理库,负责把2D或3D内容显示到屏幕;Media Framework媒体库,负责 支持图像,支持多种视频和音频的录制和回放;SQLite数据库引擎、OpenGL ES图形 弓丨擎、FreeType位图和矢量字体渲染引擎、Webkit浏览器引擎、SGL基本的2D图形 弓丨擎、SSL安全套接字层引擎、Libc库以及Android Dalvik虚拟机运行库。

□ Android运行时。Android包含一个核心库的集合,提供大部分在Java编程语言核 心类库中可用的功能。Dalvik被设计成在一个设备可以高效地运行的多个虚拟机, 每一个Android应用程序都在它自己的进程中运行,也就是都有一个属于自己的 Dalvik虚拟机。这可以让系统在运行时可以优化,从而使程序间的影响大大降低。 Dalvik虚拟机并非运行Java字节码,而是运行自己的字节码。Dalvik虚拟机依赖于 Linux内核提供基本功能,如线程和底层内存管理。

□应用程序框架层。应用程序框架层简化了程序开发的架构设计,开发者可以完全使 用核心应用程序所使用的框架接口,任何应用程序都能发布它的功能,且任何其他 应用程序可以使用这些功能(需要服从框架执行的安全限制)。应用程序框架层主要 是系统管理类库,包括Activity管理、窗口管理、内容提供、显示系统基类、消息 通知管理、程序包管理、电话管理、资源管理和定位管理。

□应用层。Android应用层包含核心应用程序,如Home桌面、Contacts联系人、Phone拨打电话、Browser浏览器等,开发者的大部分应用也在这一层。

评论列表暂无评论
发表评论
微信