Android应用程序包括程序代码和资源文件。开发Android项目,非常有必要了解Android目录结构,通过了解目录结构,才能知道什么类型的资源放置在什么文件中、在特定的文件中应该创建什么类型的文件等。Android项目目录结构可参见表5-1。
表5-1 Android项目目录结构
Android应用程序由一些松散联系的组件构成,遵守着一个应用程序清单(manifest),这个清单描述了每个组件以及它们如何交互,还包含应用程序的硬件和平台需求的元数据(metadata)。
以下6个组件提供Android应用程序的基础部分:
(1)Activities:应用程序的表示层。应用程序的每个界面都将是Activity类的扩展。Activities用视图构成GUI来显示信息、响应用户操作。就桌面开发而言,一个Activity相当于一个窗体。
(2)Services:应用程序中的隐形工作者。Service组件在后台运行,更新数据源和可见的Activities,并触发通知(Notification)。在应用程序的Activities不激活或不可见时,用于执行需要继续的长期处理。
(3)Content Providers:可共享的数据存储。Content Providers用于管理和共享应用程序数据库,是跨应用程序边界数据共享的优先方式。这表示可以配置自己的Content Providers以允许其他应用程序访问,可以用他人提供的Content Providers来访问他人存储的数据。Android设备包括几个本地Content Providers,提供了像媒体库和联系人明细这样有用的数据库。
(4)Intents:一个应用程序间(inter-application)的消息传递框架。使用Intents可以在系统范围内广播消息或者对一个目标Activity或Service发送消息,来表示要执行一个动作,系统将辨别出相应要执行活动的目标。(www.xing528.com)
(5)Broadcast Receivers:Intent广播的消费者。如果创建并注册了一个Broadcase Receiver,应用程序就可以监听匹配了特定过滤标准的Intent广播。Broadcase Receiver会自动开启应用程序以响应一个收到的Intent,使得可以用它们完美地创建事件驱动的应用程序。
Widgets:可以添加到主屏幕界面(home screen)的可视应用程序组件。作为Broadcase Receiver的特殊变种,Widgets可以为用户创建可嵌入到主屏幕界面的动态、交互的应用程序组件。
(6)Notifications:一个用户通知框架。Notification可以不必窃取焦点或中断当前Activities就能通知用户。这是在Service和Broadcast Receiver中获取用户注意的推荐技术。例如,当设备接收到一条短消息或一个电话,它会通过使用闪光灯、发出声音、显示图标或显示消息来提醒你。可以在应用程序中使用Notifications触发相同的事件。
需要注意的是,不是每个程序都有这6个组件,可能程序中只使用其中的一部分。一旦决定程序包含哪些组件时,需要在Android Manifest.xml文件中列出它们。这个XML文件包含程序所定义的组件,以及这些组件的功能和必备的条件。
Activities中最常用的4个组件包括:①Activity;②Intent Receiver;③Service;④Content Provider。Activity在程序中通常表现为一个单独的界面(screen)。每个Activity都是一个单独的类,它扩展实现了Activity基础类。这个类显示为由Views组成的用户界面,并响应事件。大多数程序有多个Activity。
Android通过一个专门的Intent类来进行界面的切换,Intent描述了程序想做什么。使用Intent,可以在整个系统内广播消息,或者给特定的Activity或服务来执行程序的行为。系统会决定哪个或哪些目标来执行适当的行为。
Service组件运行时不可见,但它负责更新的数据源和可见的Activity,以及触发通知。它们常用来执行一些需要持续运行的处理,当Activity已经不处于激活状态或不可见。
Content Provider用来管理和共享应用程序的数据库。在应用程序间,Content Provider是共享数据的首选方式。这意味着可以配置自己的Content Provider去存取其他的应用程序,或者通过其他应用程序暴露的Content Provider去存取它们的数据。
通过创建和注册一个Broadcast Receiver,应用程序可以监听符合特定条件广播的Intent。Broadcast Receiver会自动启动Android应用程序去响应新来的Intent,它是事件驱动程序的理想手段。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。