zoukankan      html  css  js  c++  java
  • 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实例?
  • 相关阅读:
    Shiro框架:Failed to deserialize java.lang.Exception: Failed to deserialize问题解决
    Linux系统:CentOS防火墙的各种命令使用
    Linux系统:CentOS下vsftpd的安装配置
    Vue项目启动报错:UnhandledPromiseRejectionWarning: TypeError: loaderContext.getResolve is not a function问题解决
    Minio存储桶:部署存储服务以及设置永久下载链接
    Redis之Bitmaps
    Redis事务与Lua
    Redis Pipeline
    Redis Shell详解
    Redis慢查询
  • 原文地址:https://www.cnblogs.com/qlky/p/10674723.html
Copyright © 2011-2022 走看看