[TOC] strace 跟踪进程中的系统调用 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备...
[TOC] strace 跟踪进程中的系统调用 strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备...
定义 逆变与协变用来描述类型转换(type transformation)后的继承关系,其定义:如果A、B表示类型,f(⋅)表示类型转换,≤表示继承关系(比如,A≤B表示A是...
为什么用线程池? 1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率 2.线程并发数量过多,抢占系统资源从而导致阻塞 3.对线程进行一些简...
前言 项目中碰到一个问题,需要在自定义View的中央绘制文字;算出了文字的高度,宽度,用自定义View的中心点坐标,减去1/2的高度(宽度)来作为起始坐标绘制文字,结果发现文...
前言 之前已经和大家聊了onLayout的流程,本文将会继续聊一聊onDraw中做了什么?本文将集中关注软件渲染,关于Canvas的api源码解析暂时不会在本文聊,会专门开一...
RecyclerView的各个职责类 LayoutManager:RecyclerView的布局管理者,主要负责对于RecyclerView子View的测量和布局工作。 Re...
随着互联网行业的发展,优秀的开源框架越来越多,我们可以轻易地在 Github 上找到业界顶尖的大佬亲手写的代码,对于这种放在眼前的美食我们怎么能视而不见呢?但实际上,源码一般...
前言 上一篇文章我们研究了SF的初始化。但是还有一个很大也是核心的模块没有聊到,那就是HAL层对应的初始化。什么是HAL层,有简单的话来讲就是硬件驱动和软件之间的中间层,为了...
前言 本文让我们来聊聊匿名共享内存Ashmem。Ashmem为什么会诞生?共享内存本质上还是为了方便跨进程通信,减少拷贝次数,提高性能。 遇到问题可以来本文讨论https:/...