activity

https://www.kancloud.cn/alex_wsc/android-deep2/413484

当前Activity

  • Activity向AMS发送StartActivity的逻辑?
  • startActivity调用了AMS的什么方法?

ActivityStack

  • ActivityStack的成员结构?
  • ActivityStack的mHistory队列保存的是所有Task的ActivityRecord还是单个Task?
  • ActivityStack为什么没有保存TaskRecord的信息?*有什么优缺点?
  • 在ActivityStack中如何搜索ActivityRecord?*
  • 启动模式和flag有哪些?
  • 在ActivityStack的startActivityLocked()主要做了什么工作?
  • startActivityLocked中的sourceRecord和resultRecord处理了什么逻辑?
  • startActivityUncheckedLocked如何为activityRecord找到合适的Task?
  • 如何判断activity需不需要一个新的Task? sourceRecord, lauchmode, flag的关系?
  • startActivityUncheckedLocked的主要工作?
  • resumeTopActivityLocked中如何处理pauseActivity这个逻辑?
  • startSpecificActivityLocked如何查找目标activity所在的进程(向什么)?如果进程不存在怎么办?
  • startProcessLocked将给什么进程发信息创建新进程?创建新进程后要做什么?

Activity进程的创建

  • ActivityThread的main主要做了什么?attachApplication又做了什么?
  • ActivityThread的performLaunchActivity如何创建目标Activity?

原Activity的stop

  • 在什么时候会调用ActivityStack的stopActivityLocked
  • stopActivityLocked中visable信息的不同会有什么影响?

broadcast

https://www.kancloud.cn/alex_wsc/android-deep2/413486

  • 对于静态注册,Java会通过什么创造广播实例?

broadcast动态广播接收

  • ContextImpl的registerReceiverInternal主要做了哪两个工作?IIntentReceiver接口的作用是什么?
  • AMS的registerReceiver主要做了什么?为什么需要ReceiverList来保存BroadcastFilter?

广播发送

  • ContextImp的broadcastIntentLocked主要工作有哪些?
  • ordered广播和非ordered广播处理逻辑的差异?
  • mOrderedBroadcasts队列和mParallelBroadcasts队列的区别?AMS对这两个队列的处理逻辑?
  • 为什么静态接收者的广播都存在mOrderedBroadcasts队列,不在mParallelBroadcasts?
  • 静态接收者的进程不存在的话怎么办?

广播接收

  • LoadedApk.java的performReceive传递给主线程handler的args是个什么对象?
  • LoadedApk.java的Args.run做了什么工作?

Service

https://www.kancloud.cn/alex_wsc/android-deep2/413494

service进程的查找

  • AMS的retrieveServiceLock()向什么查找是否有符合条件的Service?

service进程的初始化

  • ActivityThread的handle_createService用什么创建Service实例?

Android四大组件framework层的更多相关文章

  1. Android 四大组件 与 MVC 架构模式

    作为一个刚从JAVA转过来的Android程序员总会思考android MVC是什么样的? 首先,我们必须得说Android追寻着MVC架构,那就得先说一下MVC是个啥东西! 总体而来说MVC不能说是 ...

  2. Android四大组件之Activity--管理方式

    1. 概览 Activity的管理有静态和动态两层涵义: 静态是指Activity的代码组织结构,即Application中声明的Activity的集合,这些Activity被组织在一个APK中,有特 ...

  3. Android——四大组件、六大布局、五大存储

    一.android四大组件 (一)android四大组件详解 Android四大组件分别为activity.service.content provider.broadcast receiver. 1 ...

  4. Android四大组件之Service浅见

    Service 是Android四大组件之一,可以在不显示界面的情况下在后台运行.还有一个作用是通过AIDL来实现进程间通信. Service的启动方式 Service的启动方式有两种,startSe ...

  5. Android四大组件之一“广播”

    前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...

  6. android四大组件(简单总结)

    activity 一个Activity通常就是一个单独的屏幕(窗口) Activity之间通过Intent进行通信 android应用中每一个Activity都必须要在AndroidManifest. ...

  7. android四大组件之Broadcast

    广播的概念 现实中:我们常常使用电台通过发送广播发布消息,买个收音机,就能收听 Android:系统在产生某个事件时发送广播,应用程序使用广播接收者接收这个广播,就知道系统产生了什么事件.Androi ...

  8. Android 四大组件之再论service

    service常见的有2种方式,本地service以及remote service. 这2种的生命周期,同activity的通信方式等,都不相同. 关于这2种service如何使用,这里不做介绍,只是 ...

  9. Android四大组件及activity的四大启动模式

    Android四大组件 1. 广播接收者的两种类型: (1)系统广播接收者,就是继承BroadcastReceiver这个类,然后还要在清单文件中注册,注册之后给他一个action.当系统发生了这个a ...

随机推荐

  1. centos下配置nginx遇到的一些基本的坑

    作为一个用.net的渣渣,常年混迹在window平台下,对Linux啥都不懂.随着.net core开源.跨平台后,也开始学习下linux. 在Desktop/Webs下放了一个index.html的 ...

  2. 《Python黑帽子:黑客与渗透测试编程之道》 玩转浏览器

    基于浏览器的中间人攻击: #coding=utf-8 import win32com.client import time import urlparse import urllib data_rec ...

  3. IPv6 Can't assign requested address

    今天试了下 bind IPv6 的地址,报错  Can't assign requested address http://stackoverflow.com/questions/24780404/p ...

  4. Dubbo原理实现之使用Javassist字节码结束构建代理对象

    JavassistProxyFactory利用自己吗技术构建代理对象的实现如下: public <T> T getProxy(Invoker<T> invoker, Class ...

  5. alembic教程

    安装 pip install alembic 步骤 1.初始化 alembic 仓库 在终端中, cd 到你的项目目录中,然后执行命令 alembic init alembic ,创建一个名叫 ale ...

  6. 匿名类、包、权限修饰符_DAY10

    1:内部类(理解) (1)把类定义在一个类的内部. (2)特点:   A:内部类可以直接使用外部类的成员,包括私有.   B:外部类要使用内部类成员,必须创建对象使用.    例子: public c ...

  7. 在MVC3中修改KindEditor实现上传图片到指定文件夹

    KindEditor编辑器默认上传的图片文件夹,是根据系统时间自动生成的,图片是自动上传到这些文件夹里面,无法选择.如果要上传图片到指定文件夹,像相册一样管理图片,则需要扩展KindEditor编辑器 ...

  8. Python:高效计算大文件中的最长行的长度

    在操作某个很多进程都要频繁用到的大文件的时候,应该尽早释放文件资源(f.close()) 前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存 列表解析和生 ...

  9. JAVA面试精选【Java算法与编程一】

    在面试中,算法题目是必须的,通过算法能够看出一个程序员的编程思维,考察对复杂问题的设计与分析能力,对问题的严谨性都能够体现出来.算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时 ...

  10. IdentityServer-Setup and Overview

    设置和概述 有两种方式创建一个IdentityServer 项目: 从零开始 使用Visual Studio的ASP.NET Identity模板 如果是从零开始,我们提供一序列的帮助及内存存储,所以 ...