# 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层）]]

## 备注

- 今天工作状态良好，完成了主要任务
- 需要加快性能测试进度
