# 2024-06-01 ## 基本信息 - **日期**: 2024-06-01 - **星期**: 星期六 - **天气**: 晴 - **心情**: 良好 ## 今日计划 ### 工作安排 - [x] 完成系统服务定制开发 - [x] 代码审查 - [ ] 性能测试 ### 学习计划 - [x] 阅读Activity启动流程源码 - [ ] 学习Binder机制 ### 其他计划 - [x] 整理项目文档 ## 工作记录 ### 已完成 - ✅ 完成系统服务定制开发 - 时间: 09:00 - 12:00 - 内容: 完成了PackageManagerService的定制开发,增加了应用管理功能 - 收获: 深入理解了PackageManagerService的工作机制 - ✅ 代码审查 - 时间: 14:00 - 16:00 - 内容: 审查了团队成员的代码,提出了改进建议 - 收获: 通过代码审查学习到了不同的实现思路 - ✅ 阅读Activity启动流程源码 - 时间: 16:00 - 18:00 - 内容: 阅读了Activity启动流程的源码,理解了跨进程启动机制 - 收获: 理解了Activity启动的完整流程,包括AMS、ApplicationThread等关键组件 - 相关链接: [[02-Activity管理/Activity启动流程(跨进程)]] ### 进行中 - 🔄 性能测试 - 开始时间: 18:00 - 当前进度: 已完成启动时间测试,正在进行内存测试 - 遇到的问题: 内存测试数据异常,需要进一步分析 - 下一步计划: 分析内存测试数据,找出问题原因 ### 待处理 - ⏳ 学习Binder机制 - 计划时间: 明天 - 优先级: 中 ## 学习记录 ### 技术学习 - **学习内容**: Activity启动流程源码分析 - **学习时间**: 16:00 - 18:00 - **学习方式**: 阅读源码 - **关键收获**: 1. Activity启动是跨进程的,应用进程通过Binder与AMS通信 2. 如果目标进程不存在,AMS会先创建进程,再启动Activity 3. Activity的生命周期由AMS统一管理,通过ApplicationThread回调 - **相关链接**: [[02-Activity管理/Activity启动流程(跨进程)]] ### 源码阅读 - **阅读模块**: ActivityManagerService - **阅读时间**: 16:00 - 18:00 - **关键理解**: - AMS负责Activity的启动、生命周期管理 - 通过Binder与应用进程通信 - 管理Activity栈(Task、Stack) - **疑问**: - Activity栈的管理策略是什么? - 如何优化Activity启动性能? - **相关链接**: [[02-Activity管理/Activity栈管理(Task&Stack)]] ### 问题解决 - **问题描述**: 系统服务定制后,某些应用无法正常启动 - **解决过程**: 1. 查看日志,发现权限检查失败 2. 分析代码,发现权限检查逻辑有问题 3. 修复权限检查逻辑 - **解决方案**: 修复了PackageManagerService中的权限检查逻辑 - **经验总结**: 系统服务定制需要特别注意权限管理,不能影响应用的正常使用 - **相关链接**: [[项目A-系统定制化/关键问题记录]] ## 会议记录 ### 项目进度会议 - **时间**: 10:00 - 11:00 - **主题**: 项目A进度讨论 - **参与人**: 项目团队 - **关键内容**: - 讨论了项目进度 - 确定了下一步工作计划 - 分配了任务 - **行动项**: - [ ] 完成性能测试 - [ ] 修复发现的问题 - **相关链接**: [[项目A-系统定制化/README]] ## 思考与总结 ### 今日收获 1. **技术收获**: 深入理解了Activity启动流程,对Android系统架构有了更清晰的认识 2. **工作收获**: 完成了系统服务定制开发,积累了系统定制经验 3. **学习收获**: 通过源码阅读,提升了代码理解能力 ### 今日反思 - **做得好的地方**: - 按时完成了开发任务 - 通过源码阅读加深了理解 - 及时解决了遇到的问题 - **需要改进的地方**: - 性能测试进度较慢,需要加快 - 学习计划执行不够充分 - **改进计划**: - 明天重点完成性能测试 - 安排时间学习Binder机制 ### 明日计划 1. 完成性能测试,分析测试结果 2. 修复发现的问题 3. 学习Binder机制,阅读相关源码 ## 技术笔记 ### Activity启动流程 - **内容**: Activity启动是跨进程的,涉及多个组件协作 - **关键理解**: - 应用进程通过Binder与AMS通信 - AMS负责Activity的启动和生命周期管理 - ApplicationThread作为Binder服务端,接收AMS的调用 - **相关链接**: [[02-Activity管理/Activity启动流程(跨进程)]] ### 系统服务定制 - **内容**: 定制PackageManagerService,增加应用管理功能 - **关键理解**: - 系统服务定制需要深入理解源码 - 需要注意权限管理,不能影响应用正常使用 - 充分的测试很重要 - **相关链接**: [[项目A-系统定制化/技术方案设计]] ## 问题与疑问 ### 问题1: Activity栈管理策略 - **问题描述**: Activity栈的管理策略是什么?如何优化? - **思考**: 需要阅读Activity栈管理相关源码 - **待解决**: 明天阅读相关源码 ### 问题2: 性能测试数据异常 - **问题描述**: 内存测试数据异常,需要进一步分析 - **思考**: 可能是测试方法有问题,或者系统确实存在内存问题 - **待解决**: 明天分析测试数据,找出问题原因 ## 相关链接 - [[项目A-系统定制化/README]] - [[02-Activity管理/Activity启动流程(跨进程)]] - [[05-进程与线程通信/Binder机制(内核到Java层)]] ## 备注 - 今天工作状态良好,完成了主要任务 - 需要加快性能测试进度