1)全开放智能移动电话平台;
2)多硬件平台的支持;
3)使用众多的标准化技术;
4)核心技术完整、统一;
5)完善的SDK和文档;
6)完善的辅助开发工具。
由此可见,Android系统各方面的特点和未来智能手机的方向是密切相关的,它也代表并引领目前的技术潮流。
2.2 Android的开发工作
Android是一个开放的系统,这个系统的体积非常庞大,不同的开发者在开发过程中并不需要掌握整个Android系统,只需要进行其中某一个部分的开发。从功能上来区分,Android的开发分成3种类型:
1)移植开发移动电话系统;
2)Android系统开发;
3)Android应用程序开发。
从商业模式的角度来看,第一种类型的开发和第三种类型的开发是Android开发的主流。事实上,移动电话的制造者主要进行第一种类型的开发,其产品是Android手机;公司、个人和团体都可以进行第三种类型的开发,其产品是不同的Android应用程序。在Android的开发过程中,每一种类型的开发都只涉及整个Android系统的一个子集。在 Android系统中,有着众多的开发点,这些开发点既相互独立,又有内在联系[3]。论文网
2.2.1 Android移植开发
Android移植开发的最终目的的是为了开发手机产品,从开发者的角度来看,这种类型的开发以具有硬件系统为前提,在硬件系统的基础上构建Android软件系统。这种类型的开发工作在Android系统的底层。在软件系统方面,主要的工作集中在以下两个方面:
1)Linux中的相关设备驱动程序
驱动程序是硬件和上层软件的接口,在Android手机系统中,需要基本的屏幕、触摸屏、键盘等驱动程序,以及音频、摄像头、电话的Modem、Wifi、蓝牙等多种设备驱动程序[4]。
2)Android本地框架中的硬件抽象层
在Android中,硬件抽象层工作在用户空间,介于驱动程序和Android系统之间。Android系统对硬件抽象层通常都有标准的接口定义,在开发过程中,实现这些接口也就给Android系统提供了硬件抽象层。
2.2.2 Android系统开发
Android系统本身的功能也在增加和完善的过程中,因此Android系统的开发也是一个重要的方面。这种类型的开发涉及Android软件系统的各个层次。Android系统开发的一个比较典型的示例就是当系统需要某种功能时,为了给Java层次的应用程序提供调用的接口,需要从底层到上层的整体开发,步骤如下所示:
1)增加C或者C++本地库;
2)定义Java层所需要的类(系统API);
3)将所需要的代码封装成JNI;
4)结合Java类和JNI;
5)应用程序调用Java类[5]。
如果涉及Android系统API的改动,则一定要慎重,因为系统API的改动可能涉及Android应用程序的不兼容。在更多的时候,Android系统开发只是在不改变系统API的情况下修正系统的缺陷,增加系统的稳定性。
2.2.3 Android应用开发
Android的应用程序开发是Android开发的另一个方面,从开发的角度来看,这种形式的开发可以基于某个硬件系统,在没有硬件系统的情况下也可以基于Linux或者Windows下的Android模拟器来开发。这种类型的开发工作在Android系统的上层。
事实上,在Android软件系统中,第3个层次(Java框架)和第4个层次(Java应用)之间的接口也就是Android的系统接口(系统API)。这个层次是标准接口,所有的Android应用程序都是基于这个层次的接口开发出来的。Android系统的第4个层次就是一组内置的Android应用程序。文献综述