Android最初也是只针对手机研发的操作系统,所以它具有手机终端应该具有的电话、短信、邮件、多媒体和上网等常规功能。随着应用范围的扩大,Android逐渐应用于智能电视、平板、智能家电等设备,因此其兼顾了用户体验、娱乐性和控制性等功能需求。下面介绍Android系统的主要特性。
Android广泛支持所有网络制式的语音、数据业务、SMS短信,包括GSM/EDGE、IDEN、CDMA、EV-DO、UMTS、Bluetooth、Wi-Fi、LTE、NFC和WiMAX。
一方面,Android提供了高效、快速的数据存储方式,包括快速格式化数据存储SharedPreferences、内存文件存储、外存文件存储和轻量级关系数据库存储SQLite。应用程序可以选择合适的方式保存和访问数据。另一方面,为了实现跨进程共享数据,Android提供了通用的数据共享组件ContentProvider,可以在无须了解数据源、路径的情况下,对共享数据进行查询、添加、删除和更新操作。
一方面,Android系统支持更大的分辨率,VGA、2D显示、3D显示都是基于OpenGL ES 2.0标准,并且支持传统的智能手机。Android提供了丰富的界面控件供开发者调用,从而加快了用户界面的开发速度,也保证了Android平台上程序界面的一致性。Android将界面设计与程序逻辑分离,使用XML文件对界面布局进行描述,有利于界面的修改和维护。
Android广泛支持各种流行的视频、音频和图像文件格式,支持的格式有MPEG4、H264、MP3、MP4、AAC、AMR、JPG、PNG、BMP和GIF,并且为2D和3D图像处理提供了专用的API库。如果用户需要播放更多格式的媒体,还可以安装其他第三方应用程序。Android支持RTP/RTSP(3GPP、PSS、ISMA)的流媒体以及(HTML5<video>)的流媒体,同时还支持Adobe公司的Flash。安装RealPlayer后,还可以支持苹果公司的流媒体。
Android系统提供了访问硬件的API库函数,用来简化硬件资源的访问过程。只要支持Android应用程序框架的设备,对硬件的访问方法都是完全一致的。即使应用程序移植到不同硬件配置的设备上,也无须修改应用程序对硬件的访问方法。Android支持的硬件非常多,包括视频/照片摄像头、多点电容/电阻触摸屏、GPS、气压计、加速计、磁场计、陀螺仪、鼠标键盘、USB Disk、体感控制器、蓝牙设备、无线设备、压力传感器、温度计等。
Android使用Intent组件实现轻量级的进程通信,使跨进程通信和发送系统级广播成为可能。通过设置组件的Intent过滤器、应用匹配和筛选机制,可以准确地隐式启动远程Activity组件。
Android支持位置服务和地图应用,开发者可以通过SDK提供的API直接获取当前的位置、追踪设备的移动路线,并且可以将Google地图、百度地图或其他第三方地图嵌入Android应用程序中,实现地理信息可视化开发。
大部分Android应用程序都是基于Java语言编写的,但是Android是将程序转换成Dalvik Executables的文件才能在Dalvik虚拟机上运行。通常可以通过在Android SDK(Android软件开发包)中使用Java作为编程语言开发应用程序,开发者也可以通过在Android NDK(Android Native开发包)中使用C或者C++语言开发应用程序的部分核心模块,以提高应用程序的运行效率,有助于增强Android开发的灵活性。此外,Google公司还推出了Google App Inventor开发工具,该开发工具可以快速地构建应用程序,方便新手开发者。
由于Android系统的开放性和可移植性,可以运行在大部分智能电子设备上,主要包括智能手机、智能家电、平板电脑、掌上游戏机、智能手表、汽车设备、导航仪、穿戴设备等。Android系统大多运行在ARM架构的硬件设备上,但是也有支持X86架构的Android版本,例如Google TV就是使用了一个定制的X86架构版本的Android操作系统。
同样,苹果公司的iOS设备、微软公司的Windows Phone设备也可以安装Android操作系统,但是需要通过双系统启动工具Open iBoot或者iDroid来运行它们。
沙箱(Sandbox)是Android系统所用的安全机制,所有的应用程序都会被简单地解压到沙箱中进行检查,并且将应用程序所需的权限提交给Android系统,然后以列表的形式展现出来,供用户查看。例如一个第三方应用需要具有拨打电话、发送短信、访问联系人等权限,用户可以根据权限列表考虑自己是否安装该应用,也可以先安装该应用程序,然后关闭该应用程序的某些权限。
随着Android系统版本的升级,Google公司采用了更严格的权限管理机制,自Android 6.0开始,应用程序的一些权限的申请不再采用基于清单文件的一次性静态申请方式,而是在每次应用程序启动时动态申请,如外部存储器的读写操作权限。
Android作为一种开源的操作系统,其在手机操作系统领域的市场占有率已经超过了80%,成为当今智能手机的主要操作系统之一。Android之所以能受到市场的广泛欢迎,是因为其具有独特的开发优势,如图1-3所示。
图1-3 Android平台的优势