Android系统原理及开发要点详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 Android的开发工作

Android是一个开放的系统,这个系统的体积非常庞大,不同的开发者在开发过程中并不需要掌握整个Android系统,只需要进行其中某一个部分的开发。从功能上来区分,Android的开发分成3种类型:

第一,移植开发移动电话系统;

第二,Android应用程序开发;

第三,Android系统开发。

从商业模式的角度来看,第一种类型的开发和第二种类型的开发是Android开发的主流。事实上,移动电话的制造者主要进行第一种类型的开发,其产品是Android手机;公司、个人和团体都可以进行第二种类型的开发,其产品是不同的Android应用程序。

在Android的开发过程中,每一种类型的开发都只涉及整个Android系统的一个子集。在Android系统中,有着众多的开发点,这些开发点相互独立,又有内在联系。在开发的过程中,需要重点掌握目前开发点涉及的部分。

提示:Android是一个比较庞大的软件系统,在开发过程中,应该重点掌握开发点,系统中还有很多比较固定的部分,一般不需要进行开发。

第一种类型和第二种类型的开发如图1-5所示。

图1-5 Android的移植开发手机和应用程序开发

第一种开发是构建硬件系统,并且移植Android的软件系统,最终形成手机产品。第二种开发是开发出各种Android应用程序,然后将这些应用程序投入Android市场,进行交易。

↘ 1.2.1 Android移植开发

Android移植开发的最终目的是为了开发手机产品,从开发者的角度来看,这种类型的开发以具有硬件系统为前提,在硬件系统的基础上构建Android软件系统。这种类型的开发工作在Android系统的底层。在软件系统方面,主要的工作集中在以下两个方面:

Linux中的相关设备驱动程序

驱动程序是硬件和上层软件的接口,在Android手机系统中,需要基本的屏幕、触摸屏、键盘等驱动程序,以及音频、摄像头、电话的Modem、Wifi、蓝牙等多种设备驱动程序。

Android本地框架中的硬件抽象层

在Android中,硬件抽象层工作在用户空间,介于驱动程序和Android系统之间。Android系统对硬件抽象层通常都有标准的接口定义,在开发过程中,实现这些接口也就给Android系统提供了硬件抽象层。

Android移植开发的结构如图1-6所示。

图1-6 Android移植开发的结构

上面的两个部分综合起来,即完成了Android系统的软件移植。移植成功与否取决于驱动程序的品质和对Android硬件抽象层接口的理解程度。

↘ 1.2.2 Android应用开发

Android的应用程序开发是Android开发的另一个方面,从开发的角度来看,这种形式的开发可以基于某个硬件系统,在没有硬件系统的情况下也可以基于Linux或者Windows下的Android模拟器来开发。这种类型的开发工作在Android系统的上层。

事实上,在Android软件系统中,第3个层次(Java框架)和第4个层次(Java应用)之间的接口也就是Android的系统接口(系统API)。这个层次是标准的接口,所有的Android应用程序都是基于这个层次的接口开发出来的。Android系统的第4个层次就是一组内置的Android应用程序。

作为Android应用程序开发者,其开发的应用程序其实和Android系统的第4个层次的应用程序是一个层次的内容。例如,Android系统提供了基本的桌面程序,开发者可以根据Android的系统接口,实现另外一个桌面程序,提供给用户安装使用;根据Android系统的接口开发游戏,也是Android应用程序开发的一个重要方向。

Android应用程序开发的结构如图1-7所示。

图1-7 Android应用程序开发的结构

↘ 1.2.3 Android系统开发

Android系统本身的功能也在增加和完善的过程中,因此Android系统的开发也是一个重要的方面。这种类型的开发涉及Android软件系统的各个层次。

Android系统开发的一个比较典型的示例就是当系统需要某种功能时,为了给Java层次的应用程序提供调用的接口,需要从底层到上层的整体开发,步骤如下所示:

① 增加C或者C++本地库;

② 定义Java层所需要的类(系统API);

③ 将所需要的代码封装成JNI;

④ 结合Java类和JNI;

⑤ 应用程序调用Java类。

如果涉及Android系统API的改动,则一定要慎重,因为系统API的改动可能涉及Android应用程序的不兼容。

在更多的时候,Android系统开发只是在不改变系统API的情况下修正系统的缺陷,增加系统的稳定性。

Android系统开发的结构如图1-8所示。

图1-8 Android系统开发的结构

提示:Android系统API的接口是Java语言,在通常情况下,更改接口函数的格式(参数、返回值)、常量的值等内容属于更改系统API。事实上,在不改变函数格式的情况下,更改了函数的行为,这其实也属于更改了系统API的情况,可能造成已有程序的不兼容。