落花踏尽游何处,笑入胡姬酒肆中。这篇文章主要讲述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实例?
推荐阅读
- call apply bind的区别
- 数据科学中的预处理(第3部分)(扩展合成数据)
- Python字典深入学习教程
- 适用于初学者的Python数据科学备忘单
- 精酿啤酒探索性数据分析(数据剖析)
- 数据科学中的预处理(第2部分)(居中,缩放和逻辑回归)
- 在Python中使用NetworkX进行图形优化
- 数据科学中的预处理(第1部分)(居中,缩放和KNN)
- R入门教程(管道)