Android构建模块

 

你可以认为一个Android的应用是不同种类的模块集合。这些模块大部分都是十分松散地联合到一起,联合到你可以准确地把它们描述为一个联合体的程度,而不是单一的粘合的应用。

 

一般地,这些模块大都运行在同一个系统进程。它可能或者非常普遍地在这个进程中创建多个线程,如果你需要,那么也有可能创建完整的独立子进程。这样的情况不是很常见,因为Android做了很大努力来让进程对你的代码透明。

 

这里是Android API最重要的部分:

 

AndroidManifest.xml

 这个文件是一个控制文件,它来告诉系统你创建的顶层的模块都要干什么,这些模块包括Activities,Services,Intent Receivers和Content Providers。例如,这实际上就是制定你的Activity能接收那个Intent的一种粘合剂。

 

Activities

基本上,Activity是一个有生命周期的对象,是做一些工作的一块代码;如果需要的话,这个工作可以是包含显示UI给用户。当然,如果不必要,Activity也可以不显示UI。典型的说,你将制定你应用里的某个Activity当作你应用或者说程序的入口点。

 

Views

视图是知道如何把它自己画到屏幕上的对象。Android UI是有视图树组成的。如果你想完成某些自定义的图像技术,比如你正在写一个游戏,或者正在构建一个不寻常的行的UI Widget,那么你需要创建一个视图。

 

Intents

Intent是代表要做某些事情或者某个意图的一个简单的消息对象。例如,你的程序想显示一个WEB页面,那么它想要浏览一个URI的意图,通过创建一个Intent实例并把它处理给系统来实现。系统来定位其他的代码(这种情况下,是浏览器),这段代码知道如何来处理这个Intent并运行它。Intent也可以被用来广播有趣的事件给系统范围内(比如Notificaiton)

 

Services

Service是可以运行在后台的代码。它可以运行在自己的进程内,或者另一个程序进程的上下文Context中,这个依需要所决定。其他模块通过远程方法调用而绑定到某一个服务上。一个Service的例子就是媒体播放器;即使用户退出了媒体选择界面,它依然可以让它的音乐保持播放状态,但界面完成时,是Service来保持音乐继续播放的。

 

Notificaitons

 一个Notificaiton(为了不跟Alarm混淆我还是用英文)就是出现在状态栏上的一个小图标。用户可以和这个图标交互来获取信息。大家都知道的Notificaiton就是短信消息。呼啸历史和语音邮件,但是应用程序可以创建它们自己的图标。Notificaiton是用来提醒用户需要用户注意的最优机制。

 

Content Providers


Content Provide 是提供访问设备上数据的数据存储仓库;典型的例子就是 CP 用来访问用户联系人列表。你的程序可以范围别的程序通过 CP 暴露出来的数据。并且你也可以定义你自己的 CP 来暴露你自己的数据。