2026-01-12 18:12:00 +08:00
|
|
|
|
# 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层)]]
|
|
|
|
|
|
|
|
|
|
|
|
## 备注
|
|
|
|
|
|
|
|
|
|
|
|
- 今天工作状态良好,完成了主要任务
|
|
|
|
|
|
- 需要加快性能测试进度
|