Files
mkdocs/docs/Obsidian笔记体系/Daily/2024-06-01.md
renjianbo bf169cc8b2 测试
2026-01-12 18:12:00 +08:00

169 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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层)]]
## 备注
- 今天工作状态良好,完成了主要任务
- 需要加快性能测试进度