Trace-Canary 模块 Trace 模块主要负责了一些卡顿的监测,如掉帧监测、启动时间监测、耗时方法监测、ANR 监测。 核心工具 LooperMonitor 在 Trace 模块中,通过 LooperMonit…
【Android】Native Hook 学习笔记:PLT Hook
链接 链接主要指将代码和数据片段收集并组合为单一文件的过程。它有如下三种执行时机: 编译时:源代码翻译为机器代码时 加载时:被加载器加载到内存并执行时 运行时:由应用程序执行 它可以使得分离编译成为可能。早期链接需要手动…
【Java】Java 泛型研读笔记
本文出自神农班,神农班宗旨及班规:https://mp.weixin.qq.com/s/Kzi_8qNqt_OUM_xCxCDlKA 在前一篇文章 【C++】C++ 中的泛型——template 浅析 中对 C++ 中的…
【Android】比 SharedPreferences 更高效?微信 MMKV 源码解析
你好,我是 N0tExpectErr0r,一名热爱技术的 Android 开发 本文基于 MMKV 1.0.16,关于 MMKV 的编译可以阅读这篇文档:https://github.com/Tencent/MMKV/w…
【Android】 Framework笔记——Service 启动流程
Service 同样是 Android 四大组件之一,它主要用于在后台执行一些耗时的逻辑以及一些长期运行的任务。它的启动方式主要有两种:startService 以及 bindService,我们分别对这两者的启动流程进…
【OS】操作系统笔记——虚拟内存
内存划分 在早期的操作系统中,往往是由操作系统与当前运行的程序占用了全部的物理内存。 但随着分时系统的出现,时分复用技术开始普及,此时一种比较简陋的做法是每个进程占用所有内存一小段时间,时间到达后将其状态转移到内存,之后…
【OS】操作系统笔记——进程概述与进程调度
今天开始复习操作系统啦,没想到两个月前看的书现在记忆就没有那么清晰了,赶紧抓起来复习一下。 进程概述 程序就是一些存储在磁盘上的指令,它本身没有生命周期,只是存在于磁盘上的指令。通过操作系统,可以将这些指令运行起来,从而…
【Android】Activity 生命周期解析
之前的笔记【Android】Framework笔记——Activity 启动流程简述 对 Activity 的启动流程进行了一次分析,里面简单提到了 Activity 的 onCreate 到 onResume 是如何调…
【Android】ARouter 源码解析:阿里推出的组件化路由框架
ARouter 是阿里推出的一款页面路由框架。由于项目中采用了组件化架构进行开发,通过 ARouter 实现了页面的跳转,之前看它的源码时忘了写笔记,因此今天来重新对它的源码进行一次分析。 本篇源码解析基于 ARoute…
【网络】计算机网络笔记——QUIC 协议笔记
QUIC (Quick UDP Internet Connections)协议是一个由 Google 推出的一款基于 UDP 实现的高效、可靠的网络协议,它基于 UDP 实现了一系列可靠的机制从而使得它兼顾了高效与可靠两…