Android是为移动设备设计的真正开放的综合平台,包含操作系统、用户界面和应用程序。
历史
过去,使用C或C++进行编程开发的人员必须理解硬件特性。
后来,开发出像Symbian之类的平台,为开发人员提供更广泛的目标用户群,而开发人员可以更为高效的利用硬件。这些平台提供一些访问设备硬件的接口,但需要编写复杂的C/C++代码,而且需要依赖一些生涩的专有API,而硬件的可移植性可成为问题。
后来,移动开发引入Java承载的MIDlet。它在Java虚拟机执行,它将底层硬件抽象出来,可以让开发人员在多种硬件上开发,但这些硬件需要支持Java运行时。
通常,第三方应用的硬件访问和执行权限,与手机制造商编写的本机引用程序的权限是不同。
而Andorid提供以Linux内核为基础构建的开放的开发环境,通过一系列API库,所有应用程序可以访问硬件,并且可以在严格受控条件下完全支持应用程序间交互。
在Android中,所有应用程序拥有相同优先级,它们有相同的API编写,在相同的运行时执行。用户可以删除本地应用,并使用第三方应用代替。
误解
Android应用程序使用Java语言编写,但并不是运行在Java ME虚拟机上。
相对于iPhone是Apple的硬件软件平台,Android是OHA生产和支持的开源软件栈。
系统结构
Android由3个组件构成:
针对嵌入式设备的免费开源操作系统
用于创建应用程序的开源开发平台
运行Android操作系统及应用程序的设备
原生应用
Android手机通常会带有预装应用,它们是Android开源项目(Android Open Source Project,AOSP)的一部分,包括:
电子邮件客户端
SMS管理应用程序
个人信息管理套件(PIM)
基于WebKit的Web浏览器
音乐播放器
图片查看器
照相机和视频应用
计算器
闹钟
许多Android设备还提供Google移动应用程序:
第三方Android应用程序Google Play Store
Google地图应用
Gmail邮件客户端
Google Talk即时消息客户端
YouTube视频播放器
Android SDK
Android的特性包括:
支持电话或数据传输的GSM、EDGE、3G、4G、LTE网络,允许博大电话,收发SMS,允许在移动网络发送或接受数据
GPS和基于网络位置的检测
支持地图空间集成到应用程序
访问Wi-Fi硬件和点对点连接
多媒体硬件空间,包括摄像头和麦克风
加速计、罗盘和气压表等传感器硬件
蓝牙技术和NFC硬件进行点对点(P2P)数据传输
IPC消息传递
联系人、社交网络、日历和多媒体的共享数据存储
后台服务、应用程序和进程
主屏幕Widget和Live Wallpaper
应用程序搜索结果集成到系统搜索
集成基于WebKit的HTML5浏览器
硬件加速图形,包括基于途径的2D图形库,使用OpenGL ES 2.0的3D图形
动态资源框架本地化
重用应用程序组件和取代本地应用程序的框架