1.3 Android App 组件架构

前面讲解了Android的系统架构,而在应用层,Android的App组件架构,通常就是我们所说的Android四大组件,指的是Activity,BroadCastRecivicer,ContentProvider,和Service,他们失足成一个Android App的最基本的元素。

1.3.1    Android四大组件协同工作

Android中的四大组件的使用方法与使用场景都各不相同,但它们之间也保持着紧密的联系,你中有我,我中有你,紧密相连,秘而不可分。

           Activity作为人机交互的第一界面,负责向用户展示信息和处理结果,,而这些信息的来源可以通过资源获取,也可以通过ContentProvider 来获取其他应用的信息,或是Service从后台计算、下载、处理的结果,当然也可以通过 BroadCastReceiver 获取的广播信息。同时Android系统还提供了一个信使------intent,作为信息的传递的载体。组件于组件之间通过Intent来通讯、传递信息、交换数据,正是通过这样的一种形式,四大组件形成了各自独立而又紧密相连的关系,让整个Android系统“活” 了起来。

         Android四大组件在开发者的协调下,共同完成这开发者赋予他们的使命,他们之间没有孰优孰略,所有的组件存在的道理就是为了让程序能够更好的实现开发者的功能。当然,熟知每个组件的功能、特点、,才能在使用时运筹帷幄。在这里,大家只需要对四大组件的协同工作模式有个基本的概念即可,随着本书的讲解,大家会慢慢掌握这些组件的使用技巧。

1.3.2   应用上下文对象

         在高中的时候,语文课本上经常会出现这样的一句话--------“请联系上下文,分析这句话在文中的作用”,我们可理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。

        Android系统的上下文对象,即在Context中,为我们封装了这样一个“语境”。Activity、Service、Application都是继承自Context。

        Android应用程序会在如下所示的几个时间点创建应用上下文Content。

               创建Application

               创建Activity

               创建Service

不难发现,创建Context的时机就是创建Context的实现类的时候。当应用程序第一次启动时,Android系统会创建一个Application对象,同时创建application Context,所有的组件都共同拥有这样一个Context对象,这个应用上下文对象贯穿整个应用进程的生命周期,为应用全局提供了功能和环境的支持,而创建Activity和Service组件时,系统也会给他们提供运行的上下环境,及创建Activity和Service实例的Context对象。所以跟多读者在Acticity中获取Context对象是,可以使用this,而在匿名内部内中就必须指定XXXactivity.this才可以获取该Activity的Context对象。当然,你也可以通过getApplicationContext()方法来获取整个App的Context,但是通过getApplicationContext()是获得的是整个应用的上下文引用,这与某个组件的上下文引用,在某些时候还是有区别的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,373评论 25 707
  • Android Studio JNI流程首先在java代码声明本地方法 用到native关键字 本地方法不用去实现...
    MigrationUK阅读 11,836评论 7 123
  • 祝天下所有父亲,节日快乐 我的父亲不爱说话,不像母亲,总会抱怨我不打电话回家。 从小到大,我和父亲的对话都特别少,...
    小强大人阅读 994评论 10 30
  • 写着玩 安全问题其实是很多程序员想了解又容易忽略的问题,以下介绍一些常见的安全问题和解决方案,当然有的问题使用阿...
    芒果哥哥哈阅读 10,357评论 2 5
  • 当你为一朵玫瑰而欢呼雀跃的时候,而有人在世界的另一头对面一丛的玫瑰淡然欣赏。这个世界就是这么不公平,在你千百...
    落日余晖amor阅读 254评论 0 1