自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Android资深专家,chromium 内核开发者

Android资深专家,chromium 内核开发者

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

原创 WinDbg 崩溃定位完全指南:从零到精通的实战教程

本文介绍了使用WinDbg进行崩溃分析的完整流程。首先详细讲解了WinDbg的环境搭建与配置,包括安装步骤、符号路径设置和基本分析流程。重点阐述了PDB符号文件的作用、生成方法及管理最佳实践,强调其作为调试信息核心的重要性。随后通过实战案例,展示了如何通过符号加载检查、地址计算和解析等步骤精确定位崩溃代码位置。文章提供了大量实用命令和技巧,如!analyze -v自动分析、lm查看模块信息、ln解析地址等,帮助开发者快速诊断和修复程序崩溃问题。

2025-10-24 20:17:17 997

原创 ClaudeCode Skill:增强AI编程能力的关键工具

摘要: ClaudeCode是Anthropic为Claude AI开发的技能系统,专为编程领域优化,包含文档处理、代码开发、设计辅助等模块。核心功能包括: 文档技能:支持Word、PDF、PPT、Excel的解析与生成,适用于技术文档处理; 编程技能:提供代码分析、测试、API集成(如Playwright、p5.js)等工具; 多平台支持:可在Claude Code编辑器、网页版及API中调用,通过命令或系统提示触发。 这些技能显著提升了AI在开发全流程中的辅助能力,但需注意部分技能为示例性质,非持续维护

2025-10-21 11:35:53 954

原创 OpenAI公布前30名“万亿级“Token用户:AI应用的行业图谱与商业价值解析

OpenAI公布2025年前30名API大客户,累计消耗超1万亿tokens(约3000万美元/年)。数据显示:1)应用集中于开发者工具(17%)、生产力SaaS(17%)和医疗健康(10%);2)成熟企业与初创公司各占47%;3)主要场景包括代码辅助、会议摘要和行业解决方案。中国企业可借鉴:深耕垂直领域、开发本地化工具、把握基础设施机会。该名单揭示了AI在提升效率与创新业务模式方面的巨大潜力。

2025-10-14 11:45:19 1164

原创 用一个 Bash CLI 管理多款 AI 开发工具:jt-code-cli 实战与原理解析

JTBlink/jt-code-cli 是一个基于 Bash 的轻量级命令行工具集,通过 npm 统一管理多款 AI 开发工具(iflow、claude-code、qwen 等)的安装/升级/卸载。主要特性包括:1) 提供 jt-code 统一入口命令;2) 支持批量管理所有工具;3) 包含独立的 MCP 诊断与清理脚本。项目采用模块化设计,包含核心日志、工具状态检查及各工具专属安装模块,支持 macOS/Linux 环境,适合需要快速搭建 AI 编程环境的开发者。使用方式灵活,既可通过软链接系统调用,也可

2025-10-05 19:36:39 853

原创 ReadSettingsPanel ViewStub 修复问题总结

文章摘要 Android阅读器应用中的阅读设置面板出现ViewStub加载失败问题,主要原因是自定义视图ReadSettingsPanel缺少标准的三参数构造函数,导致无法正确实例化。修复方案包括:1) 为自定义视图添加完整的构造函数;2) 修正布局文件根元素为自定义视图类名;3) 使用post延迟初始化确保视图完全加载;4) 优化回调接口命名避免冲突。这些修改解决了ViewStub加载失败、类型转换异常和初始化时序问题,确保了阅读设置功能正常运行。

2025-09-15 15:43:59 875

原创 ThemeReadSeekBar 问题总结与进度条不正确原因分析

摘要:ThemeReadSeekBar是一个自定义Android阅读进度条组件,实现了24dp圆角进度条和滑块。开发过程中遇到三个主要问题:1)进度条颜色显示异常,通过ClipDrawable实现动态裁剪解决;2)颜色对比度不足,采用HSV色彩空间精确计算代替RGB;3)tint属性冲突,通过自定义LayerDrawable规避。最终方案结合了ClipDrawable的进度控制和HSV色彩算法,实现了符合设计要求的智能配色效果。

2025-09-11 16:22:45 682

原创 AppCompatDelegate onStart 自动重建问题解决方案

摘要 Android 应用中,继承 BaseActivity 的 Activity 在 onStart() 阶段会被 AppCompatDelegateImpl 自动调用 recreate() 导致重建。问题根源在于 AppCompatDelegateImpl 会在 onStart() 时强制检查配置差异(如夜间模式、语言设置等),若发现配置变化且 Activity 未声明处理这些变化,就会触发重建。该机制通过 updateAppConfiguration 方法实现,会对比当前配置与应用配置,当检测到 UI

2025-09-01 15:45:52 606

原创 StackOverflowError 问题分析总结

应用在配置变更时出现StackOverflowError崩溃,堆栈显示达到8188KB限制。分析发现是Window系统状态变更与AppCompat库的配置处理形成无限递归。问题根源在于Android R+的WindowInsets新API使用不当,以及MIUI系统对Configuration的定制化扩展。解决方案包括:1)添加递归保护机制;2)修正Window系统设置;3)考虑厂商ROM差异。最佳实践建议避免在配置变更中触发布局变更,采用防抖机制,并正确使用全屏API。该问题凸显了Android配置变更处理

2025-08-25 20:25:52 814

原创 宿主获取插件View流程原理 - fetchViewByLayoutName

RePlugin框架通过fetchViewByLayoutName接口实现宿主与插件间的UI共享。该接口首先获取插件Context,再通过资源ID加载对应布局,最后使用插件的ClassLoader实例化View。关键流程包括:插件上下文获取(检查缓存或动态加载)、资源ID查询、布局解析(通过拦截LayoutInflater处理自定义View)。框架采用分层加载策略(从组件信息到完整应用)和三级缓存机制(插件名、Resources、ClassLoader),优化性能。此设计实现了跨进程UI组件的无缝集成,同时

2025-08-19 20:26:26 1017

原创 Android Studio Git提交环境变量问题总结

Android Studio的Git集成无法加载.bashrc环境变量,原因是其使用非交互式shell。解决方案:1)将变量写入.profile文件;2)在Git钩子中直接设置变量;3)使用绝对路径调用命令。推荐使用.profile配置,确保所有shell环境都能正确加载所需变量。

2025-08-19 11:09:05 264

原创 Claude Code:智能代码审查工具实战案例分享

本文介绍了基于Claude AI的智能代码审查工具在实际项目中的应用。该工具支持多语言分析,能自动识别代码问题、性能瓶颈和安全漏洞,并提供改进建议。通过Android和Flutter项目的实战案例,展示了工具如何高效发现内存泄漏、主线程阻塞等问题,将审查时间从30分钟缩短至5分钟,问题发现率提升40%,代码质量显著改善。工具还支持自定义规则配置,可针对不同技术栈进行专项审查。案例表明,AI智能审查能有效提升开发效率和代码质量。

2025-08-08 21:20:28 1480

原创 RePlugin 坑位使用原理与指南

RePlugin框架通过"坑位"机制实现插件动态加载,在宿主应用中预先注册组件坑位,按启动模式、透明度和TaskAffinity分类管理。Activity坑位分为透明/不透明两类,每种包含四种启动模式,默认配置数量从2到6个不等。坑位分配遵循复用优先原则,通过状态管理实现动态回收。框架还支持多进程运行和TaskAffinity分组,建议合理配置坑位数量,避免同时打开过多同类型Activity,优先使用standard模式以减少坑位占用。该机制无需修改宿主Manifest即可运行插件组件,

2025-07-24 19:18:22 512

原创 Android构建流程与Transform任务

Android构建流程分为预构建、代码生成、资源处理、编译、Transform和打包六个阶段,其中Transform阶段通过优先级机制执行字节码转换任务,支持AOP编程和热修复等功能。系统内置Transform(如Proguard混淆)与第三方Transform(如AspectJ)共同构成DEX转换前的处理链。

2025-07-17 13:06:12 558

原创 从理论到实战的Android性能优化全栈解决方案

本次分享系统性地探讨Android性能优化,涵盖内存管理、启动优化、渲染性能等核心领域。内容分为四个层次:基础优化(如内存泄漏防治)、进阶优化(线程池调优)、深度优化(JVM调优)和创新优化(AI辅助优化)。重点解析了内存优化的七种典型场景,通过源码级分析GC机制和内存泄漏问题,并提供高级解决方案如安全Handler设计模式。分享既包含底层原理剖析,又提供可直接应用的工程实践方案,帮助企业构建完整的性能监控和优化体系。

2025-06-30 21:10:19 1090

原创 Android 跨进程通信(IPC)深度技术总结

Android跨进程通信机制解析 摘要:本文深入探讨Android跨进程通信(IPC)机制,重点分析Binder和AIDL两大核心技术。Android采用多进程隔离架构,基于Linux内核构建了完整的IPC体系。Binder作为核心机制,采用Client-Server架构,通过ServiceManager实现服务注册与发现,借助mmap内存映射实现高效数据传输。AIDL则提供接口定义语言,自动生成跨进程通信代码,支持复杂数据类型传输。文章从架构原理、通信流程、内存管理等维度进行剖析,并对比不同IPC机制的适

2025-06-27 10:13:52 623 2

原创 Android 动态代理详解

动态代理是一种在运行时动态生成代理对象并拦截方法调用的技术。它广泛应用于 Android 开发中,例如 AOP(面向切面编程)、插件化开发、网络请求框架(如 Retrofit)等场景。通过理解动态代理的原理和实现细节,可以在 Android 开发中灵活应用这一技术,提升代码的可维护性和扩展性。定义一个接口,作为目标对象的行为规范。接口,定义方法调用的拦截逻辑。创建一个类实现该接口。

2025-03-19 11:37:37 1270

原创 网页图片长按HitTest流程分析

1. 生成触摸事件 (WM_TOUCH/WEBKIT_EVENT_TOUCH_START)2. 通过IPC::BrokeForwardTouchEvent。11. 通过Mojo接口传递HitTestData。

2025-03-17 14:02:15 759

原创 QUIC网络通信协议

QUIC减少握手延迟(0-RTT)解决 TCP 队头阻塞,提高 HTTP/3 传输效率更安全(默认 TLS 1.3),不易被中间人攻击连接迁移能力强,适合移动设备QUIC 未来可能逐步取代TCP + TLS,成为互联网新一代主流传输协议。下面是 QUIC 连接建立和数据传输的时序图,使用Mermaid语法表示:fill:#333;ClientServer连接建立 (1-RTT)连接建立 (0-RTT)连接迁移完成QUIC 连接关闭ClientServer。

2025-03-13 18:21:02 1183

原创 AES加密原理

密钥扩展(Key Expansion)将原始密钥扩展为多个轮密钥(round keys),每一轮使用一个不同的密钥。扩展算法基于轮常量(Rcon)和字节替换操作。初始轮(Initial Round)将明文分块(128 位一组),直接与初始轮密钥进行按位异或(AddRoundKey)操作,生成初始状态矩阵。主轮(Rounds)SubBytes:使用 S-box 对状态矩阵中的每个字节进行非线性替换。ShiftRows:按行进行循环左移,不同行的位移量不同,打乱字节顺序。MixColumns。

2025-03-07 18:15:00 1075

原创 主流加解密算法全景解析:对称、非对称与哈希算法详解

对称加密:安全性依赖于密钥保密,适用于大数据量加解密;代表算法如AES、3DES等。非对称加密:密钥对管理简单,支持数字签名和密钥交换,但加解密速度较慢;代表算法如RSA、ECC、DSA等。哈希算法:单向加密,用于数据完整性和密码存储;代表算法如MD5、SHA-256、HMAC等。各类加密算法在现代安全体系中各有定位,通常需要结合使用以构建既高效又安全的通信系统和数据保护方案。选择具体算法时需根据应用场景、数据量、安全需求以及硬件资源等因素综合考虑。

2025-03-07 12:15:17 1124

原创 Android双亲委派

下面是一份 Android 类加载器双亲委派机制的时序图示例,描述了当应用调用 loadClass() 时,各个加载器之间的委派过程。ClientApp ClassLoader(DexClassLoader/PathClassLoader)Parent ClassLoader(PathClassLoader)BootClassLoader应用代码调用加载请求loadClass("TargetClass")1. 检查是否已加载2. 未加载则委派父加载器loadClass("TargetClass")1. 继续

2025-03-07 10:25:10 644

原创 OpenSSL 使用方法汇总:从证书管理到加密解密全解析

输出对应的哈希值,用于完整性校验。

2025-03-06 18:24:46 2906

原创 JAVA字节码分析

以下是Java字节码(.classJava字节码是基于的二进制流,按顺序紧凑排列,无分隔符。

2025-02-28 17:47:24 1146

原创 RePlugin字节码修改流程分析

判断是否需要修改(如目标类名匹配)判断是否需要修改(如目标类名匹配)回写修改后的 .class 文件。回写修改后的 .class 文件。继续后续构建流程(打包、签名等)注册自定义 Transform。完成 Transform 任务。遍历所有 .class 文件。遍历所有 .class 文件。加载 CtClass 对象。加载 CtClass 对象。

2025-02-27 19:28:12 1000

原创 C++语言基础

以上是 C++ 语言的基础内容,涵盖了基本语法、数据类型、控制结构、函数、面向对象编程、指针与引用以及 STL 的使用。C++ 是一种通用的、面向对象的编程语言,广泛应用于系统软件开发、游戏开发、嵌入式系统等领域。它继承了 C 语言的高效性和灵活性,并在此基础上增加了面向对象的特性。C++ 的核心特性之一是支持面向对象编程(OOP),主要包括类和对象。C++ 提供了丰富的数据类型,包括基本数据类型和复合数据类型。C++ 提供了强大的 STL,包含容器、算法和迭代器等工具。

2025-02-26 14:15:00 651

原创 C++开发技能

掌握常见的数据结构如链表、树、图、哈希表、队列、栈等的实现和应用,熟悉基本算法,如排序、查找、动态规划等,并能在实际问题中灵活运用。:掌握C++11、C++14、C++17等新特性,如智能指针、lambda表达式、并发支持等,以编写现代化的C++代码。:深入理解面向对象编程概念,包括类与对象、封装、继承、多态等OOP特性,以及模板、命名空间、异常处理等C++特性。:熟悉C++的基本语法、数据类型、指针、内存管理等核心知识,能够编写高效、可靠的C++代码。

2025-02-26 09:52:40 515

原创 Android Chromium 开发必备技能

深入了解Chromium的架构,特别是其渲染引擎Blink的工作原理。:了解如何在Android应用中集成和定制Chromium内核,特别是WebView的使用和优化。:熟悉使用调试工具(如GDB、LLDB)和性能分析工具(如Chrome DevTools)来调试和优化Chromium代码。:了解操作系统的基本概念,如进程管理、内存管理、文件系统等,以便更好地理解Chromium与系统的交互。:熟练使用Git等版本控制系统,以及相关的协作工具,以便参与Chromium的开发和维护。

2025-02-26 09:49:16 423

原创 Https通信中证书验证流程

客户端验证服务器证书的有效性是一个多步骤的过程,涉及证书链验证、域名匹配、吊销检查等多个环节。但在某些场景下(如自定义客户端或嵌入式设备),可能需要手动处理证书验证逻辑。在 HTTPS 通信中,客户端验证服务器证书的有效性是确保通信安全的重要步骤。检查证书的 Not Before 和 Not After 字段。以下是将您提供的 HTTPS 证书验证流程转换为。返回证书链(服务器证书 + 中间证书)使用中间证书公钥验证服务器证书签名。检查证书的 SAN 或 CN 字段。使用根证书公钥验证中间证书签名。

2025-02-21 21:24:39 2562

原创 HTTPS 证书交换流程

HTTPS 的密钥交换过程是基于 TLS(Transport Layer Security)协议实现的,其核心目标是通过加密和认证机制确保通信双方的安全性。HTTPS 密钥交换的核心是通过非对称加密(如 ECDHE)协商共享密钥,并使用对称加密(如 AES)保护实际数据传输。在此阶段,客户端和服务器通过密钥交换算法(如 ECDHE)协商出共享密钥(Pre-Master Secret)。握手完成后,客户端和服务器使用协商出的会话密钥进行对称加密通信。由于椭圆曲线的数学特性,双方计算出的。

2025-02-21 12:03:21 1127

原创 HTTPS 通信流程

加密套件(如 TLS_AES_256_GCM_SHA384)支持的椭圆曲线(如 X25519, P-256)验证签名算法(RSA-2048/ECDSA)验证签名(SHA-256 with RSA)发送服务器证书(X.509 v3)Finished(AEAD加密)Finished(AEAD加密)计算共享密钥(ECDHE)计算共享密钥(ECDHE)客户端随机数(32字节)服务器随机数(32字节)验证域名(CN/SAN)OCSP检查(HTTP)应用数据(AEAD加密)应用数据(AEAD加密)

2025-02-20 16:05:56 1045

原创 DNS\DOH\DOT 查询流程图

fill:#333;color:#333;color:#333;fill:none;DoHDoT传统DNS协议: HTTPS端口: 443TLS加密+HTTP混合在HTTPS流量中协议: TLS端口: 853TLS加密专用端口可能被封锁协议: UDP/TCP端口: 53无加密易被劫持/篡改。

2025-02-19 10:29:50 1055

原创 Chromium 内核 DNS 解析

下面是 Chromium 内核 DNS 解析的完整调用链路和时序图:fill:#333;paraltaltalt:应用程序通过调用方法来创建一个实例。在内部创建一个实例,负责管理解析请求。DnsClient创建一个DnsClient实例,用于处理 DNS 查询。DnsClientDnsClient完成初始化,准备处理 DNS 请求。:应用程序调用的方法,传入主机名。调用的方法,创建一个新的解析请求。调用缓存组件,检查是否存在该主机名的缓存记录。:如果缓存中存在有效记录,直接返回缓存结果。

2025-02-18 16:47:28 886

原创 深入解析 DNS 与 DoH(DNS over HTTPS)协议

DNS(Domain Name System,域名系统)是互联网的一项核心服务,用于将人类可读的域名(如)转换为计算机可识别的 IP 地址(如DNS 的主要功能是帮助用户通过易于记忆的域名访问网站,而不需要记住复杂的 IP 地址。DoH(DNS over HTTPS,基于 HTTPS 的 DNS)是一种通过 HTTPS 协议进行 DNS 查询的技术。它旨在解决传统 DNS 查询中存在的安全性和隐私问题。

2025-02-12 14:36:47 2087

原创 2024年AI大模型评测深度分析:GPT-4仍领先,国产模型奋起直追

近期,随着Claude 3、文心4.0等新一代AI大模型的发布,全球AI模型竞争格局愈发激烈。通过分析权威评测榜单的最新数据,我们可以清晰地看到当前AI大模型的发展现状和未来趋势。

2025-02-12 09:35:15 902

原创 Linux系统卡死问题处理

根据具体情况选择合适步骤,逐步缩小问题范围!

2025-02-11 19:04:22 4720

原创 Chromium 的 GN 语法总结

GN 语法设计简洁且灵活,核心概念包括目标(targets)、变量(variables)、依赖(dependencies)、条件判断(conditionals)、路径(paths)、函数(functions)等。它使用类似于其他构建工具的方式来组织和管理项目的构建过程,但更加关注构建效率和可扩展性。掌握 GN 语法有助于在 Chromium 项目中高效地管理构建流程,确保正确的目标和依赖关系被处理。

2025-01-26 14:10:36 1366

原创 Native 崩溃解析工具

一个Python工具库,用于简化Android NDK崩溃分析。该库通过封装NDK工具来简化操作,支持解析.dmp文件和logcat崩溃日志,并支持灵活配置参数。支持多平台(Linux、Windows、macOS),并提供Shell和Batch脚本便于使用。

2025-01-22 13:21:53 1102

原创 自动填充组件 Autofill

core/: 在 content/ 和 ios/ 中共享的代码。browser/: 浏览器进程的代码。common/: 浏览器和渲染器共享的代码。content/: 使用 //content 层的驱动程序(除 iOS 外的所有平台)。browser/: 浏览器进程的代码。renderer/: 渲染器进程的代码。common/: 浏览器和渲染器共享的代码。ios/: 使用 //ios 的驱动程序(与 //content 相对应)。android/: Android 平台的 Java 代码。

2024-06-05 11:31:13 1926

原创 Chromium 扩展工作原理

与扩展页面和后台页面的通信:扩展程序的不同组件之间可以通过消息传递机制进行通信。内容脚本可以向扩展页面或后台页面发送消息,而扩展页面和后台页面也可以相互之间发送消息,实现不同组件之间的数据传递和协作。事件监听和处理:扩展程序可以监听浏览器和页面的各种事件,如页面加载完成、用户点击按钮等,然后根据这些事件执行相应的操作,如修改页面内容、弹出通知、打开新标签页等。这个时序图详细描述了扩展工作流程中的各个环节,包括页面事件和浏览器事件的处理,以及扩展与页面和后台页面之间的消息传递过程。

2024-05-10 18:06:20 542 1

原创 Chromium浏览器的代理配置和通信原理

是一个用于获取PAC脚本的组件,它的作用是从指定的URL地址获取PAC脚本内容,以便浏览器能够根据脚本定义的规则来动态选择合适的代理服务器。总的来说,Chromium浏览器通过代理服务器来处理网络请求,代理服务器负责转发请求、处理响应,从而实现了对网络请求的管理和控制。是负责执行PAC脚本并根据其结果选择适当的代理服务器的组件,它在代理配置的动态管理和网络请求的代理路由中起着关键作用。是负责代理配置管理和代理信息提供的核心组件,在浏览器的网络请求中起着重要的作用。

2024-05-08 15:34:43 2265 1

课堂安全教育 小学生防溺水 注意事项.pptx

该PPT文件强调了小学生防溺水教育的重要性,提出了家庭和学校在提升防溺水意识、进行安全教育和监督责任方面的作用。介绍了包括应急演练、水域安全评估、监护人配备和医疗准备在内的实际措施。同时,强调了法律责任、政策支持、社区合作以及社会资源在防溺水工作中的作用,旨在通过全社会的共同努力,降低溺水事故发生率。

2024-05-08

课堂安全教育:溺水防护措施总结.pptx

该PPT文件提供了全面的溺水防护教育,包括溺水原因、水域风险、预防措施、自救与他救技巧。强调了儿童安全意识、水域监管、防溺水教育的重要性。介绍了水上活动的安全规则,以及如何通过家庭与学校的联合教育、急救知识普及和实操模拟演练,提高学生的自救能力和减少溺水事故。

2024-05-08

空空如也

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

TA关注的人

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