自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

保持专注,保持热爱

不限范围,努力保持原创

  • 博客(220)
  • 收藏
  • 关注

原创 106.Android系统源码-Guice 实战 - 依赖注入容器核心机制

Guice 4.2.0 是基于 Java 类型安全的依赖注入框架,通过 @Inject 注解与 Module 配置实现依赖自动装配。其核心机制包括:Key<T> 实现类型+注解双重标识,确保绑定唯一性;两阶段构建(静态验证+动态注入)保障配置正确性;JIT 绑定支持按需生成;循环依赖通过构造上下文与代理解决。在 Android 工具链中,Guice 作为测试与主机侧基础设施底座,集成于 TradeFederation、TestNG 等系统,依赖 Guava 与 JSR330 标准,以高性能、无魔法的设计理念

2026-09-18 16:34:30 8

原创 105.Android系统源码-Dexmaker 实战 - 运行时 Dalvik 字节码生成引擎

Dexmaker 是 Android 运行时下直接生成 .dex 字节码的引擎,通过指令级 API 构造方法体,借助 dx 工具完成寄存器分配与 .dex 序列化,实现动态类生成与加载。其核心为 Code、Local、Label 等组件,以寄存器模型贴近 Dalvik 规范,不自行编码指令,而是委托 dx 后端处理。广泛用于 Mockito 在 Android 上的 Mock 机制(dexmaker-mockmaker),支撑单元测试中动态代理与 mock 功能

2026-09-18 16:32:39 15

原创 104.Android系统源码-ProGuard 实战 - Java 字节码收缩、混淆与优化引擎

ProGuard 是 Android 构建中经典的字节码收缩、混淆与优化工具,通过四阶段流水线(shrink/optimize/obfuscate/preverify)实现代码精简。其核心基于 Visitor 模式与通用标记槽机制,以 -keep 规则为种子进行可达性分析,删除无用代码;采用 26 进制最短名字工厂混淆标识符,压缩体积并提升逆向难度;同时生成 StackMapTable 加速类加载。作为 R8 的思想源头,它在 Android 构建链中扮演关键角色,

2026-09-18 16:31:10 134

原创 103.Android系统源码-NullAway 实战 - 基于数据流分析的 Java 空指针静态检查引擎

NullAway 是基于数据流分析的 Java 空指针静态检查引擎,通过 @Nullable 注解与局部数据流推理,在编译期捕获潜在 NPE。其核心是四点格空性模型与 AccessPath 路径追踪,结合 Error Prone 构建,实现方法内流敏感分析。利用最小上界与最大下界运算保守推导空性状态,支持框架语义扩展(如 Optional、Stream),并集成于 AOSP 作为编译时质量保障。性能高效,开销低于 10%,显著提升代码安全性,为 Java 提供接近 Kotlin 的编译期空安全。

2026-09-18 16:27:01 9

原创 102.Android系统源码-JaCoCo 实战 - Java 字节码探针插桩与代码覆盖率引擎

摘要 JaCoCo 是一个基于字节码插桩的 Java 代码覆盖率工具,被集成到 AOSP 中作为 Android 平台覆盖率检测的标准方案。其核心创新在于: 最小探针集:通过控制流分析,只在基本块的边界插入探针,大幅减少性能开销 布尔数组标记:使用幂等的 boolean 数组记录执行轨迹,避免计数器竞争 离线插桩:适应 Android 环境,支持构建时插桩而非运行时动态代理 关键技术包括: 控制流图分析与探针优化放置 ASM 字节码操作与栈帧修复 CRC64 类标识和紧凑数据格式

2026-08-21 10:35:05 130

原创 101.Android系统源码-Robolectric 实战 - Android 字节码插桩与 Shadow 影子对象 JVM 测试引擎

本文摘要: Robolectric是一个Android单元测试框架,通过在JVM中模拟Android运行环境实现快速测试(比模拟器快10倍)。其核心技术是字节码插桩和Shadow影子对象机制:使用SandboxClassLoader拦截Android类加载,通过ASM改写字节码将方法调用转为invokedynamic指令;运行时通过ShadowWrangler将调用路由到对应的Shadow实现类(如ShadowTextView)。

2026-08-21 10:34:03 22

原创 100.Android系统源码-Hamcrest 实战 - Android 可组合匹配器与自描述断言框架核心技术

文章摘要(149字): Hamcrest是Android测试栈的底层匹配器引擎,通过将断言条件对象化为可组合、自描述的Matcher解决传统断言两大痛点。核心设计是Matcher接口双职责:matches()执行匹配,describeTo()和describeMismatch()生成人类可读的诊断信息。关键特性包括:类型安全的TypeSafeMatcher、反射类型推断、组合子(allOf/anyOf/not)的嵌套能力,以及基于Description的Java语法格式化输出。

2026-08-21 10:33:14 212

原创 99.Android系统源码-Truth 实战 - Android 流式断言与 Fact 失败信息引擎核心技术

文章摘要 Truth是Google开发的流式断言库,用于提升测试断言的可读性和失败信息的清晰度。其核心设计采用三段式结构:assertThat(actual).isEqualTo(expected),通过类型特化的Subject(如IterableSubject、MapSubject)提供丰富断言方法,并生成结构化Fact失败信息(键值对齐格式)。关键技术包括Subject类型体系、Fact信息模型、FailureStrategy失败处理策略链。相比JUnit的传统断言,Truth解决了参数顺序反直觉和失败

2026-08-21 10:32:12 18

原创 98.Android系统源码-Mockito 实战 - Android 动态代理拦截与桩/验证 Mock 框架核心技术

ility / MockitoLogger ### 核心模块 1. **`MockHandlerImpl`**(`handler/`) 每个 mock 对象都有一个 handler,它处理所有被拦截的方法调用(`handle(invocation)`)。handler 的核心逻辑是:根据当前模式(打桩/验证/普通调用)分派到不同流程,并委托 `InvocationContainerImpl` 存桩/查桩。

2026-08-21 10:30:56 16

原创 97.Android系统源码- JUnit 4 实战 - Android 测试框架 Runner 与 Statement 链核心技术

本文深入解析了JUnit 4测试框架的核心架构与实现原理。主要内容包括: 核心设计:采用"Runner驱动+Statement装饰器链"架构,通过注解实现测试逻辑与运行机制的解耦。Runner负责测试执行策略,Statement链通过装饰器模式组合注解语义。 执行流程:分层构建类级和方法级Statement链,分别处理@BeforeClass/@AfterClass和@Before/@After等注解。通过RunNotifier实现观察者模式进行结果通知。

2026-08-21 10:28:26 14

原创 把 AI 组成一个“剧组“:CrewAI 的协作哲学

摘要:CrewAI的"剧组式"协作哲学 CrewAI采用了一种反直觉的AI协作方式——不是让AI像人类一样对话讨论,而是像剧组拍戏一样分工接力。其核心在于: 角色塑造:通过身份、目标和背景故事定义AI,比参数调整更有效。"你是谁"比"怎么做"更能引导AI行为。 数据接力:AI间不直接对话,而是通过任务产出物单向传递,形成结构化的工作流,确保过程可控。 两种模式:流水线模式(确定顺序)适合简单任务;经理模式(动态调度)更灵活但对模型能力要求更高。 设计启示:任务拆分和交付标准定义是关键;简单协作优先;

2026-08-15 23:42:51 16

原创 让两个 AI 好好合作,比想象中难:一次多智能体实战复盘

文章摘要(150字):** 多智能体系统开发的实际挑战远超理论宣传。本文通过两个入门级示例(天气查询和代码执行),揭示了多智能体协作的四个关键认知:1)决策与执行必须分离以保证安全性;2)单次工具调用需触发两次大模型思考(决策和执行结果转译);3)成本统计需区分含/不含缓存以评估缓存效益;4)大模型输出具有不确定性,需设计校验机制。核心发现是:系统设计的真正难点在于流程控制——确保各智能体在正确时机以正确方式终止交互。文中特别剖析了代码执行案例中因"结束信号"处理不当导致的三种故障模式

2026-08-15 20:16:43 131

原创 从“搜索“到“研究“:DeepResearch 的设计思想

文章摘要: DeepResearch 是一款突破传统搜索局限的智能研究系统,其核心创新在于将"研究"过程编码为可自我迭代的自动化循环。系统通过"反思-补搜"机制实现深度研究:在初步检索后,主动评估信息缺口并生成补充查询,形成多轮迭代的研究闭环。三大支柱支撑这一内核:1)将AI思考转化为结构化指令,实现程序化决策;2)严格的引用溯源机制确保每个结论都可验证;3)采用状态图编排复杂的研究流程。系统具有双重扩展性:既可通过调整引导语实现从通用到垂直领域的切换,又能灵活支持全自动或人机协作模式

2026-08-11 19:45:57 21

原创 96.Android系统源码-SnakeYAML 实战 - Android 五阶段 YAML 解析与缩进敏感扫描引擎

本文介绍了SnakeYAML库在Android中的实现原理和应用。SnakeYAML是Java生态中处理YAML格式的事实标准,采用五阶段处理管线实现YAML与Java对象的双向转换。核心架构包括字符读取(StreamReader)、缩进敏感的词法扫描(ScannerImpl)、语法解析(ParserImpl)、节点图构建(Composer)和对象构造(Constructor)五个阶段,有效解决了YAML缩进敏感、锚点引用等复杂特性的解析问题。

2026-08-06 11:04:42 24

原创 95.Android系统源码-TinyXML-2 实战 - Android 零拷贝就地解析的轻量 XML 引擎

TinyXML-2 轻量 XML 引擎解析摘要(150字) TinyXML-2 是 Android 原生层的高效 XML 解析库,核心特点: 极简实现 - 仅 2 个文件(5,366 行代码),无第三方依赖,采用 Zlib 许可 零拷贝解析 - 通过 StrPair 惰性处理实现 in-situ 就地解析,直接引用原始缓冲区减少内存分配 高效内存管理 - 使用 MemPoolT 块式对象池(4KB/块)分配节点,避免内存碎片 DOM 构建优化 - 递归解析时通过 Identify 识别节点类型

2026-08-06 11:03:41 242

原创 94.Android系统源码-nanopb 实战 - Android 嵌入式 Protocol Buffers 零内存分配实现

摘要:nanopb 是一个超轻量级 Protocol Buffers 实现,专为嵌入式系统设计。核心特点包括:代码体积仅几KB(3个核心C文件约2500行)、零动态内存分配(默认静态预分配)、表驱动架构(通过pb_field_t静态描述表遍历结构体字段)、与标准protobuf二进制兼容。在Android中被集成到蓝牙等内存敏感组件中(libprotobuf-c-nano)。技术亮点包括:字段迭代器、流式I/O抽象、变长整数编码、函数指针分派表等,实现了在极低资源环境下运行protobuf序列化的能力。

2026-08-06 11:02:41 17

原创 93.Android系统源码-Jackson Databind 实战 - Android 对象绑定与反射数据映射引擎核心技术

本文深入解析Jackson Databind在Android中的应用,这是Jackson三件套中的对象绑定层,构建在jackson-core流式引擎之上。文章从核心问题、架构设计到关键技术实现进行了系统梳理。 核心内容摘要: 核心价值 将底层token流处理抽象为简单API:readValue()/writeValue() 通过反射自动建立JSON与POJO的字段映射 支持复杂注解配置和多态类型处理 架构设计 三层结构:注解层→数据绑定层→流式处理层

2026-08-06 11:01:48 16

原创 92.Android系统源码-Jackson 实战 - Android 高性能流式 JSON 处理引擎核心技术

本文深入解析 Jackson 核心库 jackson-core 作为高性能流式 JSON 处理引擎的关键技术。Jackson 采用分层架构,jackson-core 专注于底层流式处理(JsonParser/JsonGenerator),为上层数据绑定提供高效通道。 核心创新包括: 字段名 quad 打包与符号表规范化,避免重复字符串分配; root↔child 符号表 copy-on-write 复用机制; ThreadLocal 缓冲池实现资源高效复用。

2026-08-06 11:00:49 15

原创 91.Android系统源码-Gson 实战 - Java 对象与 JSON 双向绑定的 TypeAdapter 引擎

Gson是Google开发的一个Java JSON库,提供Java对象与JSON的双向转换功能。它通过TypeAdapter引擎实现零配置的反射绑定,支持泛型、流式处理和三通道API(流式/对象绑定/DOM树)。核心架构包括TypeAdapter抽象、责任链工厂模式、反射绑定机制和对象构造策略,特别适合Android开发中处理网络请求的JSON数据。相比手动解析,Gson大幅提升了开发效率和代码安全性。

2026-07-31 15:25:41 215

原创 90.Android系统源码-Volley 实战 - Android 请求队列与双调度器网络框架核心技术

Volley 是 Android 官方推出的轻量级 HTTP 请求队列框架,专为大量小请求场景设计,核心采用双优先级队列(缓存+网络)和双调度器模型。主要特性包括:1)请求优先级排序与 FIFO 兜底;2)缓存三态处理(命中/软过期/硬过期);3)请求去重避免重复网络请求;4)指数退避重试机制;5)主线程自动回调;6)磁盘 LRU 缓存。架构上通过固定线程池(默认4网络+1缓存线程)控制并发,实现高效的小请求调度与缓存管理,特别适合列表图片加载等高频小数据请求场景。

2026-07-31 15:24:47 19

原创 89.Android系统源码-Glide 实战 - Android 图片加载与 Bitmap 复用引擎核心技术

Glide 图片加载框架核心技术解析 Glide 是 Android 平台上解决图片加载和内存管理的核心框架,主要针对以下痛点: 内存优化:通过下采样解码(Downsampler)和 Bitmap 复用池(LruBitmapPool)减少大图内存占用 缓存机制:四级资源查找(内存缓存→活跃资源→进行中任务→新加载)实现高效复用 生命周期管理:通过无UI Fragment 自动绑定 Activity/Fragment 生命周期 线程调度:两阶段解码(源数据获取+图片解码)配合双线程池

2026-07-31 15:23:33 20

原创 88.Android系统源码-lottie 实战 - Android 矢量动画渲染引擎核心技术

Lottie动画引擎核心技术解析(150字摘要) Lottie是Android矢量动画事实标准,通过解析After Effects导出的JSON文件实现高性能动画渲染。其核心技术包括:1) 流式JSON解析零内存分配;2) 图层树构建与遮罩配对;3) TRS变换矩阵合成;4) 三级缓存关键帧插值;5) Gamma正确颜色处理;6) 智能选择软硬件渲染路径。核心流程分为加载期(JSON解析为不可变图层模型)和渲染期(Choreographer驱动逐帧绘制)。通过Canvas原生矢量渲染

2026-07-31 15:21:21 110

原创 87.Android系统源码-mp4parser 实战 - Android 的 MP4 容器解析与 Box 树核心技术

mp4parser 是一个纯 Java 实现的 MP4 容器解析与编辑库,能够解析 ISO Base Media File Format(MP4/MOV/3GP/M4A)的嵌套 Box 树结构。它通过将 MP4 文件解析为 Java 对象,提供样本号到文件字节偏移的多级映射,支持 MP4 元数据读写、视频剪辑拼接等操作。核心特性包括按需解析、内存映射、字节级校验、反射驱动的 Box 工厂等。作为 Android 上 Java 层读写 MP4 的事实标准工具,它与 libwebm 共同成为两大主流容器处理方案

2026-07-31 15:20:11 19

原创 86.Android系统源码-v4l2_codec2 实战 - Android 硬件视频编解码的 Codec2 适配层

本文介绍了 Android 硬件视频编解码适配层 v4l2_codec2 的核心架构与实现。该组件作为 Codec2 框架与 Linux V4L2 驱动之间的"翻译层",将 Android 的媒体编解码请求转换为内核 V4L2 接口调用,实现硬件加速。文章详细解析了其分层架构、核心模块(V4L2Device、V4L2Decoder等)、关键技术(双队列管理、零拷贝机制、异步事件处理等)以及 Android 集成方式。通过分析这一适配层,揭示了 Linux 多媒体系统中用户态与内核态协同工作的典型范式。

2026-07-31 15:18:33 21

原创 85.Android系统源码-libwebm 实战 - Android 的 WebM 容器解析与封装核心技术

摘要: libwebm是Android处理WebM/Matroska容器的核心库,包含解析器(mkvparser)和封装器(mkvmuxer)。它通过EBML(二进制元语言)解析文件结构,支持VP8/VP9/AV1视频和Opus/Vorbis音频的封装与解封装。关键技术包括:VINT可变长整数编码、元素头解析、Block多帧打包、Cues随机访问定位等。作为Android MediaExtractor/MediaMuxer的底层引擎,libwebm实现了高效容器解析,与编解码器解耦,是WebM生态的关键组件

2026-07-24 17:33:55 150

原创 84.Android系统源码-libgav1 实战 - Android 软件 AV1 解码器核心技术

维度评价代码质量极高。现代 C++11 设计,模板化 DSP 分发,热路径多路特化,注释深入到"如何引导编译器向量化""为何 x86 不用某路径"级别。工业级顶尖水准Android 重要性高。AV1 是 YouTube/Netflix 主推的下一代免版税编码,硬件支持稀缺使软解成为落地前提,libgav1 是官方软件 AV1 codec学习价值极高。

2026-07-24 17:32:55 230

原创 83.Android系统源码-libmpeg2 实战 - Android 软件 MPEG-2 解码器核心技术

维度评价代码质量高。延续 Ittiam 清晰架构;位流/VLD/IDCT 实现紧凑规范;DC-only、偶奇分解、跳过全零行列、多级 LUT 等经典优化到位。作为最简 codec,可读性最佳Android 重要性中。MediaCodec 官方软件 MPEG-2 codec,因 MPEG-2 几无硬件支持,软解几乎是唯一选择;但 MPEG-2 内容总量在减少学习价值高。

2026-07-24 17:31:49 16

原创 82.Android系统源码-libhevc 实战 - Android 软件 H.265/HEVC 编解码器核心技术

本文分析了Android系统中的libhevc软件编解码器实现,这是H.265/HEVC视频标准的纯软件解决方案。文章首先介绍了libhevc在Android系统中的地位,作为硬件编解码器不可用时的软件兜底方案。接着分析了其架构设计,包括目录结构、核心模块和依赖关系。重点剖析了HEVC相对于H.264的关键技术创新点:CTU四叉树分块、CABAC熵编码、35种帧内预测模式、8-tap插值滤波、可变尺寸变换以及SAO环路滤波等技术实现。文章通过详细代码解析展示了这些核心算法在libhevc中的具体实现方式

2026-07-24 17:30:49 24

原创 81.Android系统源码-libavc 实战 - Android 软件 H.264 编解码器核心技术

本文深入解析了Android系统中的软件H.264编解码器libavc的实现原理。该编解码器由Ittiam Systems开发,被Google集成到AOSP中,作为硬件不可用时的软件兜底方案。文章从核心问题出发,分析了libavc的架构设计,包括目录结构、解码流水线、核心模块和依赖关系。重点剖析了H.264解码的关键技术:函数指针架构分发、CAVLC熵解码、帧内预测、反量化与反整数变换、亚像素运动补偿、去块滤波等。文章还详细介绍了libavc在Android中的集成方式,包括构建配置和调用链

2026-07-24 17:29:24 19

原创 80.Android系统源码-libffi 实战 - Android 运行时外部函数调用与 ABI 核心技术

本文将深入剖析 libffi 在 Android 平台上的实现原理与应用。作为动态调用原生函数的核心引擎,libffi 通过严格的前后端分层设计,解决了运行时函数调用的 ABI 桥接问题。 文章首先介绍了 libffi 的核心价值:允许程序在运行时动态确定函数签名和调用约定,而非编译期固定。随后详细解析其架构设计,包括目录结构、前后端分层模型和核心模块组成。 技术实现部分重点剖析了 ARM64 平台的七大关键技术点:从函数签名的数据化表示(ffi_type/ffi_cif)、栈布局计算、ABI 分类规则

2026-07-24 17:28:11 21

原创 79.Android系统源码-compiler-rt 实战 - Android 编译器运行时与软浮点核心技术

摘要 compiler-rt是Android Clang/LLVM工具链的核心运行时库,提供CPU硬件不支持的底层运算实现。主要包含: builtins核心模块:实现编译器隐式调用的软浮点运算(如__adddf3)、64位整数除法(__udivmoddi4)、位操作等基础功能,是每个native模块的底层依赖。 关键技术: 通过fp_lib.h抽象浮点表示,提供类型泛化实现 采用宽乘积和移位算法实现软浮点乘除法 使用移位减法实现64位整数长除法 无分支二分法计算前导零(clz) 架构特点: 零外部依赖,处于

2026-07-16 21:09:20 16

原创 78.Android系统源码-GWP-ASan 实战 - Android 生产环境采样式内存错误检测

GWP-ASan 是一种用于 Android 生产环境的内存错误检测工具,通过采样机制以极低开销捕获堆内存错误。其核心原理是将少量随机采样的堆分配置于单独的内存页中,前后用保护页隔离,利用硬件 MMU 触发 SIGSEGV 来精确检测 Use-After-Free 和缓冲区溢出/下溢错误。该工具与 Scudo 分配器协同工作,默认采样率约 1/5000,内存开销可忽略。GWP-ASan 采用紧凑的元数据存储和栈回溯压缩技术,能够在线生产环境中捕获难以复现的内存错误,并记录完整的分配/释放调用栈信息。

2026-07-16 21:08:18 121

原创 77.Android系统源码-Scudo 实战 - Android 安全内存分配器核心技术

维度评价代码质量高。header-only 模板化兼顾内联性能与多平台特化;零运行时依赖;热路径每条指令都有注释级斟酌(缓存局部性、UNLIKELY 冷路径化);BatchGroup 一个设计同时服务安全与页回收;自带单测/基准/fuzzerAndroid 重要性高。Android 11+ 所有 native 进程的默认堆分配器,系统 native 内存安全的基石,MTE tombstone 的数据来源学习价值高。

2026-07-08 12:55:01 149

原创 76.Android系统源码-libcap 实战:Android Linux 能力权限系统核心技术

摘要: Android的libcap库是Linux能力权限系统的核心实现,通过将root特权拆分为40多个独立能力位,实现最小权限原则。它封装内核系统调用,提供进程能力管理、文件能力读写、安全uid切换等功能,支持多线程安全的进程派生。libcap采用模块化设计,包含内存管理、系统调用封装、文本序列化等组件,并通过magic-word内存守卫确保安全。作为Android基础组件,libcap支撑init、adbd等系统服务的权限控制,其架构涵盖从用户空间API到内核交互的全链路实现。

2026-07-08 12:49:28 21

原创 FFmpeg 转码全解:容器与编码的选择艺术(MKV · MP4 · H.264 · H.265)

本文是一份基于真实测试数据的FFmpeg转码工程指南,深入解析视频转码中的容器与编码选择。文章通过实测数据对比了MKV与MP4容器的差异、H.264与H.265编码的性能表现,并提供了详细的参数配置建议。主要内容包括:转码与转封装的核心区别、容器格式的选择策略、编码器性能对比、CRF参数优化、硬件编码应用场景等。测试基于4K HEVC素材,所有数据均为实际测量结果,强调工程实践中的科学决策方法,避免经验主义误区。文章还提供了复现脚本和常见问题排查指南,是一份兼顾理论深度与实践价值的转码技术手册。

2026-07-04 17:30:39 954

原创 FFmpeg 抽帧圣经:精度、性能与 `-ss` 双刀流深度解剖

scene>0.4画面显著变化时抽帧(第 6.2);阈值按需调(0.3 更敏感,0.5 更保守)。必须加-vsync vfr,否则输出重复帧。

2026-07-04 16:39:53 513

原创 75.Android系统源码-dnsmasq 实战 - Android 轻量级 DNS 与 DHCP 服务核心技术

摘要:dnsmasq是Android系统中Wi-Fi热点和网络共享功能的核心组件,提供轻量级DNS转发和DHCP服务。其核心价值在于极简设计(二合一进程<100KB)、高效缓存转发机制,以及DHCP/DNS联动能力。在Android中,dnsmasq由系统进程动态管理,通过单线程事件循环处理UDP请求,采用LRU哈希表缓存DNS记录。主要源码集中在forward.c(查询转发)、cache.c(缓存管理)和dhcp.c(IP分配)等模块,实现资源受限场景下的高效网络基础服务。

2026-07-03 21:34:33 227

原创 74.Android系统源码-tcpdump 实战 - Android 网络数据包抓取与协议解析核心技术

tcpdump 在 Android 构建系统中定义了两个二进制目标// Android.bp — 简化后的结构srcs: ["af.c","print.c","print-*.c", // 所有协议解析器/* ... 其余辅助文件 */],"libssl", // BoringSSL — TLS 解密支持"libcrypto", // BoringSSL — 加密原语"libpcap", // 数据包捕获],cflags: [

2026-07-03 21:33:27 20

原创 73.Android系统源码-libpcap 实战 - Android 网络抓包与 BPF 过滤器核心技术

libpcap 核心技术解析 libpcap是Android系统中网络抓包的核心库,主要解决三大技术挑战: 跨平台捕获难题:通过虚函数表(vtable)架构封装Linux AF_PACKET、Android NFLOG等不同底层接口 高性能过滤:包含完整的BPF编译器/优化器/解释器流水线,支持将"tcp port 80"等文本规则转为内核可执行字节码 统一API设计:提供pcap_open_live/pcap_compile等标准接口,支持在线抓包和离线文件分析(.pcap/.pcapng格式)

2026-07-03 21:32:17 23

原创 72.Android系统源码-libnl 实战 - Android网络配置Netlink协议库核心技术

本文分析了Android使用的Netlink协议库libnl的核心技术与实现。该库位于external/libnl目录,采用LGPL-2.1许可,包含433个C/H文件,主要功能是封装Linux内核的AF_NETLINK套接字接口。 架构上分为核心基础设施层(消息收发、TLV属性系统、对象缓存)和高层协议子系统(Generic Netlink、rtnetlink等)。相比原生ioctl,Netlink支持异步消息机制,更适合动态网络管理。libnl通过抽象层简化了Netlink编程复杂度,

2026-07-03 21:30:48 30

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除