`
ylzyd12345
  • 浏览: 121570 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
博客专栏
713488f4-d0a9-3f35-997f-199fb0cb3563
玩懂Log,打开Andro...
浏览量:10572
社区版块
存档分类
最新评论

Activity,Window,View的关系(sundy深入浅出)之四大组件和Intent

阅读更多

 

 

写在前面的话:本系列主要是学习sundy的Android深入浅出视频中的一些记录,心得。方便自己以后查阅。也供大家查看。欢迎交流,补充。

一般作为面试题(有些有答案,有些没有。问题一般从sundy老师思维导图中摘录,答案并非唯一标准,仅供参考):

 

1、Activity , Window和View的关系是什么?


跟踪Activity的源码就会发现:

Activity.attch() -> PolicyManager -> Policy -> PhoneWindow -> mLayoutInflater.inflate()&mContentParent.addView()

这只是一个简单的跟踪过程描述。通过跟踪源代码,就可以很清晰的看出他们三者的关系。 


Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图)

LayoutInflater像剪刀,Xml配置像窗花图纸。


1)一个Activity构造的时候会初始化一个Window,准确的说是PhoneWindow。

2)这个PhoneWindow有一个“ViewRoot”,引号是说其实这个“ViewRoot”是一个View或者说ViewGroup,是最初始的根视图。

3)“ViewRoot”通过addView方法来一个个的添加View。比如TextView,Button等

4)这些View的事件监听,是由WindowManagerService来接受消息,并且回调Activity函数。比如onClickListener,onKeyDown等


2、Activity是android的显示视图么?

不是


3、LayoutInflater是做什么的 ? layoutInflater.inflater()做什么的?

一般来讲,我们用LayoutInflater做一件事:inflate。inflate这个方法总共有四种形式,目的都是把xml表述的layout转化为View。

This class is used to instantiate layout XML file into its corresponding View objects . It is never be used directly -- use 

getLayoutInflater() or getSystemService(String)getLayoutInflater() or getSystemService(String) to retrieve a standard 

LayoutInflater instance that is already hooked up to the current context and correctly configured for the device you are 

running on

分享到:
评论

相关推荐

    sundy深入浅出部分源码android

    《Sundy深入浅出部分源码Android》是一个关于Android源码解析的学习资源,旨在帮助开发者更深入地理解Android系统的运行机制。在这个专题中,Sundy将带领我们逐步探索Android的内部工作原理,通过分析关键源码,提升...

    sundy深入浅出部分源码 、android

    【标题】"sundy深入浅出部分源码 、android" 涉及的知识点主要集中在Android开发和源码分析两个领域,Sundy大师的教程是这个主题的关键资源。在这个教程中,Sundy可能深入讲解了Android应用开发的核心概念和技术,...

    超级Android深入浅出课程思维导图 sundy

    ### 超级Android深入浅出课程思维导图 sundy #### 一、思维导图概览 本思维导图由特级Android工程师sundy老师亲自制作,旨在帮助学习者全面掌握Android架构及其核心技术,从宏观到微观进行全方位剖析。 #### 二、...

    sundy 简介 android

    sundy 简介 android 深入浅出系列教材

    Sundy Android Demo

    这个项目旨在帮助学习者深入理解Android应用开发的核心概念和技术,通过实际的代码示例来提升学员的编程技能。"不吭你"的描述暗示了这个项目是真诚且有价值的,旨在提供真实、有用的编程知识,而不是空洞的理论。 ...

    Android界面开发基础_视频讲解_深入浅出

    本教程以"Android界面开发基础_视频讲解_深入浅出"为主题,旨在帮助初学者系统地掌握Android界面开发的基础知识。通过作者sundy精心编排的系列视频,我们可以深入理解并实践Android界面设计的各种技术。 首先,...

    sundy android高级应用课程文档和思维导图

    sundy android 高级应用开发课程的思维导图和文档,我学完了,免费分享给大家,另外,有需要学习android开发的,可以转让我的sundy android高级课程视频和加密狗,需要的可以联系秋秋(1878413511)。

    煮酒论Android 2014年版+Android编程架构师-高焕堂Sundy(全部234课)

    《煮酒论Android》是2014年由原始人工作室出版的一本专注于Android技术的书籍,作者通过生动的比喻和深入浅出的讲解,为读者揭示了Android开发的奥秘。这本书结合了理论与实践,旨在帮助读者从基础到高级,全面掌握...

    sundy android面试题集合 (秒杀技术面试)

    - Activity是Android四大组件之一,它代表用户界面和用户交互的主要场景。`setContentView()`方法用于设定UI布局。 - Activity的生命周期包括`onCreate()`, `onStart()`, `onRestart()`, `onResume()`, `onPause()...

    思维导图 android 开发

    思维导图 android 开发 sundy深入浅出

    Sundy-Android高级应用课程介绍-不敢说绝后但肯定空前

    4. **软件工程实践**:基于Sundy10年的项目经验,提炼出一套适用于Android开发的软件工程方法,包括30个实际项目案例。 5. **Android共享软件开发**:引导学员走共享软件之路,教授如何将作品上传至Android Market...

    ARM开发板板拆机.装机.刷机介绍(Sundy出品,非同一般)

    本文将深入探讨Sundy出品的基于ARM Cortex A8架构的Tiny210开发板,通过拆机、装机和刷机的过程,揭示其内部构造与工作原理,帮助读者更好地理解和掌握ARM开发板的使用。 首先,我们来了解什么是ARM Cortex A8。ARM...

    Androidtalk_2010_11_17【Sundy系列】全看懂了-加两年经验-语音朗读-语音识别-语音.rar

    5. **Intent**: 在Android中,Intent是连接各个组件(如Activity、Service)的桥梁,用于启动活动或服务。在语音相关功能中,Intent常用于启动语音识别或TTS服务。 6. **权限管理**: 使用语音功能需要在...

    Androidtalk_2010_11_17【Sundy系列】全看懂了-加两年经验-语音朗读-语音识别-语音.zip

    标题中的“Androidtalk_2010_11_17【Sundy系列】全看懂了-加两年经验-语音朗读-语音识别-语音.zip”表明这是一份关于Android开发的学习资源,可能是一个教程或者项目案例,重点涵盖了语音朗读和语音识别功能的实现。...

    sundy android高级应用课程文档和源代码

    sundy android高级应用课程文档和源代码 我学完了,免费分享给大家学习,另外需要sundy android高级培训课程的,我可以转让我的4个月课程和加密狗。需要的联系我秋秋(1878413511)。

    Sundy注册表监控 V2

    【Sundy注册表监控 V2】是一款专门设计用于监控系统注册表变化的工具,它能够帮助用户实时跟踪和记录注册表中的任何修改,从而更好地保护系统安全和稳定性。注册表是Windows操作系统的核心组成部分,存储了系统和...

    Sundy注册表监控 V2.0

    《Sundy注册表监控 V2.0:守护系统安全的防线》 在信息化时代,计算机安全成为了我们关注的焦点,而注册表作为Windows操作系统的核心组件,承载着系统配置信息,其安全至关重要。Sundy注册表监控 V2.0,正是这样一...

    Sundy盒子v1.4.0.11免费安装版

    Sundy盒子是Sundy Office出品的一款桌面工具,Sundy盒子提供了很多常用的便捷功能,其中包括快速打开文件或软件、快速查找电话簿、快速查找联系人、快速打开网址、英汉词典、汉语词典等,还包括一些系统常用工具,...

    SundyAndroidDemo_AA001

    开发者可能在此项目中学习到了如何使用SQLite数据库存储数据,如何处理用户的输入,以及如何通过Android的UI组件(如EditText和Button)创建一个直观的用户界面。此外,它还可能涉及到了Intent的使用,以便在不同的...

Global site tag (gtag.js) - Google Analytics