Android四大组件framework层
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层的更多相关文章
- Android 四大组件 与 MVC 架构模式
作为一个刚从JAVA转过来的Android程序员总会思考android MVC是什么样的? 首先,我们必须得说Android追寻着MVC架构,那就得先说一下MVC是个啥东西! 总体而来说MVC不能说是 ...
- Android四大组件之Activity--管理方式
1. 概览 Activity的管理有静态和动态两层涵义: 静态是指Activity的代码组织结构,即Application中声明的Activity的集合,这些Activity被组织在一个APK中,有特 ...
- Android——四大组件、六大布局、五大存储
一.android四大组件 (一)android四大组件详解 Android四大组件分别为activity.service.content provider.broadcast receiver. 1 ...
- Android四大组件之Service浅见
Service 是Android四大组件之一,可以在不显示界面的情况下在后台运行.还有一个作用是通过AIDL来实现进程间通信. Service的启动方式 Service的启动方式有两种,startSe ...
- Android四大组件之一“广播”
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...
- android四大组件(简单总结)
activity 一个Activity通常就是一个单独的屏幕(窗口) Activity之间通过Intent进行通信 android应用中每一个Activity都必须要在AndroidManifest. ...
- android四大组件之Broadcast
广播的概念 现实中:我们常常使用电台通过发送广播发布消息,买个收音机,就能收听 Android:系统在产生某个事件时发送广播,应用程序使用广播接收者接收这个广播,就知道系统产生了什么事件.Androi ...
- Android 四大组件之再论service
service常见的有2种方式,本地service以及remote service. 这2种的生命周期,同activity的通信方式等,都不相同. 关于这2种service如何使用,这里不做介绍,只是 ...
- Android四大组件及activity的四大启动模式
Android四大组件 1. 广播接收者的两种类型: (1)系统广播接收者,就是继承BroadcastReceiver这个类,然后还要在清单文件中注册,注册之后给他一个action.当系统发生了这个a ...
随机推荐
- Python 一篇学会多线程
多线程和多进程是什么自行google补脑,廖雪峰官网也有,但是不够简洁,有点晕,所以就整个简单的范例. 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂.所以,这里力图用 ...
- fatal: LF would be replaced by CRLF in index.html
进入项目目录,在.git文件夹下打开config配置文件,添加上下面两句话: autocrlf = false safecrlf = false 即可
- 01-Python的基础知识2
- Python变量 - 变量就是重复使用的一个量,或者一个代号. - 变量的命名规则: - 必须以下划线或者字母开头,后面接任意数量下划线.字母.或数字. - 4man , 5for 是不可以的 - ...
- day 39 jq 学习入门2
---恢复内容开始--- 前情提要: jq 是用来降低js 的工作的一个组件 一:利用jq 实现动画效果 <!DOCTYPE html> <html lang="en&qu ...
- 连接企业的人、事、物、知识--企业IM的第三类生存方式
企业IM现状:尴尬 传统的企业IM在完成聊天.群组.文件传输.音频会话等传统IM功能后,发现自己陷入了尴尬的境地,因为功能的“同质化”,这些功能微信.QQ也有啊,其他IM厂商也有.于是IM厂商开始思考 ...
- django admin编辑被外键关联的主表时支持显示字表记录
假设有模型 class A(models.Model): name = models.CharField() class B(models.Model): name = models.CharFiel ...
- 10分钟打造强大的gvim
感谢Ruchee的共享精神,让我等vim新手省去了配置vim的麻烦(教程地址:配置文件使用指南). 只需要简单的6个步骤,就可以配置完成一个强大的gvim神器,下图是我的最终配置效果图. (另外,我的 ...
- ASP.NET Core 中使用 GrayLog 记录日志
使用 UDP 协议发送日志 自定义好的查询 key 存储数据,尽量不要使用 graylog2-server 服务端格式化日志再存储 Ubuntu 安装服务端 sudo apt-get update & ...
- FineBI学习系列之FineBI的ETL处理(图文详解)
不多说,直接上干货! 这是来自FineBI官网提供的帮助文档 http://help.finebi.com/http://help.finebi.com/doc-view-48.html 目录: 1. ...
- Node.js 安装及环境配置之 Windows 篇
一.安装环境 1.本机系统:Windows 10 企业版(64位)2.Node.js:node-v8.9.4-x64.msi(64位) 二.安装Node.js步骤 1.下载对应自己系统对应的 Node ...