解决合并冲突

This commit is contained in:
renjianbo
2026-04-02 09:44:00 +08:00
9 changed files with 601 additions and 10 deletions

View File

@@ -1,3 +1,16 @@
启动服务器:
cd /home/renjianbo/aitsc
pkill -f "run_dev:app"
rm -f logs/gunicorn.pid
sleep 2
eval "$(/home/renjianbo/miniconda3/bin/conda shell.bash hook)"
conda activate myenv
gunicorn -c gunicorn.conf.py run_dev:app
系统维护常用语:
以行业和职业的维度,继续追加生成更多的提示词模板
以行业和职业的维度,继续追加生成更多不同的技术方向研发工程师的提示词模板

View File

@@ -0,0 +1,162 @@
## 1. 什么是 ANR
ANR 全称:**Application Not Responding**,即**应用程序无响应**。
## 2. 触发条件
1. 只有 ** 主线程UI 线程)** 才会产生 ANR。
2. 必须发生输入事件或特定组件操作:
- 按键、触屏等输入事件
- `BroadcastReceiver` 生命周期回调
- `Service` 生命周期回调
3. 事件响应超时,不同场景超时时间不同。
### 2.1 各场景超时时间
- **Activity 输入事件 / 生命周期**:主线程 5s 内未处理完毕
- **BroadcastReceiver#onReceive()**:主线程 10s 内未处理完毕
- **Service 生命周期**:主线程 20s 内未处理完毕
## 3. ANR 根本原因
### 3.1 主线程执行耗时操作
典型场景:
- 耗时网络访问
- 大量数据读写、数据库操作
- 硬件操作(如 Camera
- 多线程被 Binder 对端 block
- 主线程调用 `Thread.join()`/`sleep()`/`wait()`、等待线程锁
- Service Binder 数量达上限,无法与 System Server 通信
- System Server 中 WatchDog 导致 ANR、Service 繁忙超时
### 3.2 非主线程导致
非主线程持有锁,导致主线程等待锁超时 / 无限等待,最终触发 ANR。
### 3.3 其他进程 / 系统资源问题
- 其他进程占用 CPU本进程得不到时间片
- 内存泄漏导致频繁 Full GCCPU 占用飙升
- 内存吃紧、系统频繁 coredump
> CPU 利用率说明:
>
> - 前台进程 ≤ 95%,后台进程 ≤ 5%(无前台时可超)
> - `RUNNABLE` 线程不一定耗 CPU
> - `TIMED_WAITING`/`WAITING` 线程不耗 CPU
> - I/O 操作本身不怎么耗 CPU
> 注意:
>
> “内存泄露” 可能是真实泄漏点,也可能是堆内存占用过大、内存吃紧,间接导致 ANR/CPU 过高。
## 4. ANR 类型及日志关键字
表格
|ANR 类型|超时时间|Logcat 关键字|
|---|---|---|
|InputDispatching Timeout|5s|`Input event dispatching timed out`|
|BroadcastTimeout|前台 10s<br><br>后台 60s|`Timeout of broadcast BroadcastRecord`|
|ServiceTimeout|前台 20s<br><br>后台 200s|`Timeout executing service`|
|ContentProviderTimeout|10s|`timeout publishing content providers`|
## 5. ANR 定位方法
入手点ANR 前后日志 + `/data/anr/traces.txt`
### 5.1 日志分析
1. 搜索 `ANR in`:定位发生 ANR 的进程
2. 搜索 `ActivityManager:CPU usage from`:判断是否 CPU 过高
### 5.2 traces.txt 分析
1. 搜索 `held by tid=`:排查死锁
2. 查看 `stackSize=`:判断是否内存问题
### 5.3 整体分析步骤
1. 确定 ANR 时间点
- 关键字:`anr in``blocked``blockMonitor``freezedector`
- 获取版本号、PID、是否前台、页面、温度、频点、ANR 类型
2. 根据 ANR 类型回溯对应时间段日志
- 查找 `Subject` / `Reason`
3. 分析 ANR 堆栈
- 查找 `sysTid=线程号`
- 状态为 `block`/`timeout` 一般为真实问题堆栈
### 5.4 核心分析思路
1. **查看 CPU 负载**
- user用户态
- kernel内核态
- iowaitIO 等待
- faults内存缺页
2. **查看主线程状态**
- `Native`:正常空闲,等待消息
- `Runnable`:主线程执行耗时操作
- `Blocked`:主线程被锁阻塞,可查 `waiting to lock...held by thread`
3. **其他应用抢占 CPU**
日志会显示高占比包名CPU 上限 = 核心数 × 100%
4. **系统服务 / Binder 问题**
搜索:`BinderProxy.transactNative`
可能原因Binder 超时、Binder 资源耗尽
5. **内存紧张导致 ANR**
- 查看 ANR 前空闲内存
- 4G 及以下:阈值约 350M
- 4G 以上:阈值约 450M
- 查看 `trimMemory` 调用level 越大内存越紧张5/10/20/40/60/80
## 6. 典型示例
1. 主线程与子线程互锁导致 ANR
2. Android 系统库崩溃(如 `libweexcore.so` 等)
3. `nativePollOnce` 阻塞
4. Binder 对端阻塞(如第三方推送 SDK
## 7. 非应用自身导致的 ANR
1. **热限频**
- 温度 > 41℃
- 大核频点 < 1.8GHz 且跑满
2. **Monkey 异常场景**
- 焦点不在当前应用 / 页面已销毁,仍分发输入事件
- 不属于 App 代码问题
## 8. ANR 根本原因分类总结
表格
|原因类别|具体表现|
|---|---|
|主线程自身问题|主线程执行耗时操作、死循环、复杂计算、同步 IO / 网络|
|线程间竞争|主线程等待子线程锁、死锁、子线程崩溃导致主线程无限等待|
|CPU 被抢占|其他进程占满 CPU、频繁 GC|
|系统资源瓶颈|内存紧张、GC 频繁、系统服务繁忙、Binder 耗尽|
|系统 / 环境问题|热限频、Monkey 异常、系统服务超时|

View File

@@ -6,7 +6,7 @@
| 版本 | 日期 | 作者 | 变更描述 |
| :--- | :--- | :--- | :--- |
| 1.0 | 2024-05-24 | AI Assistant | 初始版本,根据高级开发工程师规范制定 |
## 一、引言
本指南旨在为高级Android开发工程师提供一个系统化、标准化的整机性能分析框架。当面对海量性能日志和Trace数据时工程师可依据此文档进行高效、精准的问题定位并产出高质量的根因分析与优化建议。

View File

@@ -0,0 +1,49 @@
已在你的项目里放好 Docker 版 OpenClaw龙虾 部署文件路径如下
/home/renjianbo/long/long/openclaw-docker/
|文件|作用|
|---|---|
|docker-compose.yml|官方同款openclaw-gateway + openclaw-cli默认镜像 ghcr.io/openclaw/openclaw:latest|
|.env|端口、时区、数据目录已自动生成 OPENCLAW_GATEWAY_TOKEN请自行保管勿泄露|
|start.sh|拉镜像 → 修正挂载目录属主 → 后台启动 Gateway|
---
### 你怎么用
在服务器上执行:
cd /home/renjianbo/long/long/openclaw-docker
./start.sh
若拉镜像报错例如 unexpected EOF、超时多半是访问 GHCR 不稳定可以
- 给 Docker  HTTP 代理  registry 镜像加速再重跑 ./start.sh
- 在有外网的机器上 docker pull ghcr.io/openclaw/openclaw:latest  docker save / docker load 拷到本机。
---
### 启动成功后
- 本机http://127.0.0.1:18789
- 健康检查curl -sS http://127.0.0.1:18789/healthz
首次引导(交互,需真实终端):
cd /home/renjianbo/long/long/openclaw-docker
docker compose run --rm openclaw-cli onboard --mode local --no-install-daemon
常用:
docker compose logs -f openclaw-gateway
docker compose down    # 停止
---
说明:刚才在这台机器上执行 ./start.sh 镜像下载到末尾出现 网络中断unexpected EOF所以容器未必已经起来你网络稳定后再执行一次 ./start.sh 即可。若你希望改用 国内可拉的替代镜像名 OPENCLAW_IMAGE 写进 .env 后同样用 docker compose pull / ./start.sh 即可。

View File

@@ -0,0 +1,66 @@
好的!让我为你详细介绍我的能力:
## 🛠️ 核心功能
### 1. **文件操作**
- **读取文件** - 查看文本文件、图片内容
- **编辑文件** - 精确修改文件内容
- **创建文件** - 编写新文件,自动创建目录
- **工作目录**`C:\Users\Administrator\.openclaw\workspace`
### 2. **系统命令执行**
- **运行 shell 命令** - PowerShell、CMD 等
- **后台进程管理** - 启动、监控、停止进程
- **终端交互** - 支持需要 TTY 的命令
### 3. **网络功能**
- **网页搜索** - 使用 Brave Search API
- **网页抓取** - 提取网页内容为 Markdown/文本
- **图片分析** - 分析图片内容(需要配置图像模型)
### 4. **任务管理**
- **定时任务 (Cron)** - 设置定期执行的任务
- **提醒功能** - 在指定时间提醒你
- **会话管理** - 创建子会话处理复杂任务
### 5. **会话与协作**
- **子代理** - 创建专门的代理处理特定任务
- **会话历史** - 查看其他会话的记录
- **跨会话通信** - 在不同会话间发送消息
## 📁 工作空间结构
我的工作空间有几个重要文件:
- **SOUL.md** - 定义我的个性和行为准则
- **USER.md** - 记录关于你的信息
- **MEMORY.md** - 长期记忆存储
- **TOOLS.md** - 本地工具配置
- **HEARTBEAT.md** - 定期检查任务列表
- **memory/** 目录 - 每日日志文件
## 🔧 技能系统
我还有一些专门的技能:
- **健康检查** - 系统安全审计和加固
- **节点连接** - 诊断 OpenClaw 节点连接问题
- **Notion 集成** - 管理 Notion 页面和数据库
- **天气查询** - 获取天气信息
- **技能创建** - 创建和编辑新技能
- **OpenAI 图像生成** - 批量生成图片
## ⚡ 实际应用场景
我可以帮你:
- **整理文件** - 批量重命名、分类整理
- **数据处理** - 分析日志、提取信息
- **自动化任务** - 定期备份、监控系统
- **学习研究** - 搜索资料、整理笔记
- **项目管理** - 跟踪进度、管理文档
## 🔒 安全考虑
- **内部操作自由**:文件操作、本地命令等
- **外部操作谨慎**:发送消息、公开操作需要确认
- **隐私保护**:不会泄露你的私人信息
现在你想试试哪个功能?或者有什么具体的任务想让我帮你处理?

View File

@@ -0,0 +1,4 @@
# 创建默认配置结构 openclaw config set agents.defaults.model '{"primary": "deepseek/deepseek-chat", "fallbacks": []}' # 再次查看默认模型 openclaw config get agents.defaults.model.primary

View File

@@ -0,0 +1,298 @@
# Git 同步与上传规范
## 📋 概述
本文档规范了 MkDocs 知识库项目的 Git 同步和上传流程,确保团队协作高效、代码版本可控。
## 🎯 目标
- 统一团队 Git 操作流程
- 减少代码冲突和版本问题
- 确保代码及时同步和备份
- 建立规范的提交和推送习惯
## 🔄 日常同步流程
### 1. 开始工作前(拉取最新代码)
```bash
# 进入项目目录
cd D:\mkdocs
# 检查当前状态
git status
# 拉取远程最新代码
git pull origin master
# 确认同步完成
git log --oneline -5
```
### 2. 工作过程中(定期同步)
```bash
# 查看是否有远程更新
git fetch origin
# 比较本地和远程差异
git log origin/master..master # 本地有远程没有的提交
git log master..origin/master # 远程有本地没有的提交
# 如果有远程更新,先拉取
git pull --rebase origin master
```
### 3. 提交更改(本地保存)
```bash
# 查看更改的文件
git status
# 添加所有更改(或指定文件)
git add . # 添加所有更改
# 或
git add <文件名> # 添加指定文件
# 提交更改(描述要清晰)
git commit -m "描述:做了什么修改,为什么修改"
# 提交示例:
# git commit -m "文档添加用户认证模块API文档"
# git commit -m "修复修正MkDocs构建配置错误"
# git commit -m "功能新增Docker部署指南"
```
### 4. 推送到服务器(共享代码)
```bash
# 先拉取最新代码(避免冲突)
git pull origin master
# 如果有冲突,解决冲突后提交
# git add .
# git commit -m "解决合并冲突"
# 推送到远程服务器
git push origin master
# 验证推送成功
git log --oneline -3
```
## 📤 上传新文件流程
### 1. 添加新文档文件
```bash
# 创建新文件(如:新功能文档)
# 文件路径D:\mkdocs\docs\龙虾openclaw\新功能.md
# 添加到Git跟踪
git add docs\龙虾openclaw\新功能.md
# 或添加整个目录
git add docs\龙虾openclaw\
```
### 2. 添加新目录结构
```bash
# 创建新目录
mkdir -p docs\龙虾openclaw\新模块
# 添加目录和文件
git add docs\龙虾openclaw\新模块\
# 如果目录中有需要忽略的文件,先更新.gitignore
```
### 3. 提交和推送
```bash
# 提交新文件
git commit -m "新增龙虾openclaw新模块文档"
# 推送到服务器
git push origin master
```
## 🚨 冲突处理流程
### 1. 检测冲突
```bash
# 拉取时发现冲突
git pull origin master
# 输出CONFLICT (content): Merge conflict in <文件名>
```
### 2. 解决冲突
```bash
# 查看冲突文件
git status
# 手动编辑冲突文件
# 文件内容会显示:
# <<<<<<< HEAD
# 本地内容
# =======
# 远程内容
# >>>>>>> commit-hash
# 保留需要的内容,删除标记
# 保存文件
```
### 3. 完成冲突解决
```bash
# 标记冲突已解决
git add <冲突文件>
# 继续合并
git commit -m "解决合并冲突:<文件描述>"
# 完成推送
git push origin master
```
## 📝 提交信息规范
### 格式要求
```
<类型>: <简短描述>
<详细描述(可选)>
```
### 类型说明
- **文档**: 文档新增、修改、删除
- **功能**: 新功能、特性添加
- **修复**: Bug修复、问题解决
- **优化**: 性能优化、代码重构
- **配置**: 配置文件修改
- **依赖**: 依赖包更新
- **测试**: 测试用例相关
- **样式**: CSS、样式修改
### 示例
```
文档: 添加Git同步规范文档
- 详细说明日常同步流程
- 规范提交信息格式
- 添加冲突处理指南
```
## 🔧 高级操作
### 1. 查看提交历史
```bash
# 简洁查看
git log --oneline -10
# 带图表查看
git log --graph --oneline --all
# 查看特定文件历史
git log --oneline -- docs\龙虾openclaw\git同步与上传规范.md
```
### 2. 撤销操作
```bash
# 撤销未提交的修改
git checkout -- <文件名>
# 撤销已add但未commit的文件
git reset HEAD <文件名>
# 修改最后一次提交
git commit --amend -m "新的提交信息"
```
### 3. 分支管理(如需)
```bash
# 创建新分支
git checkout -b feature/新功能
# 切换分支
git checkout master
# 合并分支
git merge feature/新功能
# 删除分支
git branch -d feature/新功能
```
## ⚠️ 注意事项
### 必须遵守
1. **工作前必拉取**:开始工作前必须先 `git pull`
2. **提交前必检查**:提交前用 `git status` 检查更改
3. **描述必清晰**:提交信息必须清晰描述修改内容
4. **冲突必解决**:遇到冲突必须手动解决,不能强制推送
### 建议习惯
1. **小步提交**:频繁提交,每次提交一个完整的小功能
2. **及时推送**:完成一个功能后及时推送到远程
3. **定期同步**:每小时至少同步一次远程代码
4. **备份重要**:重要修改前创建备份分支
### 禁止操作
1. ❌ 不要强制推送 `git push -f`(除非明确知道后果)
2. ❌ 不要提交大文件超过100MB
3. ❌ 不要提交敏感信息(密码、密钥等)
4. ❌ 不要提交自动生成的文件(如 `.obsidian/workspace.json`
## 📊 工作流程图
```mermaid
graph TD
A[开始工作] --> B[git pull 拉取最新]
B --> C[编辑文档]
C --> D[git add 添加更改]
D --> E[git commit 提交]
E --> F{是否有远程更新?}
F -->|是| G[git pull 解决冲突]
G --> H[git push 推送]
F -->|否| H
H --> I[工作完成]
```
## 🛠️ 工具支持
### 1. Git 配置优化
```bash
# 设置用户名和邮箱
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
# 设置默认编辑器
git config --global core.editor "code --wait"
# 启用颜色显示
git config --global color.ui auto
```
### 2. 别名设置(可选)
```bash
# 添加到 ~/.gitconfig
[alias]
st = status
co = checkout
br = branch
ci = commit
df = diff
lg = log --graph --oneline --all
```
## 📞 问题处理
### 常见问题
1. **权限错误**:检查 Git 服务器访问权限
2. **网络问题**:检查网络连接,确认服务器可达
3. **文件锁定**:关闭正在使用的文件编辑器
4. **磁盘空间**:确保有足够的磁盘空间
### 求助流程
1. 先查看错误信息
2. 搜索错误信息解决方案
3. 联系团队技术支持FE工程师
4. 提供完整错误日志
---
**最后更新**2026-03-29
**维护者**李建华FE前端工程师
**适用项目**D:\mkdocs 知识库项目