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 ...
随机推荐
- PPT基础教程
在当前演示文稿中增加新的幻灯片:快捷键>>ctrl+M 或者将鼠标定位到左侧窗格,然后按下回车键enter 母版??? 默认版式是"标题和文本" 右键 > ...
- jquery +/-小样式
<script>部分 var num = 0; $(document).on('click','#add',function(){ _this = $(this); div = _this ...
- 蓝桥杯练习系统—基础练习 sine之舞
题目:最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数,所以他准备和奶牛们做一个"Sine之舞"的游戏,寓教于乐,提高奶牛们的计算能力. 不妨设 ...
- 配置redis开机自启动和监听
redis安装好后,每次手动启动很不方便,配置开机自启动. 方法一:设置启动命令到/etc/rc.d/rc.local rc.local文件是系统全局脚本文件,会在其他开机进程脚本文件执行完毕后执行该 ...
- gulp最简示例
全局安装 $ npm gulp -g 作为项目的开发依赖安装 $ npm gulp --save-dev 脚本文件 在根目录创建gulpfile.js文件 const gulp = require(' ...
- 04_VMware虚拟机网络配置
占位占位占位占位占位占位占位占位
- JavaScript 基本语法 -- 运算符的优先级
在所有的运算里,都是有运算顺序的.小时候学四则运算的时候,我们都知道这么一个规则:先乘除后加减,有括号要先算括号! 同样的,在JavaScript里面,运算符也是有相应的优先级的.其优先级如下表所示, ...
- SpringMVC源码情操陶冶-DispatcherServlet类简析(一)
阅读源码有利于陶冶情操,此文承接前文SpringMVC源码情操陶冶-DispatcherServlet父类简析 注意:springmvc初始化其他内容,其对应的配置文件已被加载至beanFactory ...
- Python基础篇(二)
Python最基本的数据结构是序列(sequence),序列中的每个元素被分以以0开头的唯一的一个id号. Python中有6种内建的序列:列表,元组,字符串,Unicode字符串,buffer对象和 ...
- BZOJ 3786: 星系探索 [伪ETT]
传送门 数据,标程 题意: 一颗有根树,支持询问点到根路径权值和,子树加,换父亲 欧拉序列怎么求路径权值和? 一个点的权值只会给自己的子树中的点贡献,入栈权值正出栈权值负,求前缀和就行了! 和上题一样 ...