Android系统有着众多基础的开发程序,如文件管理器、手机通讯等。最初,程序员们只能用Java语言在Android平台进行开发,但是近年来,Google推出了Android NDK,这是一个可以使用C/C++语言的平台,吸引了很多C语言的程序员投身到Android开发中去。
Android应用程序的开发基于框架和组件。Android平台人性化提供了众多组件和程序供使用者调用,同时也允许程序员们开发设计出自己需要的组件,并将这些组件应用到软件中来供其他使用者调用。
2.1 Android的架构
Android的系统架构和其它操作系统一样,采用了分层的架构。Android的架构分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。详细内容见图2.1所示:
1.应用程序
应用程序基本是由Java编写的具有某一功能的应用包,可以被用户直接调用,比如手机通讯录、备忘录、浏览器等。
2.应用程序框架
该框架对组件的重用做了简化,让每一应用程序都可以设计出符合自己期望的功能块,而且此功能块还能被其他应用程序所调用,当然这一切的基础还是要建立在系统的安全规则之上。除此之外,用户可以通过该框架轻松替换原系统的组件。
3.系统运行库
1) 程序库
Android 也有一些C/C++库,Android平台里的各种组件可以通过应用程序框架来调用库的内容,从而实现软件人员的设计要求。
2.1 Android的系统架构图
2) Android 运行库
Android 运行库中最重要的内容是核心库,它为系统编程的大部分功能服务。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。同时虚拟机是基于寄存器的,所有的类都经由Java编译器编译,然后通过SDK中的 "dx" 工具转化成.dex格式由虚拟机执行。
4.Linux 内核
Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Android通过添加虚拟层,将硬件模块和操作系统分开来,这个虚拟层就是Linux 内核。其外还对Linux 内核做了两部分修改,具体如下:
1) Binder (IPC):主要是用来保证进程间能够顺利进行通信,它是Android自己开发的一套通信功能,供Android系统服务使用,不完全依赖于linux内核。
2) 电源管理:主要是调节电源模式,延长手机使用时间。
2.2 Android的组件和进程
Android 常用的组件包括:Activity、Intent、BroadcastReceiver、ContentProvider和Service。下面分别简介一下:
1)Activity
Activity是程序的界面,开发者可以在该界面对其进行设计、修改。在一个Android应用中,可以有多个Activity,当从一个Activity切换至另一个时,之前的Activity会被暂停。Activity操作界面的大小可以随意设置,可以是全屏或者是对话框的形式。
2)Intent
Intent是一个消息框架,可以在整个程序中运行,发送给Activity或是Service执行设计者的要求。数据传输实现的方法非常简单,创建对象之后,再调用setXXX()的方法去设置对应的属性即可。
3)BroadcastReceiver
虽然BroadcastReceiver不执行任何任务,但仍能有很多用途,能对外部事件做出响应,所以只要外部事件来临时,应用程序就可以通过BroadcastReceiver去广播消息给其他应用程序,由此来实现众多功能。
4)ContentProvider 基于Android的手机信息查询助手中硬件查询信息模块设计(4):http://www.751com.cn/jisuanji/lunwen_18891.html