首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android记忆

    Android源码解读-事件分发机制

    34B66A6E-F3C7-4D02-A508-14F271CD3445.png A6A6A7B1-1CC9-4820-9F87-D513CA85F93C.png 48C9C055-75B4-4B0B-9D82-8F8A699AA1C1.png 449E97DB-A71E-4E1E-8915-7E9A6BFFE07D.png D397C456-AD94-42DB-8123-74FB3CF44FAB.png

    58650编辑于 2022-01-04
  • 来自专栏Android记忆

    Android源码解读-Handler、Looper、MessageQueue

    (队列里消息是通过Handler发送的) BEDAA5C0-9057-4ADA-B202-FF7540C34DF0.png 接下来我们就逐步学习他吧。 二、源码解析 Looper源码解析 Android应用程序进程在启动的时候,会在线程中加载 /frameworks/base/core/java/android/app/ActivityThread.java next源码 Message next() { final long ptr = mPtr; ............... Looper大致就这些,下面看下Handler Handler源码解析 无限循环遍历MessageQueue过程就这些,上面讲了如何获取Message以及MessageQueue如何阻塞的。 dispatchMessage源码 public void dispatchMessage(@NonNull Message msg) { if (msg.callback !

    1.8K40编辑于 2023-03-29
  • 来自专栏Android记忆

    Android源码解读-App启动过程

    一.Launcher通过Binder进程间通信机制通知ActivityManagerService,它要启动一个Activity;

    53411编辑于 2022-01-13
  • 来自专栏小工匠聊架构

    Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_2

    ---- Pre 接上文 Spring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1 ---- 源码解读 总体流程 ? ---- 源码分析 /** * *调用bean工厂的后置处理器 * 1)BeanDefinitionRegistryPostProcessor(先被执行) * 所有的bean定义信息将要被加载到容器中 ---- 那继续分段来解读Spring的设计思想 【初始化对应的集合 & 遍历用户自己手动添加的后置处理器】 ?

    47020发布于 2021-08-17
  • 来自专栏小工匠聊架构

    Spring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1

    ---- Pre 接上文 Spring5源码 - 03 普通对象对应的BeanDefinition是如何存入DefaultListableBeanFactory#beanDefinitionMap 源码分析 ---- 源码验证 再细说一下主要的设计思想 看方法名 invokeBeanFactoryPostProcessors 也能猜到 主要是执行 BeanFactoryPostProcessors 既然是

    38720发布于 2021-08-17
  • 来自专栏用户9715713的专栏

    React源码解读之任务调度5

    至此完成了任务调度的所有工作,当然在后面的过程,事件相关的处理是只字未提,React最新源码对于事件系统做了很大改动,我们放在后面章节详细讲解。 React 源码设计之精妙无法言尽,并且只是略读,完成本系列的粗略讲解后,后续会有更深入源码讲解。读源码为了什么?

    27930编辑于 2023-01-09
  • 来自专栏857-Bigdata

    源码解读】|SparkContext源码解读

    (最短栈、最长栈) private[spark] case class CallSite(shortForm: String, longForm: String) 源码中通过「getCallSite( )」 方法配置返回CallSite 参数示意: 参数英文名 参数含义 lastSparkMethod 方法存入 firstUserFile 类名存入 firstUserLine 行号存入 源码如下:

    2.3K20编辑于 2022-05-17
  • 来自专栏857-Bigdata

    源码解读】|SparkEnv源码解读

    metricsSystem, memoryManager, outputCommitCoordinator, conf) 总结 Spark Env 源码顺序大致就是上面的流程 ,更细致的后面的博文中会持续更新解读

    1.6K20编辑于 2022-05-17
  • 来自专栏857-Bigdata

    源码解读】| LiveListenerBus源码解读

    异步事件列队主要由LinkedBlockingQueue[SparkListenerEvent] 构建,默认大小为10000

    1.9K20编辑于 2022-07-07
  • 来自专栏Android记忆

    Android源码解读-View绘制流程之setContentView

    1.直接看下setContentVIew源码 activity.java public void setContentView(@LayoutRes int layoutResID) { getWindow ().setContentView(layoutResID);// initWindowDecorActionBar(); } 1.在activity.java源码中我们可以看到 mWindow = new PhoneWindow(this, window, activityConfigCallback);所以我们直接看PhoneWindow源码中的setContentView。

    82341编辑于 2022-01-11
  • 来自专栏Android技术分享

    Android View源码解读:浅谈DecorView与ViewRootImpl

    前言 对于Android开发者来说,View无疑是开发中经常接触的,包括它的事件分发机制、测量、布局、绘制流程等,如果要自定义一个View,那么应该对以上流程有所了解、研究。 以下源码均取自Android API 21。 Activity中,会在onCreate()方法中写下这样一句: setContentView(R.layout.main); 显然,这是为activity设置一个我们定义好的main.xml布局,我们跟踪一下源码 尝试追踪一下源码,发现mWindow是Window类型的,但是它是一个抽象类,setContentView也是抽象方法,所以我们要找到Window类的实现类才行。 mContentRoot = (ViewGroup) in; ViewGroup contentParent = (ViewGroup)findViewById(ID_ANDROID_CONTENT

    1K20发布于 2019-08-22
  • 来自专栏小工匠聊架构

    Spring5源码 - 09 循环依赖解读

    什么是循环依赖 举个简单的例子 A 依赖 B,B 又依赖 A,它们之间形成了循环依赖。 或者是 A 依赖 B,B 依赖 C,C 又依赖 A,同样的 也是循环依赖 模拟循环依赖的问题 package c

    30420发布于 2021-08-17
  • 来自专栏用户9715713的专栏

    React源码解读之更新的创建5

    (batchedUpdates批量更新后续介绍)从这部分源码我们不难看出,render 和 createProtal 的用法的联系,通过DOM容器创建Root节点的形式function legacyCreateRootFromDOMContainer 继续往下我们可以看到,computeExpirationForFiber 方法用于过期时间的计算,我们先将源码片段放在此处。

    45540编辑于 2023-01-09
  • 来自专栏用户9715713的专栏

    React源码解读之React Fiber5

    facebook为什么要使用重构ReactReact Fiber是什么React Fiber的核心算法 - react是如何中断重启任务的react fiber部分源码简化版前言该文章涉及的源码部分基于 下面是在React源码中Fiber的数据对象。其实说到底,Fiber就是一个对象。 Fiber数据结构下面是React源码中的Fiber对象的属性,具体可以直接看注释。 ---太长不看系列下面是React中关于Fiber的一些核心源码---已删除了很多跟此次文章无关的代码,大家可以自行选择是否服用。 大家可以直接看代码注释,不作具体解读了。

    47230编辑于 2023-01-09
  • 来自专栏小工匠聊架构

    Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_3细说invokeBeanDefinitionRegistryPostProcessors

    ---- Pre Spring5源码 - 04 invokeBeanFactoryPostProcessors 源码解读_1 Spring5源码 - 05 invokeBeanFactoryPostProcessors 源码解读_2 ---- 细说invokeBeanDefinitionRegistryPostProcessors 前两篇博文 我们过了一下这个方法的主干流程,其中有个关键的方法,我们没有细说就是这个invokeBeanDefinitionRegistryPostProcessors 话不多说,还是下来梳理主干流程,然后再对着源码过一遍 ---- 流程图 我们来看流程图 ? ---- 源码分析 我们从头跟一下 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class 重点关注 invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors, registry); 这个方法就是我们今天要研究的源码

    61030发布于 2021-08-17
  • 来自专栏拭心的安卓进阶之路

    Android 进阶14:源码解读 Android 消息机制( Message MessageQueue Handler Looper)

    处理消息 整体的流程有了,但是一直没有结合源码捋一捋。 这才去翻了翻源码,今天总结一下。 Android 消息机制主要涉及 4 个类: Message MessageQueue Handler Looper 我们依次结合源码分析一下。 /os/message.html#50de1a696587dcd5ae3c91eb63985af2 的确就是在 obtainI() 的基础上加了一些赋值。 /os/messagequeue.html#0dbba2b975383e8b440199e5d69c73de Looper.loop() 方法: public static void loop( 这篇文章结合源码完整的看了一遍 Message MessageQueue Handler Looper,现在看着上面的图,可以自信地说我“熟悉 Android 消息机制”了哈哈。

    1.7K90发布于 2018-01-05
  • 来自专栏小工匠聊架构

    Spring5源码 - 07 Spring Bean 生命周期流程 源码解读02

    Pre Spring5源码 - 06 Spring Bean 生命周期流程 概述 01 接上文 通俗流程 下面说个比较常见的主干流程 实例化Bean对象,这个时候Bean的对象是非常低级的,基本不能够使用

    35220发布于 2021-08-17
  • 来自专栏安卓随笔

    Android - NETD解读

    NETD 一、NETD解读 1.1、NETD的作用 Netd是Android系统中专门负责网络管理和控制的后台daemon程序,其功能主要分三大块: 设置防火墙(Firewall)、网络地址转换(NAT Android系统中DNS信息的缓存和管理。 Netd位于Framework层和Kernel层之间,它是Android系统中网络相关消息和命令转发及处理的中枢模块。 strcmp(argv[2],"enable")); return sendGenericOkFail(cli, res); } 二、iptable解读 2.1、iptable原理 ,使用tcp 协议,目的端口椒80的数据包】 iptables -A INPUT -i eth0 -s 80.0.0.0/8 -j DORP 【拒绝从eth0进入,来自80.0.0.0/8的数据包】 5.

    3.3K11编辑于 2022-12-13
  • 来自专栏子曰五溪

    Flex 源码解读

    你能通过源码看见 Row 和 Column 都继承了 Flex ,布局具体的计算都在这个类中,我们可以通过源码 github.com/flutter/flut 了解一下 Flex 是如何计算布局的。 const <Widget>[], }) 基本上默认值的设计不管是 Row 还是 Column 都遵循了 Flex 的设计,唯一相比之下只有 this.direction 参数是多余出来的一个,通过源码的注释我们可以了解到它是用于设置轴的排列方向

    1.1K20发布于 2019-06-24
  • 来自专栏TomatoCool

    Fscan源码解读

    Hosts)) } if common.Scantype == "icmp" { common.LogWG.Wait() return } common.GC() CheckLive函数(源码解读在 其它情况则调用PortScan函数(源码解读在portscan.go中)扫描存活的端口。LogWG.Wait()会等待PortScan函数中的goroutine执行完毕后,再执行后面的代码。

    1.1K30编辑于 2023-09-17
领券