Android是Google(谷歌)公司发布的基于Liunx内核的,专门为移动设备开发的平台,其中包含了操作系统,中间件和核心应用等。Android是一个完全免费的手机平台,使用它不需要授权费,可以完全定制。另外,由于Android底层架构使用开源的Linux操作系统,同时开放了应用程序开发工具,使所有程序开发人员都可以再统一的、开放的平台上进行开发,从而保证了Android应用程序的可移植性。
由于Android使用Java作为其主要的程序开发语言,所以不少Java开发人员加入到此开发阵营,这无疑加快了Android队伍的发展速度。
Android本意是指“机器人”,标志也是一个机器人,如图所示。它是Google公司专门为移动设备开发的平台。Android最早由Andy Rubin创办,于2005年被搜索“巨人”Google公司收购。2017年11月5日,Google公司正式发布了Android 1.0手机操作系统。在2010年底,Android超越称霸10年的诺基亚Symbian系统,成为全球最受欢一的智能手机平台之一。
在Android的发展过程中,已经经历了十多个主要版本的变化,其主要的版本的代号都是以甜点来命名的,该命名方法开始于Android 1.5版本,并按照首字母排序:纸杯蛋糕、甜甜圈、闪电泡芙、冻酸奶、姜饼、蜂巢......迄今为止,Android发布的主要版本如图所示:
Android系统架构从下到上可以分为Linux Kernel、Libraries和Android Runtime、Application Framework以及Applications四层,其中Libraries与Android Runtime在同一层,如图所示:
Applications是用Java语言编写的运行在Android平台上的程序,如Google默认提供的通讯录、SMS短信、日历、地图及浏览器等程序。作为Android开发人员,通常需要做的就是编写在应用层上运行的应用程序,例如,王者荣耀、贪吃蛇大作战、手机QQ等程序。
无论是Android提供的应用程序还是开发人员自己编写的应用程序,都需要使用Application Framework(应用程序框架)。通过使用Application Framework,不仅可以大幅度简化代码的编写,而且可以提高程序的复用性。
Android应用框架层提供的主要API框架如下:
⭐Activity Manager:活动管理器,用来管理应用程序生命周期,并提供常用的导航退回功能。
⭐Window Manager:窗口管理器,用来管理所有的窗口程序。
⭐Content Providers:内容提供器,它可以让一个应用访问另一个应用的数据,或共享它们自己的数据。
⭐View System:视图管理器,用来构建应用程序,比如列表、表格、文本框及按钮等。
⭐Notification Manager:通知管理器,用来设置在状态栏中显示的提示信息。
⭐Telephony Manager:电话管理器,用来对联系人及通话记录等信息进行管理。
⭐Resource Manager:资源管理器,用来提供非代码资源的访问,例如,本地字符串、图形及布局文件等
⭐Location Manager:位置管理器,用来提供使用者的当前位置等信息,如GPRS定位。
本层主要由两部分组成,一部分时Android提供的一组C/C++库,为平台的不同组件所使用。开发人员通过Application Framework来使用这些库所提供的不同功能。另一部分时Android运行时,包括核心库和Dalvik虚拟机两部分。核心库中提供了Java语言核心库中包含的大部分功能,虚拟机负责运行程序。Dalvik虚拟机专门针对移动设备进行编写,不仅效率更高,而且占用内存更少。
说明:这里面的Dalvik虚拟机与Java虚拟机JVM不同,Dalvik是基于寄存器,而JVM是基于栈的,基于寄存器的虚拟机对大程序来说,在编译时花费的时间更短。另外,java虚拟机运行的是Java字节码,而Dalvik虚拟机运行的是专有的Dex(Dalvik Executable)格式文件。
Android的核心系统服务依赖于Linux内核,包括安全性、内存管理、进程管理、网络协议栈和驱动模型等。另外,Linux内核同时也是硬件和软件栈之间的抽象层,而Android更多的是需要一些移动设备相关的驱动程序,如照相机驱动,蓝牙驱动和USB接口驱动等。