Android系统架构如图2-1: 图2-1 系统功能模块图 对于每个框架层具体的含义如下: (1) 应用程序层 我们平常所说的Android平台并不只是指操作系统,它也包含
Android系统架构如图2-1:
图2-1 系统功能模块图
对于每个框架层具体的含义如下:
(1) 应用程序层
我们平常所说的Android平台并不只是指操作系统,它也包含了许多开发设计的应用程序,这些程序称之为APP,APP负责与用户进行交互。应用开发者就是在应用程序层进行应用开发实现。本课题的学生E管家就是在这一框架层开发的应用。
(2) 应用程序框架层
应用程序框架层是从事Android开发设计的基础,提供了开发应用所需的类库,开发人员可以在开发过程中直接使用这些类库提供的接口,更高效的进行程序开发。这一框架层分为不同的功能模块,比如:View System提供了创建应用界面UI视图的组件,包含ListView、TextView等Android开发界面的控件;ActivityManager用于管理各个应用程序的活动窗口、并为这些窗口提供交互的接口。
(3) 系统运行库层
由图中可知系统运行库层分为系统库和Android运行时两个部分,首先是系统库,连接应用程序框架层与内核层,应用程序框架层也可以理解为是对这一部分的一层封装,用于向应用层的开发人员提供统一的使用接口,系统库中还包含了数据库的操作、图形处理引擎以及多媒体库等等。然后是Android运行时部分,核心库提供Java语言API接口,虚拟机用于执行Android程序,可以适应低内存的移动设备环境
(4)内核层
内核层作为系统框架结构的最底层,借助Linux操作系统的内核服务来实现各个移动设备的硬件驱动,从而为上三层提供诸如内存与进程管理、设备电源使用管理等功能。对于架构的内核层,也可以理解成为硬件与软件之间的一层封装,将硬件设备抽象化,开发者开发时不需要考虑操作系统底层的内部实现细节,提升开发效率。
以上便是对Android操作系统四层框架结构的大致描述,四层之间层层嵌套,互相依赖,各层之间保持着高内聚低耦合的特性,即只要保证提供的接口没有变化,任意层变动并不会影响程序的应用开发,使开发者可以专心进行软件应用层的研发。
2.2 Java语言
选择用Java语言来进行程序开发是经过选择的,首先选择开发语言肯定是主流的很多人都在使用的语言,我们常用的语言有C、C++、Java、C#、Python和JavaScript+HTML,如果没有人用,那么类库就会比较少,库少后使用不便捷缺少效率,使用生态环境不好,不应该选择。排除了这个问题后,还要考虑哪些语言前景好,因为有些语言简化了程序员的负担,使开发效率更高。
对比C语言,现在大型的图形化界面程序基本是不用C的,C语言缺少纠错机制,就导致程序极容易崩溃,且C语言缺少面向对象,当进行工程化开发时就会极其麻烦。对比C#而言,Android是基于Linux的自由及开源的平台,C#并不是适合开源的语言。如果想开发一款本地APP并且手机性能并不高,除了C语言之外,运行效率最高的是C++,然后是才Java。但是C++重在运行效率,跨平台性较弱,开发难度高,而Android旨在跨厂商和不同硬件平台的程序实现,所以C++并不适合Android开发。
所以综合来看,Java是目前最适合开发Android应用的语言,Android在开发过程中,从接口到功能,都会存在层出不穷的变化,在开发过程中体现出来的Java的最大特性应该是提高了软件交互的可能性。Java作为发展最快的程序语言,兼具面向对象的特点,又比较通俗易懂,继承了C++语言的优点。并且Java语言是拥有独立体系结构的,可以在不同系统中运行并不受限制,使用Java语言开发的不同程序在不同结构的计算机显示的语言位数是统一的,这就保证了Java语言可以在不同的计算机结构中运行。