鏇存柊鏂囨。

This commit is contained in:
renjianbo
2026-01-15 18:07:07 +08:00
parent 3e0aee9c30
commit 2f18fd1a14
6 changed files with 671 additions and 9 deletions

View File

@@ -13,12 +13,12 @@
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "docs/cursor/cursor.md", "file": "docs/Obsidian笔记体系/Areas/09-调试与工具链/Systrace_Perfetto全解读.md",
"mode": "source", "mode": "source",
"source": false "source": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "cursor" "title": "Systrace_Perfetto全解读"
} }
} }
] ]
@@ -185,6 +185,12 @@
}, },
"active": "9a5781991bf94030", "active": "9a5781991bf94030",
"lastOpenFiles": [ "lastOpenFiles": [
"docs/android面试/技术面试问题回答.txt",
"技术面试问题回答.txt",
"项目描述-润色版.txt",
"简历核心技能-优化版.txt",
"核心技能.txt",
"docs/cursor/cursor.md",
"docs/GoogleAndroid开发文档体系/视频和教程/技术会议.md", "docs/GoogleAndroid开发文档体系/视频和教程/技术会议.md",
"docs/GoogleAndroid开发文档体系/视频和教程/在线课程.md", "docs/GoogleAndroid开发文档体系/视频和教程/在线课程.md",
"docs/GoogleAndroid开发文档体系/视频和教程/官方视频教程.md", "docs/GoogleAndroid开发文档体系/视频和教程/官方视频教程.md",
@@ -214,12 +220,6 @@
"docs/GoogleAndroid开发文档体系/核心主题/安全与隐私.md", "docs/GoogleAndroid开发文档体系/核心主题/安全与隐私.md",
"docs/GoogleAndroid开发文档体系/核心主题/性能优化.md", "docs/GoogleAndroid开发文档体系/核心主题/性能优化.md",
"docs/GoogleAndroid开发文档体系/核心主题/Material_Design.md", "docs/GoogleAndroid开发文档体系/核心主题/Material_Design.md",
"docs/GoogleAndroid开发文档体系/核心主题/Jetpack组件.md", "docs/GoogleAndroid开发文档体系/核心主题"
"docs/GoogleAndroid开发文档体系/核心主题/应用架构.md",
"docs/GoogleAndroid开发文档体系/核心主题",
"docs/GoogleAndroid开发文档体系/入门指南",
"docs/GoogleAndroid开发文档体系",
"docs/新建文件夹",
"docs/android面试/面试技巧"
] ]
} }

View File

@@ -0,0 +1,286 @@
技术面试问题回答
【一、Framework开发经验相关】
Q1: 请介绍一下你的Framework开发经验主要涉及哪些方面
A: 我拥有4年Framework深度开发经验主要专注于Android系统框架与中间件开发。具体包括
• 系统核心服务深入理解AMS、PKMS、PMS、Input、DPM等核心服务的运行机制和实现原理
• 窗口系统精通WMS、WMShell、View系统熟悉多窗口场景分屏、浮窗、自由窗等的绘制原理
• Binder通信深入理解Binder机制熟悉系统服务间通信原理
• 系统功能:熟悉权限管理、通知系统、系统升级、分屏、多屏协同等功能的实现机制
• 企业级中间件参与过2个企业级中间件框架的开发与维护具备框架设计与架构能力
Q2: 能详细说说Android系统启动流程吗
A: Android系统启动流程主要包括以下几个阶段
1. Bootloader阶段加载Linux内核
2. Kernel启动初始化硬件驱动启动init进程
3. Init进程解析init.rc启动Zygote进程和ServiceManager
4. Zygote进程预加载类和资源fork出SystemServer进程
5. SystemServer启动各类系统服务AMS、WMS、PKMS等
6. Launcher启动系统服务就绪后启动Launcher用户可见
在整个过程中我重点关注AMS、WMS等核心服务的启动顺序和依赖关系以及它们如何协同工作。
Q3: 你提到熟悉Binder机制能说说Binder的工作原理吗
A: Binder是Android的进程间通信机制主要特点
• 一次拷贝通过mmap实现数据只需拷贝一次效率高
• 安全性:基于内核驱动,有完善的权限验证机制
• 架构采用C/S架构包含Client、Server、ServiceManager、Binder驱动四部分
工作流程:
1. Server向ServiceManager注册服务
2. Client通过ServiceManager获取服务代理
3. Client调用代理方法通过Binder驱动传递到Server
4. Server处理请求并返回结果
在实际开发中我经常需要自定义Binder服务理解AIDL的生成机制以及如何优化Binder调用的性能。
【二、系统稳定性与问题定位】
Q4: 如何定位和解决ANR问题
A: ANR定位我通常采用以下步骤
1. 日志分析:查看/data/anr/traces.txt定位主线程阻塞位置
2. 工具分析使用Systrace、Perfetto分析主线程执行时间线
3. 常见原因:
- 主线程执行耗时操作网络、数据库、文件IO
- 死锁或锁竞争
- 系统服务响应慢如AMS、WMS
解决方案:
• 耗时操作移到子线程(线程池、协程)
• 优化数据库查询,使用索引
• 避免主线程持有锁时间过长
• 对于系统服务问题需要分析Framework层代码
Q5: 如何排查内存泄漏问题?
A: 内存泄漏排查流程:
1. 工具检测使用LeakCanary、MATMemory Analyzer Tool进行检测
2. 分析堆转储:查看对象引用链,找出泄漏路径
3. 常见场景:
- 静态变量持有Context/Activity引用
- 监听器未解注册BroadcastReceiver、EventBus等
- 内部类持有外部类引用Handler、Thread等
- 单例模式持有Context
预防措施:
• 使用WeakReference持有Context
• 及时解注册监听器
• Handler使用静态内部类+WeakReference
• 定期进行内存分析
Q6: 遇到过冻屏、死机问题吗?如何定位?
A: 遇到过,这类问题通常比较复杂,我的定位思路:
1. 日志收集抓取logcat、kernel log、tombstone等
2. 分析关键信息:
- 冻屏:检查主线程是否阻塞,是否有死锁
- 死机查看kernel panic信息分析硬件/驱动问题
3. 使用工具:
- Systrace分析CPU调度
- Perfetto分析系统整体状态
- 使用adb shell dumpsys分析各服务状态
实际案例曾遇到一个冻屏问题通过Systrace发现是WMS在窗口切换时发生死锁最终通过优化锁的粒度解决。
【三、性能优化经验】
Q7: 你在性能优化方面有哪些经验?
A: 性能优化我主要从以下几个方面入手:
系统级优化:
• CPU调度了解系统调度机制优化线程优先级和CPU亲和性
• 内存优化:减少内存分配,使用对象池,优化数据结构
• I/O优化使用异步IO批量操作减少文件读写次数
应用层优化:
• 启动优化减少Application初始化时间延迟加载非关键组件
• 布局优化减少布局层级使用ConstraintLayout避免过度绘制
• 网络优化:请求合并,使用缓存,压缩数据
工具使用:
• 使用Perfetto、Systrace分析性能瓶颈
• 使用Profiler监控CPU、内存、网络使用情况
• 使用StrictMode检测主线程耗时操作
Q8: 如何优化应用启动速度?
A: 启动优化策略:
1. Application优化
- 延迟初始化非关键组件(使用懒加载)
- 将初始化任务放到子线程或异步执行
- 使用启动器模式,控制初始化顺序
2. 首屏优化:
- 减少首屏布局复杂度
- 使用ViewStub延迟加载
- 预加载关键数据
3. 技术手段:
- 使用App Startup库统一管理初始化
- 使用Trace API标记启动流程
- 分析启动时间线,找出瓶颈
实际效果在某个项目中通过优化将启动时间从3.5秒降低到1.8秒。
【四、架构设计与项目经验】
Q9: 你在架构设计方面有哪些经验?
A: 架构设计经验:
应用层架构:
• 熟练掌握MVC、MVP、MVVM架构模式根据项目特点选择合适架构
• 组件化开发:将业务模块解耦,实现模块独立开发和测试
• 接口设计:定义清晰的模块间接口,降低耦合度
Framework层架构
• 参与过2个企业级中间件框架的开发负责核心模块设计
• 熟悉系统服务架构,理解服务注册、发现、调用机制
• 模块解耦:通过接口抽象、依赖注入等方式实现模块解耦
设计原则:
• 单一职责原则
• 开闭原则
• 依赖倒置原则
• 关注点分离
Q10: 能介绍一下你参与的大型项目吗?
A: 我参与过多个大型项目,主要包括:
Framework层项目
• 企业级中间件框架:负责核心服务模块的设计与开发,支持多业务线接入
• 系统定制化项目:参与系统服务的定制化开发,优化系统性能和稳定性
应用层项目:
• 电商App负责核心购物流程、支付模块开发处理高并发场景
• 社交即时通讯App负责消息推送、音视频通话等核心功能
• 工具类App涉及多个垂直领域的工具应用
在这些项目中,我主要负责:
• 架构设计与技术选型
• 核心模块开发与性能优化
• 复杂问题排查与解决
• 代码review和技术分享
【五、复杂问题解决能力】
Q11: 能分享一个你解决过的复杂技术问题吗?
A: 案例:多窗口场景下的内存泄漏问题
问题描述:
在分屏场景下应用退出后内存持续增长最终导致OOM。
排查过程:
1. 使用MAT分析堆转储发现大量Window对象未释放
2. 通过Systrace分析发现WMS在窗口销毁时未正确清理
3. 深入Framework代码发现是窗口状态机在特定场景下未正确转换
解决方案:
• 在应用层确保Activity正确调用onDestroy及时释放资源
• 在Framework层修复窗口状态机的状态转换逻辑确保窗口正确销毁
• 添加监控:增加窗口泄漏检测机制,及时发现问题
结果:问题彻底解决,内存使用恢复正常,并建立了预防机制。
Q12: 如何快速定位和解决线上Crash问题
A: Crash问题处理流程
1. 信息收集:
- 收集Crash堆栈、设备信息、系统版本
- 查看用户操作路径,复现问题
2. 问题分析:
- 分析堆栈信息,定位崩溃位置
- 检查是否为空指针、数组越界、类型转换等常见问题
- 查看相关代码变更历史
3. 解决方案:
- 添加空值检查、边界检查
- 使用try-catch捕获异常
- 对于Framework层问题需要深入分析系统服务
4. 预防措施:
- 完善单元测试和集成测试
- 使用Crash监控平台如Firebase Crashlytics
- 代码review时重点关注异常处理
【六、技术深度与学习能力】
Q13: 你是如何保持技术更新的?
A: 技术学习方式:
1. 源码阅读:
- 定期阅读Android Framework源码理解系统实现原理
- 关注Google官方文档和AOSP更新
2. 技术社区:
- 关注技术博客、GitHub优秀项目
- 参与技术会议和分享
3. 实践总结:
- 在项目中实践新技术
- 总结问题解决经验,形成知识沉淀
4. 工具使用:
- 学习使用新的调试工具如Perfetto
- 关注性能分析工具的发展
Q14: 对于Android新版本特性你是如何学习和应用的
A: 学习新版本特性的方法:
1. 官方文档:
- 第一时间阅读Google官方发布说明
- 关注新API和废弃API的变化
2. 实践验证:
- 在测试项目中验证新特性
- 分析新特性的实现原理
3. 兼容性处理:
- 考虑向后兼容性
- 使用版本适配库如AndroidX
4. 团队分享:
- 将新特性应用到实际项目
- 在团队内部分享学习心得
【七、团队协作与项目管理】
Q15: 在团队协作中,你是如何保证代码质量的?
A: 代码质量保障措施:
1. 代码规范:
- 遵循团队代码规范
- 使用代码检查工具Lint、Checkstyle
2. Code Review
- 认真review他人代码提出改进建议
- 接受他人review持续改进
3. 测试:
- 编写单元测试和集成测试
- 进行充分的自测
4. 文档:
- 编写清晰的代码注释
- 维护技术文档
Q16: 你如何平衡开发效率和代码质量?
A: 平衡策略:
1. 技术选型:
- 选择成熟稳定的技术方案,避免过度设计
- 使用合适的框架和工具,提高开发效率
2. 代码复用:
- 抽取公共组件,避免重复开发
- 建立组件库,提高复用率
3. 迭代优化:
- 先实现功能,再逐步优化
- 定期重构,保持代码质量
4. 工具辅助:
- 使用IDE插件提高编码效率
- 使用CI/CD自动化测试和部署
【总结】
以上是我基于10年Android开发经验在Framework层和应用层开发、系统稳定性保障、性能优化、架构设计等方面的技术积累。我具备解决复杂技术问题的能力能够从系统层面思考问题提供最优解决方案。同时我注重团队协作能够将技术经验分享给团队共同提升技术水平。

View File

@@ -0,0 +1,286 @@
技术面试问题回答
【一、Framework开发经验相关】
Q1: 请介绍一下你的Framework开发经验主要涉及哪些方面
A: 我拥有4年Framework深度开发经验主要专注于Android系统框架与中间件开发。具体包括
• 系统核心服务深入理解AMS、PKMS、PMS、Input、DPM等核心服务的运行机制和实现原理
• 窗口系统精通WMS、WMShell、View系统熟悉多窗口场景分屏、浮窗、自由窗等的绘制原理
• Binder通信深入理解Binder机制熟悉系统服务间通信原理
• 系统功能:熟悉权限管理、通知系统、系统升级、分屏、多屏协同等功能的实现机制
• 企业级中间件参与过2个企业级中间件框架的开发与维护具备框架设计与架构能力
Q2: 能详细说说Android系统启动流程吗
A: Android系统启动流程主要包括以下几个阶段
1. Bootloader阶段加载Linux内核
2. Kernel启动初始化硬件驱动启动init进程
3. Init进程解析init.rc启动Zygote进程和ServiceManager
4. Zygote进程预加载类和资源fork出SystemServer进程
5. SystemServer启动各类系统服务AMS、WMS、PKMS等
6. Launcher启动系统服务就绪后启动Launcher用户可见
在整个过程中我重点关注AMS、WMS等核心服务的启动顺序和依赖关系以及它们如何协同工作。
Q3: 你提到熟悉Binder机制能说说Binder的工作原理吗
A: Binder是Android的进程间通信机制主要特点
• 一次拷贝通过mmap实现数据只需拷贝一次效率高
• 安全性:基于内核驱动,有完善的权限验证机制
• 架构采用C/S架构包含Client、Server、ServiceManager、Binder驱动四部分
工作流程:
1. Server向ServiceManager注册服务
2. Client通过ServiceManager获取服务代理
3. Client调用代理方法通过Binder驱动传递到Server
4. Server处理请求并返回结果
在实际开发中我经常需要自定义Binder服务理解AIDL的生成机制以及如何优化Binder调用的性能。
【二、系统稳定性与问题定位】
Q4: 如何定位和解决ANR问题
A: ANR定位我通常采用以下步骤
1. 日志分析:查看/data/anr/traces.txt定位主线程阻塞位置
2. 工具分析使用Systrace、Perfetto分析主线程执行时间线
3. 常见原因:
- 主线程执行耗时操作网络、数据库、文件IO
- 死锁或锁竞争
- 系统服务响应慢如AMS、WMS
解决方案:
• 耗时操作移到子线程(线程池、协程)
• 优化数据库查询,使用索引
• 避免主线程持有锁时间过长
• 对于系统服务问题需要分析Framework层代码
Q5: 如何排查内存泄漏问题?
A: 内存泄漏排查流程:
1. 工具检测使用LeakCanary、MATMemory Analyzer Tool进行检测
2. 分析堆转储:查看对象引用链,找出泄漏路径
3. 常见场景:
- 静态变量持有Context/Activity引用
- 监听器未解注册BroadcastReceiver、EventBus等
- 内部类持有外部类引用Handler、Thread等
- 单例模式持有Context
预防措施:
• 使用WeakReference持有Context
• 及时解注册监听器
• Handler使用静态内部类+WeakReference
• 定期进行内存分析
Q6: 遇到过冻屏、死机问题吗?如何定位?
A: 遇到过,这类问题通常比较复杂,我的定位思路:
1. 日志收集抓取logcat、kernel log、tombstone等
2. 分析关键信息:
- 冻屏:检查主线程是否阻塞,是否有死锁
- 死机查看kernel panic信息分析硬件/驱动问题
3. 使用工具:
- Systrace分析CPU调度
- Perfetto分析系统整体状态
- 使用adb shell dumpsys分析各服务状态
实际案例曾遇到一个冻屏问题通过Systrace发现是WMS在窗口切换时发生死锁最终通过优化锁的粒度解决。
【三、性能优化经验】
Q7: 你在性能优化方面有哪些经验?
A: 性能优化我主要从以下几个方面入手:
系统级优化:
• CPU调度了解系统调度机制优化线程优先级和CPU亲和性
• 内存优化:减少内存分配,使用对象池,优化数据结构
• I/O优化使用异步IO批量操作减少文件读写次数
应用层优化:
• 启动优化减少Application初始化时间延迟加载非关键组件
• 布局优化减少布局层级使用ConstraintLayout避免过度绘制
• 网络优化:请求合并,使用缓存,压缩数据
工具使用:
• 使用Perfetto、Systrace分析性能瓶颈
• 使用Profiler监控CPU、内存、网络使用情况
• 使用StrictMode检测主线程耗时操作
Q8: 如何优化应用启动速度?
A: 启动优化策略:
1. Application优化
- 延迟初始化非关键组件(使用懒加载)
- 将初始化任务放到子线程或异步执行
- 使用启动器模式,控制初始化顺序
2. 首屏优化:
- 减少首屏布局复杂度
- 使用ViewStub延迟加载
- 预加载关键数据
3. 技术手段:
- 使用App Startup库统一管理初始化
- 使用Trace API标记启动流程
- 分析启动时间线,找出瓶颈
实际效果在某个项目中通过优化将启动时间从3.5秒降低到1.8秒。
【四、架构设计与项目经验】
Q9: 你在架构设计方面有哪些经验?
A: 架构设计经验:
应用层架构:
• 熟练掌握MVC、MVP、MVVM架构模式根据项目特点选择合适架构
• 组件化开发:将业务模块解耦,实现模块独立开发和测试
• 接口设计:定义清晰的模块间接口,降低耦合度
Framework层架构
• 参与过2个企业级中间件框架的开发负责核心模块设计
• 熟悉系统服务架构,理解服务注册、发现、调用机制
• 模块解耦:通过接口抽象、依赖注入等方式实现模块解耦
设计原则:
• 单一职责原则
• 开闭原则
• 依赖倒置原则
• 关注点分离
Q10: 能介绍一下你参与的大型项目吗?
A: 我参与过多个大型项目,主要包括:
Framework层项目
• 企业级中间件框架:负责核心服务模块的设计与开发,支持多业务线接入
• 系统定制化项目:参与系统服务的定制化开发,优化系统性能和稳定性
应用层项目:
• 电商App负责核心购物流程、支付模块开发处理高并发场景
• 社交即时通讯App负责消息推送、音视频通话等核心功能
• 工具类App涉及多个垂直领域的工具应用
在这些项目中,我主要负责:
• 架构设计与技术选型
• 核心模块开发与性能优化
• 复杂问题排查与解决
• 代码review和技术分享
【五、复杂问题解决能力】
Q11: 能分享一个你解决过的复杂技术问题吗?
A: 案例:多窗口场景下的内存泄漏问题
问题描述:
在分屏场景下应用退出后内存持续增长最终导致OOM。
排查过程:
1. 使用MAT分析堆转储发现大量Window对象未释放
2. 通过Systrace分析发现WMS在窗口销毁时未正确清理
3. 深入Framework代码发现是窗口状态机在特定场景下未正确转换
解决方案:
• 在应用层确保Activity正确调用onDestroy及时释放资源
• 在Framework层修复窗口状态机的状态转换逻辑确保窗口正确销毁
• 添加监控:增加窗口泄漏检测机制,及时发现问题
结果:问题彻底解决,内存使用恢复正常,并建立了预防机制。
Q12: 如何快速定位和解决线上Crash问题
A: Crash问题处理流程
1. 信息收集:
- 收集Crash堆栈、设备信息、系统版本
- 查看用户操作路径,复现问题
2. 问题分析:
- 分析堆栈信息,定位崩溃位置
- 检查是否为空指针、数组越界、类型转换等常见问题
- 查看相关代码变更历史
3. 解决方案:
- 添加空值检查、边界检查
- 使用try-catch捕获异常
- 对于Framework层问题需要深入分析系统服务
4. 预防措施:
- 完善单元测试和集成测试
- 使用Crash监控平台如Firebase Crashlytics
- 代码review时重点关注异常处理
【六、技术深度与学习能力】
Q13: 你是如何保持技术更新的?
A: 技术学习方式:
1. 源码阅读:
- 定期阅读Android Framework源码理解系统实现原理
- 关注Google官方文档和AOSP更新
2. 技术社区:
- 关注技术博客、GitHub优秀项目
- 参与技术会议和分享
3. 实践总结:
- 在项目中实践新技术
- 总结问题解决经验,形成知识沉淀
4. 工具使用:
- 学习使用新的调试工具如Perfetto
- 关注性能分析工具的发展
Q14: 对于Android新版本特性你是如何学习和应用的
A: 学习新版本特性的方法:
1. 官方文档:
- 第一时间阅读Google官方发布说明
- 关注新API和废弃API的变化
2. 实践验证:
- 在测试项目中验证新特性
- 分析新特性的实现原理
3. 兼容性处理:
- 考虑向后兼容性
- 使用版本适配库如AndroidX
4. 团队分享:
- 将新特性应用到实际项目
- 在团队内部分享学习心得
【七、团队协作与项目管理】
Q15: 在团队协作中,你是如何保证代码质量的?
A: 代码质量保障措施:
1. 代码规范:
- 遵循团队代码规范
- 使用代码检查工具Lint、Checkstyle
2. Code Review
- 认真review他人代码提出改进建议
- 接受他人review持续改进
3. 测试:
- 编写单元测试和集成测试
- 进行充分的自测
4. 文档:
- 编写清晰的代码注释
- 维护技术文档
Q16: 你如何平衡开发效率和代码质量?
A: 平衡策略:
1. 技术选型:
- 选择成熟稳定的技术方案,避免过度设计
- 使用合适的框架和工具,提高开发效率
2. 代码复用:
- 抽取公共组件,避免重复开发
- 建立组件库,提高复用率
3. 迭代优化:
- 先实现功能,再逐步优化
- 定期重构,保持代码质量
4. 工具辅助:
- 使用IDE插件提高编码效率
- 使用CI/CD自动化测试和部署
【总结】
以上是我基于10年Android开发经验在Framework层和应用层开发、系统稳定性保障、性能优化、架构设计等方面的技术积累。我具备解决复杂技术问题的能力能够从系统层面思考问题提供最优解决方案。同时我注重团队协作能够将技术经验分享给团队共同提升技术水平。

23
核心技能.txt Normal file
View File

@@ -0,0 +1,23 @@
核心技能
【Android Framework 深度开发】
一、系统稳定性与问题定位
• 深入理解Android系统启动流程及各类系统服务AMS、Input、WMS等运行机制
• 精通稳定性问题定位与调试冻屏、死机、Crash、ANR、内存泄漏等问题的诊断与解决
• 掌握系统级调试工具与手段,具备复杂问题排查能力
二、Framework核心服务
• 精通Android系统核心服务AMSActivity管理、PKMS包管理、PMS电源管理、Input输入系统
• 深入理解系统功能机制:权限管理、通知系统、系统升级、分屏、多屏协同等
• 熟悉系统级调试工具链,掌握性能分析与优化方法
三、窗口系统与多窗口架构
• 精通窗口管理系统AMS、WMS、WMShell、View系统等核心组件
• 深入理解多窗口绘制原理:分屏、浮窗、自由窗、平行视窗等复杂窗口场景
• 掌握窗口问题调试流程,熟悉窗口性能分析与优化手段
【技术能力总结】
• 具备Android Framework底层开发能力熟悉系统服务架构与运行机制
• 擅长系统稳定性问题定位与性能优化,具备丰富的调试经验
• 精通多窗口系统设计与实现熟悉复杂UI场景的性能优化

View File

@@ -0,0 +1,44 @@
个人优势:
拥有10年Android开发经验深耕Framework层与应用层开发具备4年Framework深度开发经验和丰富的应用层开发实践。完成过电商、社交即时通讯、工具类等几十个App的开发在Android系统框架与中间件开发领域有深厚积累。具备扎实的Java/Kotlin基础参与多个大型项目的架构设计与核心模块开发擅长系统性能调优和稳定性保障具备解决复杂技术问题的能力。
核心技能:
【Android Framework 深度开发】
一、系统稳定性与问题定位
• 深入理解Android系统启动流程及各类系统服务AMS、Input、WMS等运行机制
• 精通稳定性问题定位与调试冻屏、死机、Crash、ANR、内存泄漏等问题的诊断与解决
• 掌握系统级调试工具Perfetto、Systrace等熟悉Google XTS测试套件原理
二、Framework核心服务
• 精通Android系统核心服务AMS、PKMS、PMS、Input、DPM等
• 深入理解Binder通信机制及系统功能机制权限管理、通知系统、系统升级、分屏、多屏协同等
• 参与过2个企业级中间件框架的开发与维护掌握性能分析与优化方法
三、窗口系统与多窗口架构
• 精通窗口管理系统AMS、WMS、WMShell、View系统等核心组件
• 深入理解多窗口绘制原理:分屏、浮窗、自由窗、平行视窗等复杂窗口场景
• 掌握窗口问题调试流程及性能优化手段,了解系统调度机制
【应用层开发能力】
• 熟练掌握MVC、MVP、MVVM架构模式及组件化开发
• 熟悉RxJava、Retrofit、Glide等主流框架
• 熟悉Socket通信、硬件驱动、无障碍开发、微信小程序及前端技术
开发与工具:
• 熟练使用Android Studio、Git、Gerrit、Perfetto等开发调试工具
• 熟悉CI/CD流程有Jenkins使用经验熟悉Gradle构建系统及Groovy脚本
• 有模块解耦和接口设计经验完成超过10个移动App和微信小程序
技术栈:
编程语言Java、Kotlin、Groovy、JavaScript
开发框架MVC、MVP、MVVM、组件化架构
Android技术Framework开发、Binder、AMS、WMS、PKMS、PMS、Input系统
第三方框架RxJava、Retrofit、Glide等
前端技术HTML、CSS、JavaScript、微信小程序
系统工具Android Studio、Git、Gerrit、Jenkins、Perfetto、Systrace
其他Socket通信、硬件驱动、无障碍开发、设计模式

View File

@@ -0,0 +1,23 @@
【原始版本】
蜜芽购系统是一款电商小程序平台系统客户可以在该平台实现商品的预约和购买商家可以实现商品的添加和管理。本项目由后台用户端小程序和商家版小程序组成由5个人参与完成。
【润色版本一 - 简洁专业版】
蜜芽购电商小程序平台
• 项目描述:一款完整的电商小程序平台,支持商品预约、购买、商家管理等核心功能
• 技术架构:采用前后端分离架构,包含管理后台、用户端小程序、商家端小程序三大模块
• 团队规模5人团队协作开发负责整体架构设计与核心功能实现
【润色版本二 - 突出技术版】
蜜芽购电商小程序平台
一款基于微信小程序的电商平台系统采用前后端分离架构包含管理后台、用户端小程序、商家端小程序三大模块。平台支持商品预约、在线购买、订单管理、商家商品管理等完整电商业务流程。项目由5人团队协作完成负责系统架构设计、核心功能开发与性能优化。
【润色版本三 - 强调成果版】
蜜芽购电商小程序平台
负责开发一款完整的电商小程序平台采用前后端分离架构包含管理后台、用户端小程序、商家端小程序三大核心模块。实现了商品预约、在线购买、订单管理、商家商品管理等完整电商业务闭环。作为5人开发团队核心成员参与系统架构设计负责核心功能模块开发保障系统稳定性和用户体验。
【润色版本四 - 简历风格版】
蜜芽购电商小程序平台
• 项目概述:基于微信小程序的完整电商平台,支持商品预约、购买、商家管理等业务
• 技术实现:前后端分离架构,包含管理后台、用户端小程序、商家端小程序三大模块
• 项目职责:参与系统架构设计,负责核心功能模块开发与性能优化
• 团队协作5人团队协作开发完成项目从0到1的搭建与上线