下面几个组件提供了应用程序的基本结构模块:
1、Activity:应用程序的表示层。应用程序中的每一个UI都是通过Activity类的一个或多个扩展实现的。Activity使 用Fragment和视图来布局和显示信息,以及响应用户动作。在桌面开发环境中,activity相当于form。
2、Service:应用程序中不可见的工作者。Service组件在运行时没有UI,它们可以更新数据源和Activity,触发通知和广播Intent。它们被用来执行一些运行时间长的任务,或者不需要用户交互的任务。
3、Content Provider:一个可共享的持久数据存储器。Content Provider用来管理和持久化应用程序数据,通常会与SQL数据库交互。Content Provider是在应用程序之间共享数据的首选方法。可以通过配置自己的Content Provider来允许其他应用程序访问,也可以访问其他应用程序提供的Content Provider。android设备包含了多个本地content Provider来提供有用的数据库,如媒体库和联系人信息等。
4、Intent:一个强大的应用程序间的消息传递框架。android中大量使用了Intent。Intent可以用来启动和停止Activity和Service,在系统范围内或向目标Activity,Service或Broadcast Receiver广播消息,以及请求对特定的一数据执行操作。
5、Broadcast Receiver:Intent侦听器。Broadcast Receiver使应用程序可以监听到那些匹配指定的过滤标准的Intent广播。Broadcast Receiver会自动地启动应用程序来响应某个收到的Intent,这个特点使它们成为了事件驱动的应用程序的最佳选择。
6、Widget:通常添加到设备主屏幕的可视化应用程序组件。widget是Broadcast Receiver的特殊变体,可用于创建动态的交互式应用程序组件,用户可以把这些组件添加到他们的主屏幕上。
7、Notification:Notification允许向用户发送信号,但却不会过分吸引他们的注意力或者打断他们当前的Activity。它们是应用程序不可见或者不活动时(特别是Service或者Broadcast Receiver)吸引用户注意的首选方法。例如,当设备接收到一个文本消息或者电子邮件的时候,消息传递应用程序或者Gmail应用程序可以通过闪灯,发出声音,显示图标或者滚动显示消息摘要的方式来提醒你。这就是利用了Notification功能。也可以在自己的应用程序中使用Notification。
应用程序Manifest文件简介
每个android项目都包含了一个mainfest文件,它存储了项目层次中的最底层,mainfest可以定义应用程序及其组件和需求的结构和元素据。
它包含了组成应用程序的每一个activity、service、contentprovider、broadcastReceiver的节点,通过使用intent Filter和权限来限定这些组件之间以及这些组件和其他应用程序是如何交互的。
mainfest 用有配置应用程序的基本信息。
versionCode属性指定了应用程序的一个版本号,每次版本迭代时,这个数字会自动增加
installocation属性作用是是否允许应用程序安装在外部存储,可指定为preferExternal或者auto
如果不指定该属性,应用程序只能安装在手机内部存储
<uses-sdk 定义sdk的最低版本minSDkVersion最高版本maxSDKVersion 编译版本targetSdkVersion
建议不要设置最高版本
而设置了目标版本,则是告诉编译器开发和测试过程中使用的平台版本号,系统在运行时将不对该版本最向前或者向后的兼容
<uses-configuration
子节点有:
1、reqFiveWayNav 要求输入设备能够向上向下向左向右导航
2、reqHardKeyBoard 要求应由程序有硬件键盘
3、reqKeyboradType 指定键盘类型
4、reqNavigation 指定必须的导航设备种类
5、reqTouchScreen 指定必须的触摸屏输入
<uses-feature 指定需要的硬件支持
<supports-screens 说明应用支持的屏幕类型
<supports-gl-texture 声明应用程序能够提供以一种页顶的GL纹理压缩格式压缩纹理资源。
<uses-permission 作为安全模型的一部分,声明了应用程序安装时候告诉用户所需的权限
<instrumentation 提供了一个测试框架,用android studio开发时不用指定,android studio默认提供测试支持
<permission 权限的定义
<application 一个Mainfest文件只能有一个该节点,作为容器其包含了activity、service、contentProvider、broadcast Receiver
<activity 每一个activity类都要配置一个该标签,若不配置,运行时将抛出运行时异常,配置时可使用 . 点句号代表应用程序包名
<service 可使用intent-filer 子标签来允许运行时迟绑定
<provider 指定程序中的contentProvider ,管理数据库访问和共享
<receiver 注册Broadcast Receiver,不用提前启动,如同全局事件监听器,一旦注册,无论何时,只要与它匹配的intent 呗系统或者应用程序广播出来,它就立即执行, 使用intent filter Kauai定义可触发接收器的intent
<uses-library 用于指定该应用程序需要的共享库