240 发简信
IP属地:上海
  • if (type >= FIRST_SUB_WINDOW && type <= LAST_SUB_WINDOW) {
    // 3、如果是子窗口,则通过 Binder 找父窗口;;
    parentWindow = windowForClientLocked(null, attrs.token, false);

    而且这个地方很奇怪,用 attrs.token 在 mWindowMap 找, key 对不上吧??

    Android 重学系列 WMS在Activity启动中的职责 添加窗体(三)

    前言 经过上一篇章的讨论,我们理清楚了ActivityRecord,TaskRecord和窗体容器之间的关系。同时达到了应用启动时,启动的第一个启动窗口,StartingWi...

  • mAttrs.token 这个是个什么呀?

    我看代码里:
    1、displayContent.getWindowToken(
    hasParent ? parentWindow.mAttrs.token : attrs.token);
    2、windowForClientLocked(null, attrs.token, false);

    都是通过 Attrs.token 获取的,但是一个是从 mWindowMap,一个是从 mTokenMap

    这意味着两个 map 的 key 是同一个东西,但这样就和下面的冲突了:

    - mWindowMap 是以 IWindow 为 key,WindowState 为 value。

    - mTokenMap 是以 WindowState 的 IBinder (一般为 IApplicationToken) 为 key,WindowToken 为 value

    Android 重学系列 WMS在Activity启动中的职责 添加窗体(三)

    前言 经过上一篇章的讨论,我们理清楚了ActivityRecord,TaskRecord和窗体容器之间的关系。同时达到了应用启动时,启动的第一个启动窗口,StartingWi...

  • 我看了下 TaskRecord 新建后,其对应的 task 就会被添加到 taskstack 里面哦
    TaskWindowContainerController 构造器里面有逻辑。

    Android 重学系列 WMS在Activity启动中的职责(二)

    前言 经过上文,我们熟悉了WMS中WindowContainer和WindowContainerController中各自的职责以及各自功能场景,本文将和大家论述一下在WMS...

  • 120
    Android 重学系列 WMS在Activity启动中的职责(一)

    前言 好久没有继续写Android重学系列了。这次我们继续聊聊当Activity创建之后。Android接下来就会尝试的显示界面ui。此时就会牵扯到一个核心的服务Window...

  • 你这个截图是什么书里面的呢?

    Android热修复方案总结

    背景 Android热修复方案有很多,我们没有必要去解析每个框架的热修复具体实现。我们只需要掌握热修复的几个基本原理即可。目前Android热修复的技术方案大致可以归类为以下...

  • 好多,面试也记不住啊😂😂

    Android重学系列 Android网络编程 总览

    前言 关于网络编程这一块的内容,其实很早就想写一块的内容。毕竟网络编程这一块的内容是Android开发中,除了ui和framework以外,最常接触的模块。这个部分的知识是横...

  • 那就别写么

    面试官:简历上最好不要写Glide,不是问源码那么简单

    这次来面试的是一个有着5年工作经验的小伙,截取了一段对话如下: 面试官:我看你写到Glide,为什么用Glide,而不选择其它图片加载框架?小伙:Glide 使用简单,链式调...

  • 180
    C_Sev ·

    面试问了这个,源码看了记不住,害~

  • RecyclerView源码解析

    复用和回收 复用的好处:避免为表项视图绑定数据,创建表项视图。 子item的绘制交给LayoutManager去处理。 fill LinearLayoutManager#fi...

  • @yjy239 笔误正常

    Shadow源码解析

    前言 时隔4年。本文再次来聊聊Shadow 这个0 hook的插件库。目前看来,确实是腾讯这个Shadow 插件库做到0 hook api实现插件化。在腾讯内部也是广泛使用,...

  • @yjy239 我后面想通了,插件进程实际上是宿主的子进程,所以依然是有宿主的代码的,所以你的描述是对的,我当时绕到里面去了

    Shadow源码解析

    前言 时隔4年。本文再次来聊聊Shadow 这个0 hook的插件库。目前看来,确实是腾讯这个Shadow 插件库做到0 hook api实现插件化。在腾讯内部也是广泛使用,...

  • DelegateProviderHolder.setDelegateProvider 缓存 SamplePluginLoader 到一个 map 中,key 为 DEFAULT_KEY. 说明其实在 Shadow 的 manager 进程中,支持多个 Loader 来处理映射关系

    这个 manager 不对吧,这个是插件进程了,已经。

    Shadow源码解析

    前言 时隔4年。本文再次来聊聊Shadow 这个0 hook的插件库。目前看来,确实是腾讯这个Shadow 插件库做到0 hook api实现插件化。在腾讯内部也是广泛使用,...