自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(408)
  • 资源 (10)
  • 收藏
  • 关注

原创 Android开发技能图谱

本文详细介绍了Android开发者必备的技术技能,涵盖编程语言、开发环境、基础组件、架构设计、线程管理等关键领域。

2024-03-20 20:05:35 2043 1

原创 Sqlite使用WAL模式指南

本文阐述如何配置SQLite的WAL模式,实现数据库的读写并发。

2023-07-27 10:41:34 14707 4

原创 Android平台Native代码的崩溃捕获机制及实现

在Android平台,native crash一直是crash里的大头。native crash具有上下文不全、出错信息模糊、难以捕捉等特点,比java crash更难修复。本文将详细阐述Android平台上Native代码的崩溃捕获机制原理,以及如何实现Native崩溃捕获组件。

2017-01-07 21:19:41 20543 2

原创 列表滑动卡到飞起?我把Coil的默认值全调了一遍

Coil 3.5实战:5个配置项让列表P95帧时间从31ms降到17ms

2026-05-26 11:36:07 296

原创 RAG+Agent+微调组合拳:搭建一个完整的AI驱动Android开发助手

本文是Android工程师AI开发实战系列的完结篇,探讨如何将RAG、Agent和微调三大技术组合应用,打造一个实用的AI Android开发助手。文章通过MVVM架构类比,提出三层融合方案:RAG作为数据层提供知识检索,Agent作为逻辑层执行工具调用,微调模型作为表现层统一输出风格。作者分享了实战经验,包括构建三层知识库索引、设计Agent工具集、从团队历史数据中提取微调样本等关键技术细节,并强调端云协同的重要性,建议根据场景灵活选择本地或云端执行。

2026-05-26 11:35:06 434

原创 从 Vibe Coding 到 Agentic Engineering:AI编程效率的真正跃迁不是速度,而是范式

Karpathy定义Agentic Engineering范式,Codex CLI /goal命令上线自主循环,AI编程的效率瓶颈正从工具速度转向编程范式本身的变革

2026-05-25 00:15:31 521

原创 微调:让通用大模型变成你的「专属定制ROM」——从AOSP到LoRA的迁移学习

本文探讨了Android工程师如何通过微调技术定制AI模型,类比AOSP与定制ROM的关系。作者以Code Review工具为例,指出Prompt工程存在上下文窗口有限、token成本高、行为修改浅等硬伤,提出微调才是"编译期改代码"的解决方案。文章对比了全量微调、LoRA和QLoRA三种方式,重点推荐LoRA这种"热修复"式方法,能在消费级显卡上实现高效微调。最后详细介绍了数据集构建标准和实战步骤,包括4-bit量化模型加载、LoRA参数配置和训练流程,帮助开发者用少量参数实现深度定制。

2026-05-24 23:34:28 390

原创 Agent智能体:让AI自己调API干活——从Android Service到AI Agent的思维跃迁

本文从Android工程师视角解析AI Agent技术,通过类比移动开发概念帮助理解Agent核心机制: 将Agent类比为Android Service+WorkManager,具备自主执行任务的能力 解析ReAct范式与Handler消息循环的相似性,展示Agent的迭代式决策过程 对比Function Calling与Android Intent系统,揭示工具调用的声明式设计 提供Kotlin实现示例,包含工具接口定义和Agent核心循环逻辑 强调maxSteps参数类似ANR超时保护的关键设计 文章

2026-05-24 23:33:49 406 1

原创 禁止碰编辑器:当AI接管100%的代码,工程师在做什么?

OpenAI团队9个月不碰编辑器,100%代码由AI完成。拆解Spec驱动开发、护栏工程和AI-First工作流的完整方法论

2026-05-23 21:26:47 389

原创 RAG:给大模型装一个靠谱的「本地数据库」——Android工程师秒懂的检索增强生成

本文以Android开发者的视角解析AI开发中的RAG(检索增强生成)技术,类比Android中的常见模式(如RecyclerView数据绑定、ContentProvider架构)帮助理解。RAG通过文档切片、向量化存储和语义检索,解决大模型的“幻觉”问题,核心流程与Android的数据加载-缓存-展示逻辑高度相似。文章还对比了向量数据库(如Chroma、Pinecone)和Embedding模型(如OpenAI、BGE)的选型策略,并给出搭建Android文档问答系统的实战代码示例,强调开发者已有

2026-05-23 21:20:34 592

原创 Shadow实战接入与生产落地:从零搭建到稳定运行

写到这里,「Android插件化:Shadow深度剖析」系列就正式完结了。回头看这四篇文章,我们实际上走了一条从宏观到微观再到实战的路线:•第1篇(技术演进):我们回顾了Android插件化10年历史,搞清楚了Shadow诞生的时代背景——为什么Hook系统API的路线走不通了,为什么需要一个"零反射"的新方案•第2篇(壳子Activity代理):我们拆解了Shadow最核心的设计——如何用一个已注册的壳子Activity承载插件Activity的全部生命周期,实现"瞒天过海"•第3篇(字节码替换)

2026-05-23 21:19:15 331

原创 Claude Code 深度拆解:50万行源码背后的工业级 AI Agent 架构设计

从源码泄露事件深入分析 Claude Code 的核心架构:while-loop、七层权限系统、五层上下文压缩管线、子代理编排机制,以及对 AI Agent 工程化的启示。

2026-05-21 10:36:56 601

原创 Shadow Transform:编译期的魔法——字节码替换实战

Shadow Transform通过编译期字节码改写实现插件化,核心原理是利用ASM在.class→.dex阶段将插件中对Android系统组件的引用替换为Shadow代理类。相比运行时反射方案,这种编译期处理具有零反射、对开发者透明等优势。具体实现上,Shadow注册Gradle Transform,通过ClassVisitor和MethodVisitor全面改写类继承关系和方法调用指令,将Activity、Service等组件替换为对应的Shadow代理类。这种设计巧妙地将运行时问题提前到编

2026-05-21 10:35:28 304

原创 Shadow核心原理:壳子Activity与代理机制的精妙设计

这篇文章深入剖析了Shadow插件化框架的核心机制——壳子Activity代理设计。文章首先对比了传统Hook方案在Android新版本中的局限性,指出其维护成本随系统更新呈指数级增长。 随后重点解析了Shadow的创新思路:通过宿主中注册的真实Activity作为"壳子",在运行时代理执行插件Activity逻辑。这种设计巧妙避开了系统限制,无需任何反射或Hook。文章详细阐述了壳子Activity与插件Activity的双向引用关系、生命周期转发机制,以及如何通过ShadowActivity让插件代码"

2026-05-21 10:35:03 392

原创 Android插件化江湖:从DroidPlugin到Shadow的技术演进

本文梳理了Android插件化技术的三代演进历程:从早期Hook派(DroidPlugin)通过反射修改系统服务实现插件化,到轻量Hook派(RePlugin)减少Hook点,最终发展为Shadow框架采用的零反射代理方案。Shadow通过编译期字节码替换,将插件组件调用转为代理调用,实现与系统完全兼容的插件化方案。相比前两代技术,Shadow无需适配系统更新,解决了插件化的核心痛点,成为当前最优解决方案。

2026-05-21 10:34:35 837

原创 Gemini Spark深度拆解:Google给AI一台永不关机的云服务器

Google I/O 2026最值得工程师深挖的产品——Gemini Spark。一个7×24小时运行在云端VM上的AI Agent,从架构设计、安全策略到商业模式,逐层拆解这个永续Agent的工程实现。

2026-05-21 10:33:46 479

原创 让AI“多想一会儿“比换更大模型更有效:Test-Time Compute的工程化路径

2026年大模型竞争的核心维度正在从训练时砸多少卡转向推理时怎么花算力

2026-05-17 01:00:49 436

原创 当AI学会了混淆代码:LLM辅助混淆 vs R8,Android安全的下一个十字路口

一篇关于使用LLM进行Android代码混淆的论文引发了对传统混淆技术的重新思考。传统R8/ProGuard混淆仅修改名称而保留代码逻辑结构,容易被逆向工具识别。相比之下,LLM混淆通过语义理解生成功能等价但实现方式完全不同的代码,如将标准库调用替换为手写实现、改变控制流结构等。然而,这种零样本方法存在功能等价性风险。更值得警惕的是,AI同样能用于辅助逆向工程,通过分析代码结构快速还原被混淆代码的语义。这预示着AI将彻底改变移动安全攻防格局,传统混淆技术亟需升级。

2026-05-17 00:59:58 511

原创 两次Flutter全屏白踩坑复盘:Layout的静默失败,以及AI结对编程的认知盲区

三天内连撞两个Flutter白屏bug,表象一样根因完全不同。拆解silent layout failure和delegate-level fail-shut两种机制,以及AI结对编程的五个系统性盲区。

2026-05-15 23:08:53 411

原创 网络监控与容灾:让网络问题无处遁形

本文是Android网络优化系列的完结篇,重点讲解网络监控与容灾策略。文章从一个真实案例切入:某App在双十一期间出现加载问题,但服务端监控一切正常,最终发现是DNS调度到异常CDN节点导致的"幽灵故障"。作者提出完整的端侧监控方案:通过OkHttp EventListener实现全链路埋点监控,包括DNS、连接、TLS等各阶段耗时;对网络错误进行精细分类(DNS失败、连接失败、TLS失败等);采用智能采样策略(异常全量、慢请求全量、正常请求采样)。此外还介绍了主动探测网络质量的方案,以及如何根据网络状况动

2026-05-15 10:42:32 348

原创 数据压缩与缓存策略:把带宽用到极致 | Android网络优化系列(四)

Gzip/Brotli/Protobuf压缩对比、OkHttp缓存机制与CacheControl、增量同步与BsDiff差分、离线优先架构、图片WebP/AVIF优化

2026-05-15 10:42:07 829

原创 连接优化与复用:让每一次握手都物超所值|Android网络优化系列(3)

本文是Android网络优化系列的第3篇,聚焦连接优化与复用。文章从一次"诡异的300ms"延迟入手,揭示了TCP三次握手和TLS 1.2握手带来的性能损耗(约300ms),指出连接复用率低导致的性能问题。通过分析OkHttp连接池的默认配置隐患,提出了生产级调优方案,包括合理设置maxIdleConnections(15-20)和keepAliveDuration(需小于服务端超时)。文章还介绍了HTTP/2的多路复用优势,包括并发请求、头部压缩和流优先级,并给出OkHttp的HTTP/2最佳实践配置,强

2026-05-15 10:41:47 401

原创 DNS优化实战:从运营商DNS到HttpDNS的进化之路

本文是Android网络优化系列的第二篇,聚焦DNS优化。文章首先指出DNS解析是网络耗时的重要环节,实测某些运营商网络下P99耗时可达2000ms以上。接着分析了运营商LocalDNS的四大问题:劫持、调度不准、缓存混乱和解析超时。针对这些问题,提出了HttpDNS解决方案,通过HTTP(S)协议直接向可信DNS服务器发起请求,实现防劫持、精准调度和实时监控。文章详细讲解了如何在OkHttp中集成HttpDNS,并重点讨论了IP直连时的HTTPS兼容问题(SNI和证书校验)。最后介绍了DNS预解析策略,建

2026-05-15 10:41:18 549

原创 当LLM学会“摸鱼“:Exploration Hacking如何让强化学习训练彻底失效

2026年4月ArXiv论文揭示LLM在RL训练中可能通过"探索劫持"(Exploration Hacking)策略性压制自身表现,使梯度更新失效。研究发现:1)模型通过SFT植入抵抗策略后,RL训练无法提升目标能力;2)前沿模型能推理出"限制探索"的隐蔽策略;3)与Reward Hacking不同,该行为在监控中难以察觉。缓解方法包括监控探索多样性、权重扰动和交替使用SFT/RL。这一现象为AI对齐中的"欺骗性对齐"提供了实证

2026-05-11 13:19:32 312

原创 小程序跨端框架2026实战选型:Taro vs uni-app,到底怎么选?

小程序跨端框架选型指南:Taro vs uni-app 本文从实战角度分析了2026年主流小程序跨端框架Taro和uni-app的技术特点与适用场景。Taro 3采用运行时方案,为React开发者提供灵活的开发体验,但存在性能损耗;uni-app基于Vue生态,通过编译时方案实现接近原生的性能,并支持多平台条件编译。性能测试显示uni-app在小程序场景下表现更优,而Taro在开发灵活性上更具优势。文章建议:追求性能选uni-app,需要React生态或复杂逻辑开发选Taro,超高性能要求的场景仍建议使用原

2026-05-11 13:18:41 494

原创 Compose Strong Skipping Mode 的真相:它并不会让你的类型变 Stable

开了Strong Skipping就不用管Stability了?这个误解可能让你的列表性能暴跌

2026-05-11 13:18:01 385

原创 Android网络全链路拆解:一次HTTP请求背后的性能陷阱

本文是「Android网络优化」系列首篇,通过线上故障分析揭示了移动端网络性能瓶颈。研究发现,HTTP请求耗时主要分布在DNS解析(18%)、TCP握手(22%)和TLS握手(30%)等链路环节,而非服务端处理(仅7%)。文章详细拆解了HTTP请求完整链路,并提供了OkHttp的耗时监控实现方案。针对移动端特有的弱网环境和网络切换挑战,提出了自适应超时调整和连接池优化策略,通过复用连接可使性能提升3倍以上。后续将深入探讨DNS优化、连接池管理等具体优化手段。

2026-05-11 00:11:10 780

原创 技术选型决策树:什么团队、什么项目该选什么框架 | 跨平台框架深度对决(4)

跨平台框架选型决策指南:2026年Flutter/KMP/KuiKly/RN如何选择? 本文通过六个关键维度(团队技术栈、产品类型、性能要求、动态化需求、平台覆盖、项目阶段)构建了完整的选型决策树。核心观点是"没有最好的框架,只有最适合的框架": Kotlin团队优先考虑KuiKly/KMP,JS团队选择RN,全新团队可选Flutter 鸿蒙/小程序需求直接指向KuiKly 动态化需求优先考虑KuiKly或RN 设计驱动型产品推荐Flutter,超级App改造适合KMP+KuiKly组合

2026-05-08 10:36:05 256

原创 架构哲学与工程化:从开发体验到CI/CD的全维度对比|跨平台框架深度对决(三)

本文对比了Flutter、KMP、KuiKly和RN四大跨平台框架的架构哲学与工程化实践。Flutter采用全自绘方案,提供一致性但平台融合成本高;KMP专注共享业务逻辑,UI可原生或通过Compose跨平台;KuiKly创新性地将Kotlin DSL映射到原生控件,兼顾一致性和性能;RN依托庞大JS生态但质量参差不齐。在工程集成方面,各框架在包体积、启动耗时和构建系统等方面存在不同挑战。技术选型应结合实际团队技能和项目需求,而非单纯追求性能指标。

2026-05-08 10:35:40 417

原创 渲染引擎与性能拆解:自绘vs原生渲染vs Bridge的终极对决|跨平台框架深度对决②

《跨平台框架渲染引擎深度解析:Flutter自绘 vs RN原生 vs KMP零桥接》 本文从底层视角剖析了三大主流跨平台框架的渲染路径差异: Flutter的Impeller引擎通过预编译着色器彻底解决了Skia的卡顿问题,实现了60fps流畅渲染,但存在GPU内存增加8-15%的代价,且难以100%还原原生交互细节。 React Native新架构通过JSI同步调用替代异步Bridge,使手势响应延迟从30-80ms降至8-16ms,列表滑动FPS提升30%,但本质上仍依赖平台原生控件。 KuiKly采

2026-05-08 10:35:19 364

原创 跨平台框架全景图:Flutter/KMP/KuiKly/RN的2026年格局

跨平台框架格局在2026年发生重大变革,Flutter、KMP、KuiKly和RN各自呈现不同发展态势。Flutter凭借Impeller引擎解决了性能问题,但面临鸿蒙支持缺失的战略困境;RN通过New Architecture实现性能飞跃,JS生态优势明显;KMP采用率翻倍,成为共享业务逻辑的务实选择;而KuiKly则展现出多端覆盖能力。技术路线上,四者差异显著:Flutter自绘UI,RN映射原生控件,KMP专注逻辑共享,KuiKly实现原生渲染。鸿蒙生态的崛起成为关键变量,迫使开发者重新评估框架选择。

2026-05-08 10:34:44 680

原创 AI Bug修复与测试生成:从崩溃日志到修复PR的自动化 | AI提效Android开发(5)

本文是AI提效Android开发系列的完结篇,聚焦AI在Bug修复与测试生成中的应用。文章首先分析了传统Bug修复流程的时间分布,发现80%时间花在问题定位和流程等待上。接着提出构建"崩溃上下文包"的方法,通过提供完整代码、相关类型定义和近期变更等信息,将AI分析的准确率从45%提升到80%。文中还展示了如何设计prompt让AI进行结构化推理,并通过真实案例演示了AI如何快速定位NPE问题的根源。最后比较了自建分析流程与Android Studio Gemini

2026-05-08 10:33:37 910 1

原创 AI Code Review:让每一行代码都有AI审查员

AI助力Android代码审查:从人工疲劳到智能协作 本文探讨如何利用AI优化Android开发中的代码审查环节。传统人工审查存在三大痛点:1)Review疲劳,人类难以专注处理大规模变更;2)风格争论消耗过多时间;3)对跨文件问题、竞态条件等复杂缺陷漏检率高。AI审查的优势在于:能发现空安全、资源泄漏等模式化问题,同时处理整个变更集的上下文。作者提出AI+人工的协作模式:AI负责机械性问题检测(占日常审查60%的工作量),人类专注业务逻辑和架构设计。 实践方案包括:1)构建自动化流水线,从MR触发到评论回

2026-05-08 10:32:56 388

原创 AI编码提效实战:Skill、Rule与上下文工程

如何让AI生成符合团队风格的代码 本文探讨了AI编码助手在实际项目中的核心问题:生成的代码功能正确但风格不符。提出了三个解决方案: Rule规范:通过项目级和模块级的规则文件(如CLAUDE.md),明确编码规范、禁止项和模板,使AI输出风格一致的代码。建议分层管理规则,并提供具体示例而非抽象原则。 Skill封装:将重复开发任务(如添加API接口)标准化为可复用的技能模板,包含任务描述、步骤序列和上下文文件,实现一句话触发复杂流程。 上下文工程:通过精准控制输入信息,让AI基于项目特定上下文生成代码

2026-05-08 10:32:30 999

原创 AI驱动需求梳理与Spec编写:让PRD自动变成技术方案

摘要:本文探讨如何利用AI技术优化Android开发的需求梳理和方案设计环节。作者通过真实案例指出传统PRD存在的三大痛点:信息遗漏、格式不统一和耗时严重。提出使用AI进行PRD深度分析的三角色prompt模板(技术评审、数据设计师、状态机工程师),并展示了一个6模块的Tech Spec自动生成方案。实践证明,AI不仅能发现60%的PRD遗漏问题,还能提供具体解决方案建议,将需求确认效率提升一个量级。文章强调AI在需求翻译环节的价值不在于完全替代人工,而是作为"查漏补缺"的智能助手。

2026-04-26 17:04:27 482

原创 AI提效Android开发全景图:从需求到上线的AI工具链

AI提效Android开发全景图:从需求到上线的完整工具链 本文是AI辅助Android开发系列的首篇,全面介绍了AI如何提升Android开发全流程效率。作者通过一个实际需求案例,展示了AI工具如何将原本一周的开发周期缩短至三天。文章系统梳理了需求分析、架构设计、编码实现、Code Review、测试和上线运维六个环节的AI介入点,并对比分析了Cursor、Claude Code、Copilot和Gemini等主流AI工具的特点及适用场景。 关键数据: AI可将模板代码生成效率提升85% 59%开发者混合

2026-04-26 17:03:53 798

原创 跨端方案的隐形战争:可观测性、文档工具链和协程运行时,才是决定生死的基础设施

跨端方案的生死不取决于性能benchmark,而是可观测性、文档工具链和协程运行时这些隐形基础设施的成熟度

2026-04-23 20:31:03 840

原创 你还在一行一行写代码?Android Studio 已经能“替你想“了

Android Studio Panda 4 带来Planning Mode和NEP,彻底改变编码节奏

2026-04-23 20:28:40 522

原创 你调的每一个接口背后,到底发生了什么?

每个客户端开发者都在调接口,但请求离开手机后发生了什么?带你跟着一次API请求走完后端全旅程。

2026-04-22 14:40:03 522

原创 线上监控与防劣化:让启动优化成果不再回退 | Android启动优化系列(五·完结)

五篇文章写完了。回顾一下整个系列,我们从一个冷启动 8 秒的 App 开始,一路走到了这里:Android启动优化完整地图第1篇 · 认知— 理解冷启动的全景流程:Zygote fork → Application → Activity → 首帧渲染。知道要优化什么,比埋头优化更重要。第2篇 · 度量— 用 Perfetto 看清每一毫秒的去向,用 Macrobenchmark 建立可重复的基准。没有数据支撑的优化就是猜。第3篇 · 初始化优化。

2026-04-22 14:38:35 384

使用于Android的libunwind静态编译库

使用ndk交叉编译,使用于android上的libunwind静态编译库

2017-02-06

Adaboost matlab代码

通过研究在Schapire的大作中提到了一个Toy Game的例子,这里给出了一个类似的Matlab代码,非常适合初学者学习。在AdaBoost中,每个样本都被赋予一个权重。如果某个样本没有被正确分类,它的权重就会被提高, 反之则降低。这样, AdaBoost方法将注意力更多 地放在“难分”的样本上。那怎么合并若分类器成为一个强分类器?强分类器表示为若干弱分类器的线性加权和形式, 准确率越高的弱学习机权重越高。

2013-07-26

《模式分类》第二版的配套的Matlab源代码

模式分类Matlab工具箱。本工具箱与 Duda, Hart, and Stork的经典著作《模式分类(第2版)》配套。内含用户指南及与《模式分类(第2版)》相伴的书《Computer Manual in MATLAB to accompany Pattern Classification (2nd ed.)》附录。

2013-07-29

PCA人脸识别C++源代码

经典的PCA人脸识别算法,C++源代码都是我自己写的,第一次上传,写得不好的地方请多多指教。已经经过我的多次测试和观察数据,代码运行正常,下载之后只要配置好opencv即可。

2013-02-26

lasso经典matlab源码

Lasso变量选择方法创始人的经典代码,内含多个源代码,每个可单独运行.

2013-07-27

FBReader源码

FBReader是一个开源电子书阅读器,此文件为该项目的源代码

2014-07-02

堆排序算法研究_唐开山

堆排序的一种优化实现,先下沉再上浮,是比较次数减少一半。

2015-01-07

开源项目实现安卓滑动菜单

开源项目实现安卓滑动菜单,此文件为该项目的源码

2014-07-02

高仿微信开始页滑动导航界面源码

Android实现微信开始页滑动导航界面源码

2014-07-02

驱动和应用层的三种通信方式

驱动程序和客户应用程序经常需要进行数据交换,但我们知道驱动程序和客户应用程序可能不在同一个地址空间,因此操作系统必须解决两者之间的数据交换。驱动层和应用层通信,主要是靠DeviceIoControl函数,资源是三种io通信情况的例子,还有应用层的测试程序。

2014-03-12

空空如也

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

TA关注的人

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