Android开发之组件
Android应用程序由组件组成,组件是可以解决被调用的基本功能模块。Android系统利用组件实现程序内部或程序间的模块调用,以解决代码复用问题,这是Android系统非常重要的特性。在程序设计时,在AndroidManifest.xml中声明可共享的组件,声明后其他应用程序可以直接调用这些共享组件。例如程序A实现了文件压缩的功能,并对外共享了这个组件,程序B则不必再开发文件压缩功能,而直接调用程序A的共享组件即可。
Android系统有4个重要的组件,分别是Activity 、 Service、BroadcastReceiver和ContentProvider。
Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件,与"窗体"的概念非常相似。Android应用程序可以包含一个或多个Activity,一般在程序启动后会呈现一个Activity,用于提示用户程序已经正常启动。Activity在界面上的表现形式一般是全屏窗体,也可以是非全屏悬浮窗或对话框。
Service一般用于没有用户界面,但需要长时间在后台运行的应用。例如在播放MP3音乐时,使用Service播放MP3音乐,可以在关闭播放器界面情况下长时间播放MP3音乐,并通过对外公开Service的通信接口,控制MP3音乐播放的启动、暂停和停止。
BroadcastReceiver是用来接受并响应广播消息的组件。大部分广播消息是有系统产生的 ,例如时区改变、电池电量低或语言选项改变等,但应用程序也可以产生广播消息,例如数据下载完毕等。BroadcastReceiver不包含任何用户界面,但可以通过启动Activity或者Notification通知用户接收到重要信息。Notification能够通过多种方法提示用户,包括闪动背景灯、震动设备、发出声音或在状态栏放置一个持久的图标等。
ContentProvider是Android系统提供的一种标准的共享数据机制,应用程序可以通过ContentProvider访问其它应用程序的私用数据。私用数据可以是存储在文件系统中的文件,也可以是SQLite中的数据库。Android系统内部也提供一些内置的ContentProvider,能够为应用程序提供重要的数据信息,例如联系人信息和通话记录等。
Android系统通过组件机制,有效地降低了应用程序的耦合性,使向其他应用程序共享私用数据(ContentProvider)和调用其它程序的私有模块(Service)成为可能。
所有Android组件都具有自己的生命周期,称为组件生命周期,是从组件建立到组件销毁的整个过程。
Android开发之组件的更多相关文章
- 一个帖子学会Android开发四大组件
来自:http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html 这个文章主要是讲Android开发的四大组件,本文主要分为 一.Act ...
- Android开发四大组件概述
这个文章主要是讲Android开发的四大组件,本文主要分为 一.Activity具体解释 二.Service具体解释 三.Broadcast Receiver具体解释 四.Content Provid ...
- 一天就学会Android开发四大组件
这个文章主要是讲Android开发的四大组件,本文主要分为 一.Activity详解二.Service详解三.Broadcast Receiver详解四.Content Provider详解外加一个重 ...
- Android开发四大组件之Service(具体解释篇)
Android开发之四大组件--Service 一.Service 简单介绍 Service是android系统中的四大组件之中的一个(Activity.Service.BroadcastReceiv ...
- 关于Android开发四大组件
文章主要是讲Android开发的四大组件,本文主要分为 文章源自:http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html 一.Act ...
- android开发常用组件【持续更新中。。。】
UI相关 图片 Android-Universal-Image-Loader:com.nostra13.universalimageloader:异步加载.缓存.显示图片 ImageLoader:co ...
- 从零开始学android开发-四大组件之一 Activity
1.Activity是Android四大组件(Application Components)之一,简单来说Activity就是平常所见到的用户界面,一般情况下,一个Activity所占的窗口是满屏的, ...
- android开发常用组件(库)推荐
版本兼容:官方 support 全家桶 网络请求:Android-Async-Http.Retrofit.OkHttp.Volley图片加载:Glide 和 Universal-Image-Loade ...
- Android 开发 系统组件集合
常用的TextView.Button.ImageView和几个常用布局就不介绍了,我们介绍一些特别好用但是常常忘记的组件. 标题栏组件 <androidx.appcompat.widget.To ...
随机推荐
- mybatis-spring最新版下载地址
mybatis-spring最新版下载地址: http://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.2.3 mybatis-sp ...
- NetCloud——一个网易云音乐评论抓取和分析的Python库
在17的四月份,我曾经写了一篇关于网易云音乐爬虫的文章,还写了一篇关于评论数据可视化的文章.在这大半年的时间里,有时会有一些朋友给我发私信询问一些关于代码方面的问题.所以我最近抽空干脆将原来的代码整理 ...
- Css3中的 calc()使用
http://www.w3cplus.com/css3/how-to-use-css3-calc-function.html
- 一道python面试题引发的血案
这里说的是一道阿里校招的面试题:一行代码实现对列表a中的偶数位置的元素进行加3后求和? 今天去面试同样遇到了这个题目,这道题考察的是对python高阶函数map/filter的灵活运用(具体的使用方法 ...
- ES6与canvas实现鼠标小球跟随效果
最近闲来无聊,看了下ES6的语法,结合canvas实现了动画特效--随着鼠标的移动,会有小球跟随且自动消失的动画. 首先,html部分,目前就一个canvas标签. <canvas id=&qu ...
- HDU 5996 dingyeye loves stone [阶梯Nim]
dingyeye喜欢和你玩石子游戏. dingyeye有一棵nn个节点的有根树,节点编号为00到n−1n−1,根为00号节点.游戏开始时,第ii个节点上有a[i]a[i]个石子.两位玩家轮流操作,每次 ...
- jquery参考手册
开始使用 jQueryjQuery 本身只有一个 js 文件,所以,要使用它,就和使用其它的 js 文件一样,直接将它引入就可以使用了. <script type="text/java ...
- linux下统计某个进程的CPU占用和内存使用
为了测试是否有内存泄露,写了一个监控脚本,统计这个进程的cpu和内存 主要用了 ps aux命令, 很简单,不多解释了,上脚本 #!/bin/bash # while loop CpuMemStat= ...
- SDN期末作业
期末项目 代码仓库:传送门 视频:组长已经发送给朱老师 选题:负载均衡场景3 选题内容: 该拓扑是数据中心拓扑的一部分,其中h1是数据中心外的一台客户机,h2-h5是数据中心内的服务器,请根据该拓扑实 ...
- boost编译随笔
boost下载地址 编译 生成bjam.exe 1.下载boost源码,可以直接使用上面给出的1.60.0版本 2.解压下载到的boost文件,例如解压到 x:\boost_1_60_0 3.使用Vi ...