为什么80%的码农都做不了架构师?>>>   

Android应用程序由若干个不同类型的组件组合而成,每一个组件具有其特定的安全保护设计方式,它们的安全直接影响到应用程序的安全。Android应用程序组件的主要类型有:活动(Activity),服务(Service),广播接收者(Broadcast Receiver),内容提供者(Content Provider),意图(Intent),小组件(Widget),通知(Notification)等。其中最重要的是前5种。在决定使用以上哪些组件来构建Android应用程序时,应该将它们列在AndroidManifest.xml文件中,这个文件用于声明应用程序组件以及它们的特性和要求。下面先分别对活动(Activity),服务(Service),内容提供者(Content Provider),广播接收者(Broadcast Receiver)和意图(Intent)5种组件加以介绍。

活动(Activity)

Activity是应用程序的表示层,为用户展示界面,一个Activity通常展现为一个可视化的用户界面,比如一个手机的联系人功能可能包含一个显示联系人列表的Activity,一个可编辑联系人信息的Activity,以及其他一些查看或修改信息的Activity。每一个Activity都是相对独立的,这些Activity一起工作,共同组成了一个联系人应用程序。一个应用程序可以包含一个或多个Activity,通常每个应用程序运行后都会启动一个Activity展现出第一个界面,在当前展现给用户的Activity中启动一个新的Activity或调用其他应用程序的Acitivity,实现从一个界面跳转到另外一个界面。

服务(Service)

Service在后台运行,没有展现出用户界面。它们可以为前台的Activity提供数据源更新,并触发通知。例如,用户处理其他事情的时候可以启动一个Service播放背景音乐,或者启动邮件客户端的一个Service通过间断性地连接邮件服务器下载新邮件。

Service的另一种重要的用途为通过AIDL(Android Interface Definition Language,Android接口描述语言)实现进程间通信。例如,在某一应用程序中,其他应用程序组件可以直接与该应用程序后台运行的Service进行交互;另一方面,多个应用程序通过Service,可以在保证进程安全的前提下,实现它们之间的通信 。

内容提供者(Content Provider)

Content Provider是一种应用间数据共享的机制,提供了多个应用程序共享存储数据的方式,相当于一种跨应用程序的数据操作,一个应用程序可以允许其他应用程序通过Content Provider对其SQL数据,图像,声音或其他数据类型进行增,删,改,查等操作。Content Provider为数据进行操作提供了统一的接口,为应用程序提供了4个接口函数:intsert,update,delete及query,Content Provider屏蔽了数据操作的具体实现细节,应用程序只需要通过Content Provider调用相应接口函数即可完成操作,这种方式大大简化了跨应用程序的数据操作。

广播接收者(Broadcast Receiver)

Broadcast Receiver不执行任何任务。每个Broadcast Receiver都会接收系统或应用程序产生的广播通知,并对广播通知做出响应。很多事件都可能导致系统广播,例如手机所在时区发生变化,电池电量低,用户改变系统语言设置等。应用程序同样也可以发送广播通知,例如通知其他应用程序某些数据已经下载完毕,可以使用了。

一个应用程序可以包含若干个Broadcast Receiver来响应它认为很重要的通知。Broadcast Receiver可以启动一个Activity以响应接收到的信息,或者通过Notification Manager通知用户。

意图(Intent)

Intent的作用是在组件之间传递信息和协调工作。Android彼此独立的应用组件需要互相调用,协调工作,最终整合成为一个真正的Android应用。组件之间的协调工作主要由Intent完成,它起到Activity,Service,Content Provider之间联系的纽带作用。Intent有许多具体的实现,但本质上它们代表着一组系列化的数据,能够在应用程序中传播以实现某些功能。一个Intent包含了一次操作的信息,比如需要的动作,该动作相关的数据以及Android系统所需要的信息。Android则根据此Intent提供的信息进行描述,负责找到满足这些信息的组件,将Intent传递给该组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的联系。

转载于:https://my.oschina.net/fhd/blog/350079

Android基础之应用程序组件相关推荐

  1. android应用程序的组件,Android基础之应用程序组件

    Android应用程序由若干个不同类型的组件组合而成,每一个组件具有其特定的安全保护设计方式,它们的安全直接影响到应用程序的安全.Android应用程序组件的主要类型有:活动(Activity),服务 ...

  2. Android基础再回首——四大组件之Activity、Service俩兄弟

    Android基础再回首--四大组件之Activity.Service俩兄弟 偶尔的回首过去,总是有不一样的收获.今天就来回顾下Activity和service吧,不用嫌弃太基础了,打好基础是取得成功 ...

  3. Android基础_1 四大基本组件介绍与生命周期

    Android四大基本组件分别是Activity,Service(服务),Content Provider(内容提供者),BroadcastReceiver(广播接收器). 一.四大基本组件 Acti ...

  4. Part3.Android基础知识 - 四大基本组件与常用控件完全解析

    1.概要 1).Android四大基本组件 Activity Service Broadcast Receiver Content Provider 2).Android应用核心Intent Inte ...

  5. 懂的android基础如何面试月薪过万

    一,自我介绍: 鄙人学历不高,今年7月份本科毕业,之前其实就懂android基础而已(四大组件),去年12月份入职,今年10中旬面试求职第二份工作,期间面试了13家,有9家给了offer,月薪范围:7 ...

  6. Android基础——四大组件之Activity

    这几天继续回顾了一些Android基础方面的知识,今天跟大家一起回顾下Android四大组件中的Activity.虽然很基础,但工欲善其事,必先利其器.我们只有打好夯实的基础,才能在技术开发这条道路上 ...

  7. Android应用程序组件Content Provider简要介绍和学习计划

    在Android系统中,Content Provider作为应用程序四大组件之一,它起到在应用程序之间共享数据的作用,同时,它还是标准的数据访问接口.前面的一系列文章已经分析过Android应用程序的 ...

  8. Android应用程序组件Content Provider的共享数据更新通知机制分析

    在Android系统中,应用程序组件Content Provider为不同的应用程序实现数据共享提供了基础设施,它主要通过Binder进程间通信机制和匿名共享内存机制来实现的.关于数据共享的另一个 话 ...

  9. Android基础四大组件详解

    Android四大组件详解 博主接触Android开发将近一年,从最初的JavaSE开始,到Android基础,一直学的糊糊涂涂,最近想整理一番 android基础, 顺便把自己的学习开发经验分享给大 ...

最新文章

  1. Python-字符串操作方法 [转]
  2. java 企业付款_java实现微信企业付款到个人功能
  3. Exchange2010SP1配置OWA下次登录时更改密码提醒
  4. 10个可以快速用Python进行数据分析的小技巧
  5. 从网恋到失恋只需要一秒...
  6. child pid xxx exit signal Segmentation fault (11)
  7. c语言变量生存期,C语言变量的生命周期
  8. 华为商城抢手机软件_华为p40配置详细参数
  9. HDU1248 寒冰王座【0/1背包+DP】
  10. 通过docker-composer启动容器nginx,并完成spring.boot的web站点端口转发
  11. Python监控屏幕并截图保存
  12. 理解GAN生成对抗网络
  13. 作业车间调度问题特征与调度效率相关性的研究Correlation of job-shop scheduling problem features with scheduling efficiency
  14. boost mutex 应用
  15. 一篇吃透前置加加和后置加加(附练习题)
  16. 英语面试(自我介绍,电话面试..)
  17. 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑
  18. Linux 添加网卡
  19. 2021全球程序员收入报告出炉
  20. 2-(4-噻吩)[4,5f][1,10]邻菲啰啉|cas1070190-29-2-齐岳

热门文章

  1. Mac下使用Wine安装Xshell 4和Xftp 4
  2. mysql存储之int
  3. 《电子基础与维修工具核心教程》——2.6 节点分压原理
  4. 使用ckeditor
  5. poj 2485 Highways
  6. #1045 - Access denied for user 'root'@'localhost' (using password: NO)
  7. java 字符串大小比较
  8. 2014年下半年信息系统项目管理师上午试题试题与答案 54
  9. solrlucene3.6.0源码解析(三)
  10. cisco设备运维常用命令 总结-1