【Android源码 栏目提醒】:网学会员为需要Android源码 的朋友们搜集整理了【精品】安卓Android - 网络与通信相关资料,希望对各位网友有所帮助!
androidAndroid 一词的本义指“机器人”,同时也是 Google 于 2007 年 11 月 5 日宣布的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
目前,最新版本为 Android 2.4 Gingerbread 和 Android 3.0 Honeycomb。
系统简介 Android 是基于 Linux 内核的操作系统,是 Google 公司在 2007 年 11月 5 日公布的手机操作系统,早期由原名为Android的公司开发,谷歌在2005 年进行收购Android.Inc,Google 继续进行对 Android 系统开发运营,它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。
底层 Linux 内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以 Java 编写。
2011 年初数据显示,仅正式推出三年的操作系统 Android 已经超越称霸十年的塞班系统,采用 Android 系统主要厂商包括美国摩托罗拉(MOTOROLA)、韩国的三星(SAMSUNG)、英国索尼爱立信(Sony Ericsson)另外还有中国厂商如:中国台湾 HTC、联想、华为、中兴等,使之跃居全球最受欢迎的智能手机平台,Android 系统不但应用于智能手机,也在平板电脑市场急速扩张。
应用程序 Android 以 Java 为编程语言,使接口到功能,都有层出不穷的变化,其中 Activity 等同于 J2ME 的 MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的 Activity 就是在 foreground(前景)模式,背景运行的程序叫做 Service。
两者之间通过由 ServiceConnection和 AIDL 连结,达到复数程序同时运行的效果。
如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
View 等同于 J2ME 的 Displayable,程序人员可以通过 View 类与“XMLlayout”档将 UI 放置在视窗上,Android 1.5 的版本可以利用 View 打造出所谓的 Widgets,其实 Widget 只是 View 的一种,所以可以使用 xml 来设计 layout,HTC 的 Android Hero 手机即含有大量的 widget。
至于ViewGroup 是各种 layout 的基础抽象类(abstract class),ViewGroup之内还可以有 ViewGroup。
View 的构造函数不需要再 Activity 中调用,但是 Displayable 的是必须的,在 Activity 中,要通过 findViewById来从 XML 中取得 View,Android 的 View 类的显示很大程度上是从 XML 中读取的。
View 与事件(event)息息相关,两者之间通过 Listener 结合在一起,每一个 View 都可以注册一个 event listener,例如:当 View 要处理用户触碰(touch)的事件时,就要向 Android 框架注册 View.OnClickListener。
另外还有 Image 等同于 J2ME 的 BitMap。
中介软件 操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。
Bionic 是 Android 改良 libc 的版本。
Android 同时包含了 Webkit,所谓的 Webkit 就是 Apple Safari 浏览器背后的引擎。
Surface flinger 是就 2D 或 3D 的内容显示到屏幕上。
Android使用工具链Toolchain为 Google 自制的 Bionic Libc。
Android 采用 OpenCORE 作为基础多媒体框架。
OpenCORE 可分 7 大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia FrameworkPVMF、Operating System Compatibility LibraryOSCL、Common、OpenMAX。
Android 使用 skia 为核心图形引擎,搭配 OpenGL/ES。
skia 与 LinuxCairo 功能相当,但相较于 Linux Cairo skia 功能还只是雏形的。
2005年 Skia 公司被 Google 收购,2007 年初,Skia GL 源码被公开,目前 Skia 也是 Google Chrome 的图形引擎。
Android 的多媒体数据库采用 SQLite 数据库系统。
数据库又分为共用数据库及私用数据库。
用户可通过 ContentResolver 类(Column)取得共用数据库。
Android 的中间层多以 Java 实现,并且采用特殊的 Dalvik 虚拟机(Dalvik Virtual Machine)。
Dalvik 虚拟机是一种“暂存器型态”(Register Based)的 Java 虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik 虚拟机可以有多个实例(instance) 每个 Android 应用程序都用一个自属的 Dalvik 虚拟机来运行,让系统在运行程序时可达到优化。
Dalvik 虚拟机并非运行 Java 字节码(Bytecode),而是运行一种称为.dex格式的文件。
硬件抽像层 Hardware Abstraction Layer Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。
HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。
HAL stub 是一种代理人(proxy)的概念,stub 是以 .so 档的形式存在。
Stub 向 HAL“提供”操作函数 , (operations) 并由 Android runtime向 HAL 取得 stub 的 operations,再 callback 这些操作函数。
HAL 里 (代理人) Runtime 只要说明“类型”, module ID,包含了许多的 stub 。
即就可以取得操作函数。
编程语言 Android 是运行于 Linux kernel 之上,但并不是 GNU/Linux。
因为在一般 GNU/Linux 里支持的功能,Android 大都没有支持,包括 Cairo、X11、Alsa、FFmpeg、GTK、Pango 及 Glibc 等都被移除掉了。
Android 又以 bionic 以取代 Glibc、 Skia 取代 Cairo、再以 opencore 取代 FFmpeg 等等。
Android为了达到商业应用,必须移除被 GNU GPL 授权证所约束的部份,例如 Android将驱动程序移到 userspace,使得 Linux driver 与 Linux kernel 彻底分开。
bionic/libc/kernel/ 并非标准的 kernel header files。
Android 的kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
目前 Android 的 Linux kernel 控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。
下载
Android源码之前,先要安装其构建工具 Repo 来初始化源码。
Repo 是 Android 用来辅助 Git 工作的一个工具。
系统版本Android 1.1 发布时间:发布于 2008 年 9 月 代表手机:htc T-MOBILE G1Android 1.5 Cupcake 发布于 2009 年 5 月 代表手机:摩托罗拉 CLIQAndroid 1.6 Donut 2009 年 9 月发布 代表手机:索尼爱立信 X10,摩托罗拉 A1680Android 2.0 Eclair 2009 年 10 月 26 日 代表机型:摩托罗拉 XT800,摩托罗拉里程碑Android 2.1 Eclair Android 2.1: 2009 年 10 月 26 日,又一个主要版本升级以创纪录的速度放出。
这次,大版本升级到了 Android 2.1 “Eclair.” Android 2.1 主要特性: 提升硬件速度 更多屏幕以及分辨率选择 大幅度的用户界面改良 支持 Exchange 活动墙纸 大幅改进虚拟键盘 蓝牙 2.1 Google 地图 Android 2.0.1 SDK 于 2009 年 12 月 3 日 发布,之后是 2010 年 1月 10 日的 2.1 版本。
很多用户和围观群众可能会奇怪:“为什么Android 会用甜点作为它们系统版本的代号?”,这个命名方法开始于Andoird 1.5 发布的时候。
作为每个版本代表的甜点的尺寸越变越大,然后按照字母数序:小蛋糕,甜甜圈还有松饼。
之前人们预计 2.2 版本的代号会是“馅饼”,但这个被最终证明是错误的,“FroYo”(冻酸奶)才是Android 2.2 这个伴随 Google Nexus One 发布的新版的最新代号。
Android 2.2 Froyo 谷歌于北京时间 2010 年 5 月 20 日晚上 10:30 点在旧金山 Moscone 会展中心举办 Google I/O 2010 大会第二天的会议,Google 正式发布了代号是“froyo 冻酸奶”的 Android 操作系统 2.2 版。
相对于上一版本的 改变: 1、整体性能大幅度的提升 2、3G 网络共享功能。
3、Flash 的支持。
4、App2sd 功能。
5、全新的软件商店。
6、更多的 Web 应用 API 接口的开发。
Android 2.3 Gingerbread北京时间 2010 年 12 月 7 日凌晨,Google 正式对外发布了他们的下一代智能手机操作系统 Android 2.3 也就被大家所熟知的 Android Gingerbread系统。
主要更新包括: 游戏:增加了新的垃圾回收和优化处理事件,以提高对游戏的支持能力。
原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES。
新的管理窗口和生命周期的框架。
多媒体:支持 VP8 和 WebM 视频格式,提供 AAC 和 AMR 宽频编码,提供了新的音频效果器,比如混响、均衡、虚拟耳机和低频提升 通讯方式:支持前置摄像头、SIP/VOIP 和 NFC(近场通讯) 站在用户的角度看,这次更新的亮点主要有: 简化界面、速度提升: 更快更直观的文字输入: 一键文字选择和复制/粘帖: 改进的电源管理系统: 新的应用管理方式: 原生支持前置前置摄像头、互联网通话和 NFC(近场通讯): 系统原生支持 VoIP,可以在联系人里加入它的 SIP 帐户,然后直接通过系统来拨打 VoIP 电话。
增加下载管理器:Android 2.4 Gingerbread 就像 Android 2.0 和 2.1 版本都使用 Eclair(法式奶油夹心甜点)一样,Android 2.3 和 2.4 将会共享 Gingerbread(姜饼)代号。
这两个版本之间的变化不会太大,但是会有不少功能更新。
目前已知的 Android 2.4 带来的更新包括更多的动画特效、更快的运行速度、软件通话降噪、视频聊天等。
Android 2.4 系统不会是之前一直谣传的 Android 3.0,其真正的版本号将会是 Android 2.4。
Android 3.0 Honeycomb 2011 年 2 月 3 日凌晨,谷歌正式发布了专用于平板电脑的 Android 3.0 Honeycomb 系统。
这是首个基于 Android 的平板电脑专用操作。
首款采用 Android3.0 系统的是 MOTO XOOM 。
该机是摩托罗拉移动在 2011 年 1 月 5 日,在美国拉斯维加斯 CES 电子消费展推出的旗下首款平板电脑。
3.0 系统特性 专用于平板电脑 全新设计的 UI 增强网页浏览功能 n-app purchases 功能 经过优化的 Gmail 电子邮箱; 全面支持 Google MapsAndroid 3.1 Icecream 预计于 2011 年内发布。
Android 之父 Andy Rubin 微博辟谣将继续开源,又联想到 4 月 3 日 Google 网站上出现的 Ice Cream 图标,因为 GoogleAndroid 的全新版本“Ice Cream”,Ice Cream 可能将在不久后公布。
据传它的系统版本号将会是 Android 3.1。
这将是集合了 Android 2.3Gingerbread 和 Android 3.0 Honeycomb 优势的混合版本。
Android 历史 2008 年 9 月 22 日,美国运营商德国 T-Mobile 在纽约正式发布第一款Android 手机——T-Mobile G1。
该款手机为台湾宏达电HTC代工制造,是世界上第一部使用 Android 操作系统的手机,支持 WCDMA/HSPA 网络,理论下载速率 7.2Mbps,并支持 Wi-Fi。
2009 年 9 月初,摩托罗拉坐镇主场在旧金山举办的 Giga OM 2009 大会上携手 T-Mobile 正式发布了旗下首款搭载 Android 操作系统的智能手机---MOTO CLIQ ,在沉寂许久后的首次爆发吸引了全球无数用户的目光。
如果说 T-Mobile G1 的出世开辟了 Android 领域先河的话,那么摩托罗拉 CLIQ的发布则更多的被视为昔日手机霸主的强势回归! 2009 年 10 月 28 日正式发布了 Android 2.0 智能手机操作系统,今天摩托罗拉和网络运营商 Verizon 共同宣布了首款采用 Android 2.0 的手机Droid 2010 年 1 月索尼爱立信首款 Android 机型 X10 上市 2010 年 1 月 7 日,Google 在其美国总部正式向外界发布了旗下首款合作品牌手机 Nexus One(HTC G5),并同时开始对外发售。
2010 年 7 月 9 日,美国 NDP 集团调查显示,Android 系统已占据了美国移动系统市场 28的份额。
最新消息 北京时间 3 月 25 日消息,据国外媒体报道,谷歌周四表示,谷歌暂停开源 Android3.0,并将暂时阻止小型手机生产商使用其 Android3.0“Honeycomb”系统,期限未定。
谷歌一位发言人通过电子邮件声明称,Honeycomb 是专为平板电脑而非手机设计的,在该系统以开源形式发布前,还有很多工作要做。
谷歌向《商业周刊》表示,推迟发布可能达数月之久。
谷歌称:“代号为 Honeycomb 的 Android 3.0 系统,是针对大屏幕设备和改进小软件、多任务、浏览、通知和客户化等功能而设计。
虽然我们很高兴为平板电脑提供这些新功能,但交付给其他设备包括手机前我们有更多的工作要做。
我们决定暂不开放源代码。
我们致力于将 Android 作为跨多设备类型的开放式平台来提供,并在准备好时公布源代码”。
这意味着小型手机制造商要使用 Honeycomb 将不得不等待一段时间。
不过大型设备商如 HTC 和摩托罗拉,已经可以使用。
这些设备制造商一般安装在平板电脑中。
对此,谷歌工程副总裁和 Android 主管安迪鲁宾(Andy Rubin)表示:“为了制定平板电脑出货的时间表, 我们进行了一些折衷设计。
我们不想思考如何在手机上运行同一个软件”。
鲁宾还表示,谷歌不想冒险“带来非常糟糕的用户体验”。
今年 2 月在发布 Honeycomb 时,谷歌发言人称,目前是专为平板电脑设计,“以后这些功能将推广到手机上。
手机版的新 Android,可能不会被叫做“Honeycomb ”,也可能是与 3.0 不同的版本。
”开放手机联盟为了推广 Android,Google 和几十个手机相关企业建立了开放手机联盟(Open Handset Alliance)。
联盟成员包括美国摩托罗拉公司、中国台湾 HTC、韩国三星电子、NVIDIA、SiRF、Skype、联发科技 MTK 以及中国电信在内的 34 家技术和无线应用的领军企业。
这 34 家企业中并不包含把持 Symbian 的 Nokia 公司,以及凭借着 iPhone 风光正在的 Apple 公司。
微软没有加入,加拿大 RIM 和它的 Blackberry 也被挡在门外。
手机开放联盟大家庭成员名单: 1、手机和其他终端制造商 Motorola Mobility(摩托罗拉移动技术)- 美国 Sony Ericsson(索尼爱立信)- 英国 HTC(宏达国际电子)- 中国台湾 Samsung Electronics(三星电子)- 韩国 LG Electronics(LG 电子)- 韩国 Lumigon (丹麦陆力更手机公司)- 丹麦 ARCHOS(爱可视)- 法国 TOSHIBA(东芝)- 日本 2、移动运营商 China Telecom(中国电信)- 中国 China Mobile(中国移动)- 中国 China Unicom(中国联通)- 中国 SK Telecom - 韩国 KT - 韩国LG U - 韩国KDDI - 日本NTT DoCoMo(日本电信电话公司)- 日本Sprint Nextel(美国斯普林特 Nextel 公司)- 美国Telecom Italia(意大利电信)- 意大利Telefónica - 西班牙T-Mobile - 德国3、半导体公司 ARM- 英国Texas Instruments(德州仪器)- 美国Qualcomm(高通)- 美国NVIDIA(英伟达)- 美国MediaTek(联发科)- 中国台湾ST(意法半导体)- 欧洲Infineon(英飞凌科技)- 德国ST-Ericsson(ST 爱立信)- 欧洲Audience (听众)- 美国Broadcom (博通)- 美国Intel(英特尔)- 美国Marvell (俊茂微电子)- 美国SiRF(瑟夫)- 美国Synaptics(新思)- 美国HP(惠普)- 美国4、软件公司Aplix - 日本Ascender - 美国Skype(eBay)- 美国Esmertec(微迅)- 瑞士Living Image - 美国NMS Communications - 加拿大Noser Engineering AG - 德国Nuance Communication - 美国PacketVideo - 美国SkyPop - 美国Sonix Network - 美国The Astonishing Tribe - 瑞典Wind River Systems(风河)- 美国Android 平台经理谈 2011 年 Android 发展路线图 Google Android 平台经理 Eric Chu 明白虽然 android 智能手机用户在快速增长,但是付费应用的交易数量却表现惨淡。
在圣弗朗西斯科举行的Inside Social Apps 会议上,Chu 明确表示 Google 对付费应用交易完全不满意。
虽然目前对于 Google 在 2011 年的 Android 发展战略仍缺乏具体地消息(Chu 表示“敬请期待进一步消息”),但大致可以才想到 Google 会在下面几个方面发力。
In——app payments system(应用内交易系统): Chu 表示本季度 Android 将推出应用内交易系统,一年前苹果也有此类举措。
在应用内交易系统中,用户在应用内购买(译者:比如购买更多的功能或游戏装备等等),这将有助于开发者利用发展迅速的虚拟货物移动市场来实现盈利。
Carrier billing(运营商计费): 12 月,Google 推出 ATT 计费系统,用户可以通过手机话费来为应用付费,不需要采用另外一种支付系统。
希望 Google 能在全球与更多的运营商进行类似的合作,Chu 如此表示,另外还说与运营商建立付费系统虽然昂贵且耗时,但是对于用户来说是个很有价值的功能,同时也可以提高Android 应用的交易额。
Improve user discovery of apps in Market: Chu 表示已经有一个团队在负责剔除 Android Market 中的劣质应用,还表示将制定市场排名算法以帮助用户更方便地发现最好的应用。
Getting social(社会化): Chu 表示为了使得市场和 Android 更加社会化,Google 将推出“最好的社交图”——Android address book(安卓通讯录),并且对开发者开发。
Android address book 将聚合了多渠道的用户联系人 ,而不仅仅是Google 自己的通讯录。
Android 平台五大优势特色一、开放性 在优势方面,Android 平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到 Android 联盟中来。
显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟 。
开放性对于 Android 的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。
开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
二、挣脱运营商的束缚 在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。
自从iPhone 上市,用户可以更加方便地连接网络,运营商的制约减少。
随着 EDGE、HSDPA 这些 2G 至 3G 移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。
三、丰富的硬件选择 这一点还是与 Android 平台的开放性相关,由于 Android 的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。
功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。
好比你从诺基亚 Symbian风格手机一下改用苹果 iPhone,同时还可将 Symbian 中优秀的软件带到iPhone 上使用、联系人等资料更是可以方便地转移。
四、不受任何限制的开发商 Android 平台提供给第三方开发商一个十分宽泛、自由的环境。
因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。
但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android 难题之一。
五、无缝结合的 Google 应用 如今叱咤互联网的 Google 已经走过 10 年度历史。
从搜索巨人到全面的互联网渗透,Google 服务如地图、邮件、搜索等已经成为连接用户和互 而联网的重要纽带, Android 平台手机将无缝结合这些优秀的 Google 服务。
上一篇:
Android应用开发实战 文前
下一篇:
高校毕业生档案管理系统的研究和运用