Android 开发工程师 · 上海 · 5 年经验
duchengyuan@example.com · 137 0000 0000 · github.com/duchengyuan
个人优势
- 5 年 Android 开发经验,负责过日活 800 万的内容社区 App,主导启动、卡顿、崩溃三项性能指标的治理
- Kotlin 和协程用得扎实,团队新模块全部 Kotlin 编写;推动 Jetpack Compose 在新页面落地,并处理了和老 View 体系的混用问题
- 启动优化做过完整链路:任务编排、类加载、布局预加载、首帧数据缓存,冷启动从 2.3 秒降到 1.1 秒
- 稳定性有体系:崩溃按版本、机型、系统聚合,ANR 有自动抓栈,Native 崩溃能用 addr2line 定位到行
- 关注包体积,做过资源混淆、图片格式转换、动态下发和无用代码清理,安装包从 98MB 降到 61MB
- 熟悉组件化和模块解耦,Gradle 构建速度从 6 分钟降到 2 分半,团队日常开发体验明显改善
- 能和 iOS、前端同学对齐跨端方案,做过 WebView 容器和 JSBridge 的性能优化
- 技术栈:Kotlin、Java、Jetpack Compose、Coroutines、Room、Retrofit / OkHttp、Hilt、Gradle、Perfetto、Matrix
工作经历
某内容社区公司 · 高级 Android 工程师
客户端基础架构组负责性能、稳定性和构建工具,Android 4 人,服务全公司 30 多名客户端开发。
- 冷启动:用 Perfetto 拆解启动耗时,发现 SDK 初始化串行、首页布局层级过深、首屏数据等待网络。改为有向无环图编排初始化任务,非首屏 SDK 延后到首帧之后,首页数据先读本地缓存。冷启动 P50 从 2.3 秒降到 1.1 秒
- 卡顿治理:接入 Matrix 统计帧率和慢函数,信息流页的掉帧集中在图片解码和复杂文本排版。图片按控件尺寸解码、文本布局在子线程预计算,信息流滑动掉帧率下降约 60%
- 稳定性:建立崩溃和 ANR 的版本对比看板,新版本灰度期间自动对比崩溃率;处理了一批厂商 ROM 上的系统 Bug。崩溃率从 0.18% 降到 0.05%,ANR 率降到 0.1% 以下
- 包体积:清理无用资源和代码,大图转 WebP,非核心功能(直播礼物特效、AR 滤镜)改为动态下发。安装包从 98MB 降到 61MB,下载转化率提升约 3 个百分点
某出行公司 · Android 开发工程师
负责司机端 App 的接单和导航模块,Android 团队 8 人。
- 接单页从 Activity 堆叠改为单 Activity + Fragment 导航,页面切换耗时下降约一半,内存泄漏问题基本消除
- 后台定位保活适配各厂商的省电策略,司机端定位断档率从 7% 降到 1.5%
- 为订单状态推送设计长连接 + 轮询兜底,弱网下订单状态延迟从分钟级降到 10 秒以内
项目经历
Compose 页面框架落地
Jetpack Compose / Kotlin / Hilt / Paging 3
- 制定 Compose 页面的状态管理规范:UI 状态单向流动,副作用集中在 ViewModel,避免重组时重复请求
- 处理 Compose 与老 RecyclerView 列表的嵌套滑动冲突,封装通用的混用容器
- 建立重组次数和稳定性检查,在 CI 里拦截不稳定参数导致的过度重组;新页面开发效率提升约 30%
Gradle 构建提速
Gradle / Build Cache / KSP
- 用 Build Scan 分析构建耗时,kapt 迁移到 KSP,模块间依赖改为 api / implementation 精确声明
- 开启远程构建缓存,CI 和本地共享缓存产物
- 全量构建从 6 分钟降到 2 分半,增量构建大多在 30 秒以内