一、Android应用程序的架构
Android软件层次结构自上而下可以分为:
l 应用程序(Application)
l 应用程序框架(Appliciation Framework)
l 各种库(Libraries)和Android运行环境(RunTime)
l 操作系统层(OS)
二、应用程序
Android的应用程序通常涉及用户界面和用户交互,这类程序是用户实实在在能感觉到的。Android的应用程序目前以JAVA语言进行编写。应用程序的开发者还可以使用应用程序框架层的API实现自己的程序,这也是Android开源的具体体现。
三、应用程序框架
l UI组件:包括列表,文本框,按钮。
l Content Providers:通俗的理解Content Provider就是提供了一种机制,通过这种机制,应用程序可以实现数据的互访和共享。
l Resource Manager :负责管理非代码,如本地图片资源,涉及布局的XML文件及国际化的字符串等。
l Notification Manager :它能让程序将自己的警示信息显示在状态栏上。例如短信,来电提醒等。
l Activity Manager :它管理着应用程序的生命周期,并且提供了应用页面退出的机制。在Android应用中,每一个应用一般是由多个页面组成的,而每个页面的单位就是Activity,再通俗地讲,可以认为Android的应用是由多个Activity的交互构成的。
四、库和运行环境
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。核心库:
l 系统C库:专门为基于嵌入式linux的设备而定制的;
l 媒体库:支持多种常用的音频,视频格式回放和录制,同时支持静态图像文件;
l Surface Manager :对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合;
l LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图;
l SGL :底层的2D图形引擎;
l 3D libraries:基于OpenGL ES 1.0 APIs实现,该库可以使用硬件3D加速,或者使用高度优化的3D软加速;
l FreeType :位图和矢量字体显示;
l SQLite :一个对于所有应用程序可用,功能强大的轻型关系型数据库引擎;
五、android应用程序的组成
Android应用程序一般由以下四个部分组成:Activity,Broadcast Intent Recevier,Service,Content Provider。
当然一个应用程序可以由上述的四个或者四个中的其中部分组成。
在android项目里边有一个XML的描述文件,叫做AndroidManifest.xml。在这个文件中需要声明用到的上边4类组件名称,以及可能为每个组件的功能和需求进行必要的描述。
通过Intent我们可以在多个Activity之间进行跳转。Intent中有两个最重要的部分是Intent的动作和动作对应的数据。典型的动作有MAIN,VIEW,PICK,EDIT等。而动作对应的数据则以URI的形式进行表示。与Intent有关系的一个类叫做Intent Filters。如果说Intent是一个有效的请求,一个Intent Filters则用于描述一个Activity能够操作哪些Intent。一个Activity如果要显示一个人的联系方式时,需要声明一个Intent
Filters,这个Intent Filters要知道怎样去处理VIEW动作和表示一个人的URI.Intent Filters一般在AndroidManifest.xml中定义。
可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。BroadcastReceiver不能生成UI,即对于用户不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager来通知用户这些事情发生了。BroadcastReceiver即可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要注册了,当事件来临的时候,即使程序没有启动,系统也在变需要的时候启动程序,各种应用还可以通过使用Context.sendBroadcasr()将它们自己的intent
broadcast广播给其他应用程序。
Android数据在系统中是私有的,当然这些数据包括文件数据和数据库数据,以及一些其他类型的数据。Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或者读取此Content Provider的各种数据类型。
六、android 应用工程文件的组成
l 源文件:在src目录中
l R.java文件:这个文件由eclipse自动生成,开发者不需要修改里边的内容,里边内容的修改由eclipse自动处理,R文件对于应用开发者来说基本上没有什么用,但是对Android系统非常有,android对于资源进行了全局索引,当res文件夹中的内容发生变化时,R.java都会重新编译,同步更新。
l Android Library:这是应用程序运行的Android库
l Assets目录:存放多媒体等一些文件
l Res目录:放置应用用到的资源文件,在这个文件中发生变化时,R文件就会自动发生变化
l Drawable目录:主要放置应用到的图片资源
l Layout 目录:主要放置用到的布局文件,都是XML文件
l Values目录:主要存放字符串,颜色,数组,都是XML文件
l AndroidManifest.xml:相当于配置文件,在这个文件中必须声明应用的名称,应用所用到的Activity,Service以及Receiver等。