006 Android应用开发的9个组件
来源:互联网 发布:知乎女神芈十四真名 编辑:程序博客网 时间:2024/05/29 12:30
本章节要弄懂的问题:
1. Android开发有哪四大组件?
2. Android中的Intent是什么?
3. Android的Launcher、Widget、Notification是什么?
4. Android的Application是什么?
前言
Android提供了应用程序开发的四大组件,分别是Activity、Service、BroadcastReceiver、ContentProvider,每个应用程序至少包含了其中的一个。
Intent是Android提供的另外一个组件,Intent的使用跟Activity、Service、BroadcastReceiver有关。
Launcher、Weight、Notification跟Android的主界面开发有关,应用程序极有可能要跟它们产生关联。
Android提供了一个Application组件,每个应用程序有且仅有一个Application组件。
所以,综合起来讲,Android应用开发有9个基本的组件。
Activity
Activity是应用程序的业务主体之一,是应用程序的界面,用来实现人机交互,例如查看联系人、拨打电话的应用程序界面,一个应用程序通常包含若干个Activity子类。
Activity在应用程序的位置类似于Java EE开发中的Bean,和.net中的aspx,其作用是将视图和数据模型链接起来,并且通过布局管理器来管理视图中的View组件,这就是典型的MVC模式。
Activity通过Activity.setContentView()方法将res/layout目录下的布局文件绑定到Activity,从而将是如渲染呈现到屏幕上。
Activity必须在AndroidManifest文件中进行注册配置。
Service
Service也是应用程序的业务主体之一,不过Service不提供应用程序的界面,用来在程序的后台处理一些有持续时间的处理操作,例如下载数据、播放音乐等等。一个应用程序可以包含若干个Service子类。
除此之外,在Service中还可以做一些在Activity中可以做的事情,例如启动另外一个Activity等。
Service必须在AndroidManifest文件中进行注册配置。
ContentProvider
Android应用程序的数据是应用程序私有的,Android的ContentProvider提供在多个程序之间进行数据共享的机制:通过ContentProvider来对外部程序提供一套数据CRUD的接口,外部程序就可以使用这套接口来访问操作该程序的数据,避免了数据CRUD的内部实现细节。
ContentProvider必须在AndroidManifest文件中进行注册配置。
BroadcastReceiver
BroadcastReceiver负责对广播消息进行响应,BroadcastReceiver通常用在Activity或Service中。BroadcastReceiver可以接受程序内部的广播消息,也可以接受外部程序甚至是Android系统的广播消息。
想要使用BroadcastReceiver,必须继承BroadcastReceiver,并且在应用程序中注册BroadcastReceiver:可以在AndroidManifest文件中进行静态注册,也可以在Activity或Service中进行动态注册。
Intent
Intent是一个特殊的组件,其字面意义是“意图”,Activity、Service、BroadcastReceiver都需要Intent的支持才能使用。
Intent可以用作以下几点:
1. 启动Activity:startActivity()或startActivityForResult()方法可以用来启动另外一个Activity,而这两个方法中有一个重要的参数Intent,通过Intent可以指定要启动的Activity,并且通过Intent向被启动的Activity传递数据信息。
2. 启动Service:startService()或bindService()方法可以启动一个Service,而这两个方法中有一个重要的参数Intent,通过Intent可以指定要启动的Service,并且通过Intent向被启动的Service传递数据信息。
3. 发送广播:sendBroadcast()、sendOrderedBroadcast()、sendStickyBroadcast()方法可以发送广播消息,而这三个方法中有一个重要的参数Intent,通过Intent可以携带想要发送的数据信息。
4. 执行一个对外部程序数据的查询:外部程序必须提供了ContentProvider,然后内部程序中通过ContentResolver的query来查询外部程序的数据,在这里就有可能要使用到Intent作为query的参数。
Launcher
Launcher是Android系统的桌面主体程序,属于系统级别的应用程序。在一些Android系统定制开发时,就可能会要求重新开发一个Launcher来满足项目的需求。
既然Launcher也是一个应用程序,那么Launcher中包含的要素也会有Activity、Service等组件要素。
Widget
Widget字面意义是“小插件”,一般在Launcher中呈现,可以在Launcher中添加系统自带的Widget,也可以添加第三方应用程序的Widget。如图006-01中的显示时间日期的那块区域就是一个背景透明的Widget。
图 006-01
Notification
Notification一般位于Launcher中的屏幕正上方的区域,如图006-01中的显示信号、电量的那块区域,如果在那个区域执行下拉操作,就会显示各种通知信息,如图006-02所示。
图 006-02
Application
Application是Android应用程序的唯一入口,在所有Activity和Service启动之前启动,每个Android应用程序有且仅有一个Application:如果没有自定义Application的子类,那么Android应用程序就会使用一个默认的Application子类来作为该程序的Application;如果自定义了一个Application,那么就需要在AndroidManifest文件注册该Application的子类,用来作为Android应用程序的Application。
- 006 Android应用开发的9个组件
- Android开发之Android应用组件的生命周期
- 【Android应用开发技术:应用组件】应用组件基本原理
- 开发APP的那些组件---->>>>------Android中BroadcastReceiver的应用
- EvenBus:Android应用组件之间高效通信的开发库
- 【Android应用开发技术:应用组件】Handler组件通信机制
- 【Android 应用开发】Android - 按钮组件详解
- 【Android应用开发】Android View 组件
- android: WheelView组件(滑轮组件)的应用!
- android: WheelView组件(滑轮组件)的应用!
- Android桌面组件Widge开发及应用
- Android应用开发——Activity组件
- 【Android 应用开发】 自定义 圆形进度条 组件
- 【Android 应用开发】 自定义 圆形进度条 组件
- 组件化开发Android应用及SDK
- android应用的构成组件
- android 应用的组件化
- 【Android应用开发技术:应用组件】Android事件处理机制
- RxJava之from操作符
- opencv 图像旋转的问题 ,图片大小不变,怎么把图片移到中间去,图片跟框框想切
- 使用CSDN-markdown编辑器 写博客
- 用JS获取地址栏参数
- 迭代器,生成器及内置函数补充
- 006 Android应用开发的9个组件
- 利用搜索引擎来搜索特定网站中的关键词
- ReactNative(六)——利用RN状态机管理组件状态
- Masonry详解
- C++基础<02>—变量和基本类型
- 24. Swap Nodes in Pairs [easy] (Python)
- 中国计算机学会推荐投稿期刊和学术会议截稿汇总 - 五月版
- PAT (Advanced Level) Practise 1003. Emergency (25) Dijstra扩展应用
- linux echo 用法