240 发简信
IP属地:甘肃
  • Kotlin协程

    概念: 方便的地方是:视觉上异步的代码同步化官方的定义是:Kotlin Coroutines 是一种基于挂起(suspension)的并发设计方案,用于以顺序的方式编写异步、...

  • Queue

    概念 Java 里的“队列(Queue)”,核心就是 先进先出(FIFO)的一种数据结构接口体系,主要用在:任务排队、线程池、消息缓存、生产者消费者模型等 BlockingQ...

  • 120
    ThreadPoolExecutor&Executors

    可以认为Executors是ThreadPoolExecutor的"简化工厂" 能通过其提供的api可以快速创建出线程池的模板 newFixedThreadPool(固定线程...

  • Facade Pattern

    外观设计模式(Facade Pattern)是一种结构型设计模式(Structural Pattern):对外提供一个统一、简单的入口,隐藏内部复杂的子系统,让客户端更容易使...

  • 120
    RecyclerView源码

    前置条件 你已经理解了View绘制的主要流程。下面主要讲一个RecyclerView的设计之美 什么是RecyclerView A flexible view for pro...

  • RecyclerView

    onCreateViewHolder public abstract VH onCreateViewHolder(@NonNull ViewGroup parent, int...

  • Adapter

    官方定义 Convert the interface of a class into another interface clients expect. Adapter le...

  • onMeasure(int widthMeasureSpec, int heightMeasureSpec)

    宽和高的测量规格是哪里来的? 无论是View还是ViewGroup onMeasure方法参数中的测量规格都是其父View的measureSpce和它自身的size计算出来的...

  • ViewGroup的几个方法

    在 Android 自定义 ViewGroup 时,测量子视图的大小是核心工作之一。这四个方法都是 ViewGroup 中用于协助测量子视图的重要工具。下面逐一详细讲解。 1...

  • 核心原因是在Activity的onCreate时候View的绘制流程还没有开始,所以不会出发Thread检测,记着一点,onCreate阶段只是把View树准备好全部放在DecorView里,在onResume时才开始绘制流程才创建ViewRootImpl,没有ViewRootImpl无多谈起绘制流程

    Activity的生命周期 和 View的绘制流程 的关联

    问题 我们都知道Android在子线程中更新UI会报错: Only the original thread that created a view hierarchy can...

  • 120
    Activity驱动View的绘制流程

    android.app.ActivityThread.ApplicationThread#scheduleLaunchActivityandroid.app.Activity...

  • 9年过去了,现在弄懂了吗?这个 entryPoint 是 RuntimeInit中的startClass , 最终会调用到handleChildProcess 后面通过反射 invoke执行了ActivityThread的main方法

    Activity启动过程源码分析

    简书 编程之乐转载请注明原创出处,谢谢! 根据上篇文章- Launcher源码浅析,我们知道点击Launcher某个图标后,会调用Launcher的startActivity...

  • 120
    ActivityThreadMain

    android.app.ActivityThread#main1、创建MainLooper2、创建出来ActivityThread实例 并调用其 attach方法 3、默认值...

  • 120
    Activity是如何被启动的

    我们点击launcher桌面图标后Activity是如何被启动并显示出来的,下面是流程,我们一步步的讲 Launcher是什么? Launcher 本质上就是一个 App,而...

  • 120
    Binder机制

    为什么要有Binder机制 为了和系统或其它应用进行通信。因为内存被操作系统划分为了两块,用户空间和内核空间,用户空间是用户程序运行代码的地方,为了安全,它们是隔离的,即使用...

  • 120
    通过Perfetto来看Android View的绘制流程

    打开app 先把对应的时间轴钉上 准备工作 1、创建一个项目, 编译版本36,排除干扰,使用Android studio 模板创建,onCreate方法里只保留setCont...

  • 120
    再看Android事件分发

    四大组件 四大组件之Activity是可以与用户交互的组件,事件分发从Activity开始 Activity分发Touch事件 10年前不好理解10年后的今天你必须理解,这次...

  • 120
    kotlin 协变,逆变,不变

    理解->协变 假如 a extends c 、b extends c;List<c> list = new List //在java中这是不允许的,因为它们根本就是类型不...

  • 120
    kotlin笔记

    高阶函数 参数类型至少有一个是函数类型(包含lamda和匿名)、或返回值是函数类型的函数 有关内联函数

个人介绍
一anroid开发者,喜欢分享和总结