我用 AI 搭了个 Android 性能分析工具,踩了不少坑
做 Android 这么多年,性能优化一直是件让人头疼的事。
你肯定遇到过这种场景:用户反馈列表滑动卡顿,你打开 Android Profiler 抓了一堆数据,CPU 调用链几百层深,看了半天也定位不到问题在哪。
市面上有一些工具,但大多要么需要 Root,要么要改业务代码接入 SDK,要么就是只给个耗时数据让你自己去猜。
我想做一个东西:丢一个 trace 过去,它告诉我哪个类的哪个方法慢了、为什么慢、怎么改。
就这么个想法,断断续续搞了几周,算是跑起来了。
做了什么
项目叫 SmartInspector,一个 CLI 工具,跑在终端里。
核心流程就三步:
连手机 → 自动采集 trace → AI 分析 → 出报告
比如你在终端输入 /trace app,它会通过 adb 采集 Perfetto trace,然后自动分析 CPU、帧渲染、内存、IO 这些指标,最后给一份 Markdown 格式的报告。
最实用的是源码归因——它不只是说"第 23 帧耗时 156ms",而是会告诉你:
MainActivity.onCreate()里调了loadData(),里面Gson.fromJson()在主线程解析了一个 2.3MB 的 JSON。建议挪到子线程或者用流式解析。
还能分析布局文件,帮你找嵌套过深和过度绘制的地方。
怎么实现的
架构不复杂:
CLI → 意图路由 → 采集 → 分析 → 归因 → 报告
关键的设计思路是确定性流程用代码,需要"理解"的部分用 AI。
- 意图路由:few-shot prompt 分类,max_tokens=5,基本不会出错
- trace 采集和 SQL 查询:纯代码,调用 Perfetto 的 TraceProcessor
- 源码归因:AI 拿着耗时方法名去项目源码里找对应位置
- 报告生成:AI 把分析结果写成人类能读的报告
说白了就是把大问题拆成小问题,每个小问题让 AI 只做一件事,准确率就上去了。
AI 辅助开发的真实感受
说实话,一开始也没想到能靠 AI 搞出来。试了几轮之后有几点体会:
爽的地方
一个完整的 pipeline 从需求到能跑,大概 3 周。纯自己写我估计要 2 个月以上。特别是写那种"架构搭架子"的代码,你把需求描述清楚,AI 帮你出模块划分和接口定义,你负责拍板就行。
修 Bug 也是,有个布局文件后缀识别的问题,我把日志贴给 Claude Code,它直接定位到 attributor.py 里的条件判断逻辑,改了一行就好了。
不爽的地方
AI 不会主动发现需求变更。一开始没考虑鸿蒙支持,后来要加,它不会提醒你"这个架构应该提前考虑跨平台"。
复杂 Bug 还是得自己来。有个 trace 数据覆盖的问题,AI 改了 3 次都没对,最后我自己看代码才找到原因。它擅长写新代码,不擅长在复杂状态机里找逻辑错误。
还有 Token 消耗。多 Agent 协作的模式,分析一个 trace 要跑好几轮 LLM 调用,成本不低。
一些实际数据
- 从零到第一个可用版本:约 3 周
- Python 约 3000 行,Kotlin 约 800 行
- AI 生成比例约 70%,剩下 30% 是手写和重构
- Bug 修复成功率约 60%,复杂逻辑问题基本靠人
项目地址
开源了,感兴趣的同学可以看看:
目前还在早期阶段,很多功能在持续迭代。后面打算支持鸿蒙平台,增加 GPU 渲染分析,再做 CI/CD 自动检测。
欢迎提 issue 和 PR,也欢迎交流 AI 辅助开发的经验。
这是「AI码上见」专栏的第一篇,后续会持续分享用 AI 搞开发的真实经历。