鏇存柊鏂囨。

This commit is contained in:
renjianbo
2026-01-13 11:12:42 +08:00
parent 08e9db55f9
commit 506c2f55b4
28 changed files with 1041 additions and 999 deletions

View File

@@ -0,0 +1,132 @@
## 基本信息
- **日期**: 2026-01-13
- **星期**: 星期二
- **天气**: 晴
- **心情**: 良好
## 今日计划
### 工作安排
- [ ] 从正式环境切换到开发环境
- [ ] 知你--会员功能
- [ ] 任务3
### 学习计划
- [ ] 学习内容1
- [ ] 学习内容2
### 其他计划
- [ ] 其他事项1
## 工作记录
### 已完成
- ✅ 从正式环境切换到开发环境
- 时间: HH:MM - HH:MM
- 内容: http://101.43.95.130:8082/c/zhini_im/+/104
- 收获:
- ✅ 完成事项2
- 时间: HH:MM - HH:MM
- 内容: 详细描述
- 收获:
### 进行中
- 🔄 进行中事项1
- 开始时间: HH:MM
- 当前进度:
- 遇到的问题:
- 下一步计划:
### 待处理
- ⏳ 待处理事项1
- 计划时间: HH:MM
- 优先级: 高/中/低
## 学习记录
### 技术学习
- **学习内容**:
- **学习时间**: HH:MM - HH:MM
- **学习方式**: 阅读/实践/视频
- **关键收获**:
- **相关链接**: [[相关文档]]
### 源码阅读
- **阅读模块**:
- **阅读时间**: HH:MM - HH:MM
- **关键理解**:
- **疑问**:
- **相关链接**: [[相关源码]]
### 问题解决
- **问题描述**:
- **解决过程**:
- **解决方案**:
- **经验总结**:
- **相关链接**: [[相关文档]]
## 会议记录
### 会议1
- **时间**: HH:MM - HH:MM
- **主题**:
- **参与人**:
- **关键内容**:
- **行动项**:
- **相关链接**: [[会议记录]]
## 思考与总结
### 今日收获
1. 收获1
2. 收获2
3. 收获3
### 今日反思
- 做得好的地方:
- 需要改进的地方:
- 改进计划:
### 明日计划
1. 计划1
2. 计划2
3. 计划3
## 技术笔记
### 技术点1
- **内容**:
- **代码示例**:
```java
// 代码示例
```
- **关键理解**:
- **相关链接**: [[相关文档]]
### 技术点2
- **内容**:
- **关键理解**:
## 问题与疑问
### 问题1
- **问题描述**:
- **思考**:
- **待解决**:
### 问题2
- **问题描述**:
- **思考**:
## 相关链接
- [[相关项目]]
- [[相关文档]]
- [[相关笔记]]
## 备注
- 备注1
- 备注2

View File

@@ -1,60 +1,15 @@
gitlab.md.hihonor.com/w00013566/mdmdemo
# 测试账户
18792702169 验证码 1122
1.查看用户 adb shell pm list users
2.adb shell getprop ro.product.model如何使用adb命令查看手机版本号
3.adb shell getprop ro.soc.model查看手机型号
4.fastboot界面查询手机型号 fastboot getvar deicemodel
5.fastboot下重启 fastboot reboot
android 获取当前页面的 activity adb shell "dumpsys window | grep mCurrentFocus"
18792702169
https://getui.com/notification-push
https://www.jiguang.cn/push?source=bdAd&plan=1&unit=480&keyword=24261&bd_vid=6437844800464191042
# 应用签名
C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0
签名会用到下面这个apksigner.bat文件
签名: apksigner sign --ks design.jks app-debug.apk
检验签名apksigner verify -v --print-certs app-debug.apk
apksigner verify -v --print-certs app-release.apk
https://www.pgyer.com/zhini-android
pmo 开发经理,负责协调交付。
规划 对接客户需求
se 需求转化为设计方案
开发 编码开发
测试 编写测试用例,回归验证
cmo 编译版本
一 需求背景
二 功能概述
三 竞品分析
四 设计方案
五 工作量评估
pkill -f "cursor-server"
通过网络连接设备无需USB
adb tcpip 5555 # 将设备切换至TCP/IP模式在5555端口监听[citation:8][citation:10]
adb connect 192.168.1.100:5555 # 在电脑上连接设备IP[citation:8][citation:10]
adb connect 192.168.172.236:5555
知你的签名信息
# 知你的签名信息
C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0>apksigner verify -v --print-certs app-release.apk
Verifies
Verified using v1 scheme (JAR signing): false
@@ -73,6 +28,4 @@ Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: e458cad386b422c6941e0420b611257cb0426c82e719095c3dbd9d9ffb7a90dc
Signer #1 public key SHA-1 digest: d3c0988b1a336e326683db4a258459031491b46a
Signer #1 public key MD5 digest: 8ef05aa185908c1fc19a4bea27427b24
C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0>
C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0>

View File

@@ -1,5 +1,8 @@
curse 网站续费 https://cursor.com/cn/dashboard
pkill -f "cursor-server"
联通大王卡号13022988679
公司电信卡号17392826953 QQ号3145431252 密码renjianbo0118 邮箱3145431252@qq.com 密码renjianbo0118 网易邮箱17392826953@163.com !renjianbo1219

View File

@@ -1,133 +1,133 @@
你的操作指南非常详细和准确!我帮你重新整理了一个更清晰的流程,并修复了流程图的语法:
## 完整操作流程
### **第一步生成SSH密钥在新电脑上**
```bash
# 1. 生成SSH密钥使用ed25519算法更安全
ssh-keygen -t ed25519 -C "renjianbo@example.com"
# 按提示操作:
# - 直接回车使用默认路径 (~/.ssh/id_ed25519)
# - 可以设置密码(可选)
# - 再次确认密码
# 2. 查看公钥并复制
cat ~/.ssh/id_ed25519.pub
```
**输出示例:**
```
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJL...你的公钥内容... renjianbo@example.com
```
### **第二步添加公钥到Gerrit账户**
1. 登录 Gerrit`http://101.43.95.130:8080/`
2. 点击右上角 **renjianbo****Settings** → **SSH Keys**
3. 点击 **Add Key** 按钮
4. 粘贴复制的公钥内容,保存
### **第三步:克隆项目**
#### **方式ASSH协议推荐**
```bash
# 使用你的用户名 renjianbo
git clone ssh://renjianbo@101.43.95.130:29418/zhini_im
```
#### **方式BHTTP协议备用**
```bash
git clone http://101.43.95.130:8080/zhini_im
# 可能需要输入用户名密码
```
### **第四步:验证和配置**
```bash
# 1. 进入项目目录
cd zhini_im
# 2. 查看远程仓库地址
git remote -v
# 应该显示类似origin ssh://renjianbo@101.43.95.130:29418/zhini_im
# 3. 配置用户信息(重要!)
git config user.name "renjianbo"
git config user.email "renjianbo@example.com" # 使用你的Gerrit注册邮箱
# 4. 可选验证SSH连接
ssh -p 29418 renjianbo@101.43.95.130
# 如果看到 Gerrit 欢迎信息,说明连接成功
```
## **操作流程图**
```mermaid
flowchart TD
Start[开始] --> GenKey[生成SSH密钥<br>ssh-keygen]
GenKey --> CopyKey[复制公钥<br>cat ~/.ssh/id_ed25519.pub]
CopyKey --> LoginGerrit[登录Gerrit网页]
LoginGerrit --> AddKey[添加公钥到SSH Keys]
AddKey --> ChooseMethod{选择克隆方式}
ChooseMethod --> SSH[SSH协议<br>git clone ssh://renjianbo@...]
ChooseMethod --> HTTP[HTTP协议<br>git clone http://...]
SSH --> Verify[进入目录验证]
HTTP --> Verify
Verify --> Config[配置用户信息]
Config --> Done[完成]
```
## **常见问题解决**
### **1. SSH连接被拒绝**
```bash
# 测试SSH连接
ssh -p 29418 -T renjianbo@101.43.95.130
# 如果提示"Permission denied",检查:
# - 公钥是否正确添加到Gerrit
# - 用户名是否正确不是admin是renjianbo
# - 是否有仓库访问权限
```
### **2. 首次连接需要确认主机**
```
The authenticity of host '[101.43.95.130]:29418' can't be established.
ECDSA key fingerprint is SHA256:xxx...
Are you sure you want to continue connecting (yes/no/[fingerprint])?
```
**输入:** `yes`
### **3. 端口被阻挡**
- 检查防火墙是否允许29418端口
- 在公司网络可能需要配置代理
### **4. 克隆速度慢**
```bash
# 可以尝试浅克隆(只获取最新版本)
git clone --depth 1 ssh://renjianbo@101.43.95.130:29418/zhini_im
```
## **快捷脚本**
创建一键克隆脚本 `clone_zhini_im.sh`
```bash
#!/bin/bash
# 克隆智拟IM项目
echo "正在克隆智拟IM项目..."
git clone ssh://renjianbo@101.43.95.130:29418/zhini_im
cd zhini_im
git config user.name "renjianbo"
git config user.email "renjianbo@example.com"
echo "克隆完成!"
```
执行:
```bash
chmod +x clone_zhini_im.sh
./clone_zhini_im.sh
```
你的操作指南非常详细和准确!我帮你重新整理了一个更清晰的流程,并修复了流程图的语法:
## 完整操作流程
### **第一步生成SSH密钥在新电脑上**
```bash
# 1. 生成SSH密钥使用ed25519算法更安全
ssh-keygen -t ed25519 -C "renjianbo@example.com"
# 按提示操作:
# - 直接回车使用默认路径 (~/.ssh/id_ed25519)
# - 可以设置密码(可选)
# - 再次确认密码
# 2. 查看公钥并复制
cat ~/.ssh/id_ed25519.pub
```
**输出示例:**
```
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJL...你的公钥内容... renjianbo@example.com
```
### **第二步添加公钥到Gerrit账户**
1. 登录 Gerrit`http://101.43.95.130:8080/`
2. 点击右上角 **renjianbo****Settings** → **SSH Keys**
3. 点击 **Add Key** 按钮
4. 粘贴复制的公钥内容,保存
### **第三步:克隆项目**
#### **方式ASSH协议推荐**
```bash
# 使用你的用户名 renjianbo
git clone ssh://renjianbo@101.43.95.130:29418/zhini_im
```
#### **方式BHTTP协议备用**
```bash
git clone http://101.43.95.130:8080/zhini_im
# 可能需要输入用户名密码
```
### **第四步:验证和配置**
```bash
# 1. 进入项目目录
cd zhini_im
# 2. 查看远程仓库地址
git remote -v
# 应该显示类似origin ssh://renjianbo@101.43.95.130:29418/zhini_im
# 3. 配置用户信息(重要!)
git config user.name "renjianbo"
git config user.email "renjianbo@example.com" # 使用你的Gerrit注册邮箱
# 4. 可选验证SSH连接
ssh -p 29418 renjianbo@101.43.95.130
# 如果看到 Gerrit 欢迎信息,说明连接成功
```
## **操作流程图**
```mermaid
flowchart TD
Start[开始] --> GenKey[生成SSH密钥<br>ssh-keygen]
GenKey --> CopyKey[复制公钥<br>cat ~/.ssh/id_ed25519.pub]
CopyKey --> LoginGerrit[登录Gerrit网页]
LoginGerrit --> AddKey[添加公钥到SSH Keys]
AddKey --> ChooseMethod{选择克隆方式}
ChooseMethod --> SSH[SSH协议<br>git clone ssh://renjianbo@...]
ChooseMethod --> HTTP[HTTP协议<br>git clone http://...]
SSH --> Verify[进入目录验证]
HTTP --> Verify
Verify --> Config[配置用户信息]
Config --> Done[完成]
```
## **常见问题解决**
### **1. SSH连接被拒绝**
```bash
# 测试SSH连接
ssh -p 29418 -T renjianbo@101.43.95.130
# 如果提示"Permission denied",检查:
# - 公钥是否正确添加到Gerrit
# - 用户名是否正确不是admin是renjianbo
# - 是否有仓库访问权限
```
### **2. 首次连接需要确认主机**
```
The authenticity of host '[101.43.95.130]:29418' can't be established.
ECDSA key fingerprint is SHA256:xxx...
Are you sure you want to continue connecting (yes/no/[fingerprint])?
```
**输入:** `yes`
### **3. 端口被阻挡**
- 检查防火墙是否允许29418端口
- 在公司网络可能需要配置代理
### **4. 克隆速度慢**
```bash
# 可以尝试浅克隆(只获取最新版本)
git clone --depth 1 ssh://renjianbo@101.43.95.130:29418/zhini_im
```
## **快捷脚本**
创建一键克隆脚本 `clone_zhini_im.sh`
```bash
#!/bin/bash
# 克隆智拟IM项目
echo "正在克隆智拟IM项目..."
git clone ssh://renjianbo@101.43.95.130:29418/zhini_im
cd zhini_im
git config user.name "renjianbo"
git config user.email "renjianbo@example.com"
echo "克隆完成!"
```
执行:
```bash
chmod +x clone_zhini_im.sh
./clone_zhini_im.sh
```
按照这个流程操作,你应该能成功将项目拉到新电脑。如果遇到具体错误,可以把错误信息发给我,我会帮你诊断解决。

View File

@@ -1,276 +1,276 @@
非常全面的同步远程分支指南!我来帮你整理几个最实用的方案,并提供更清晰的分类:
## 📋 **最常用的分支同步方案**
### **方案一:基础同步(最常用)**
```bash
# 1. 获取所有远程更新并清理已删除分支
git fetch --all --prune
# 2. 查看所有分支
git branch -a
# 3. 切换到特定分支并同步
git checkout 分支名
git pull origin 分支名
```
### **方案二:一键同步所有分支到本地**
```bash
# 推荐的安全版本
git fetch --all --prune
for branch in $(git branch -r | grep -v '\->' | grep -v 'HEAD'); do
local_branch=${branch#origin/}
if ! git show-ref --quiet refs/heads/"$local_branch"; then
echo "📦 创建分支: $local_branch"
git branch --track "$local_branch" "$branch"
fi
done
```
## 🔧 **实用脚本整理**
### **脚本1智能同步脚本 (sync-branches.sh)**
```bash
#!/bin/bash
# 智能同步所有远程分支
echo "🔄 开始同步分支..."
# 1. 获取所有远程更新
git fetch --all --prune
# 2. 同步主要分支
main_branch=""
if git show-ref --verify --quiet refs/remotes/origin/main; then
main_branch="main"
elif git show-ref --verify --quiet refs/remotes/origin/master; then
main_branch="master"
fi
if [ -n "$main_branch" ]; then
echo "📌 更新主分支: $main_branch"
git checkout $main_branch 2>/dev/null || git checkout -b $main_branch origin/$main_branch
git pull origin $main_branch
fi
# 3. 创建本地不存在的远程分支
echo "📦 同步其他分支..."
git branch -r | grep -v '\->' | grep -v 'HEAD' | while read remote; do
local_branch=${remote#origin/}
# 跳过已经存在的分支
if git show-ref --verify --quiet refs/heads/"$local_branch"; then
echo " ✓ 已存在: $local_branch"
continue
fi
# 创建跟踪分支
echo " 创建: $local_branch"
git branch --track "$local_branch" "$remote" 2>/dev/null
done
# 4. 检查是否需要更新现有分支
echo "🔄 检查本地分支更新..."
current_branch=$(git branch --show-current)
git branch --format='%(refname:short)' | while read branch; do
if [ "$branch" != "$current_branch" ]; then
git checkout "$branch" >/dev/null 2>&1
if [ $? -eq 0 ]; then
git pull origin "$branch" --ff-only >/dev/null 2>&1
echo " ⬆️ 已更新: $branch"
fi
fi
done
# 5. 返回原分支
git checkout "$current_branch" >/dev/null 2>&1
echo "✅ 同步完成!"
echo "📊 分支统计:"
git branch -a | grep -c "remotes/origin" | xargs echo "远程分支数: "
git branch | wc -l | xargs echo "本地分支数: "
```
### **脚本2快速切换和同步 (git-sync)**
```bash
#!/bin/bash
# 快速切换到指定分支并同步
if [ $# -eq 0 ]; then
echo "用法: git-sync 分支名"
exit 1
fi
BRANCH=$1
echo "🔄 切换到分支: $BRANCH"
# 检查分支是否存在
if git show-ref --verify --quiet refs/heads/"$BRANCH"; then
# 本地分支存在
git checkout "$BRANCH"
git pull origin "$BRANCH"
elif git show-ref --verify --quiet refs/remotes/origin/"$BRANCH"; then
# 远程分支存在,创建本地跟踪分支
git checkout -b "$BRANCH" origin/"$BRANCH"
else
echo "❌ 错误: 分支 $BRANCH 不存在"
echo "可用的远程分支:"
git branch -r | grep -v '\->' | sed 's/origin\///' | sort | uniq
exit 1
fi
echo "✅ 完成!当前分支: $(git branch --show-current)"
```
## ⚙️ **Git 配置别名(推荐)**
添加到 `~/.gitconfig``[alias]` 部分:
```ini
[alias]
# 同步所有分支
sync-all = "!f() { \
echo '🔄 获取远程更新...'; \
git fetch --all --prune; \
echo '📦 创建本地分支...'; \
git branch -r | grep -v '\\->' | grep -v 'HEAD' | while read remote; do \
local=${remote#origin/}; \
if ! git show-ref --quiet refs/heads/\"$local\"; then \
echo \" $local\"; \
git branch --track \"$local\" \"$remote\" 2>/dev/null; \
fi; \
done; \
echo '✅ 同步完成!'; \
}; f"
# 更新当前仓库所有分支
update-all = "!f() { \
current=$(git branch --show-current); \
for branch in $(git branch --format='%(refname:short)'); do \
if [ \"$branch\" != \"$current\" ]; then \
git checkout \"$branch\" 2>/dev/null && git pull origin \"$branch\" 2>/dev/null; \
fi; \
done; \
git checkout \"$current\"; \
echo '✅ 所有分支已更新!'; \
}; f"
# 查看分支树状图
tree = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
# 清理已合并的分支
clean-branches = "!f() { \
git fetch --all --prune; \
git branch --merged main | grep -v '^\\* main$' | xargs -n 1 git branch -d; \
echo '🧹 已清理合并到main的分支'; \
}; f"
```
使用别名:
```bash
git sync-all # 同步所有远程分支到本地
git update-all # 更新所有本地分支
git tree # 查看分支树状图
git clean-branches # 清理已合并的分支
```
## 🎯 **针对不同场景的推荐方案**
### **场景1新电脑初次同步**
```bash
# 1. 克隆仓库
git clone ssh://renjianbo@101.43.95.130:29418/zhini_im
# 2. 进入目录并同步所有分支
cd zhini_im
git sync-all # 使用上面配置的别名
```
### **场景2日常更新**
```bash
# 推荐的工作流程
git status # 1. 查看状态
git stash # 2. 暂存未提交的修改(可选)
git fetch --all --prune # 3. 获取最新状态
git checkout main # 4. 切换到主分支
git pull --rebase origin main # 5. 更新主分支
git checkout 你的分支 # 6. 切回你的分支
git rebase main # 7. 基于最新main重定基
git stash pop # 8. 恢复暂存的修改
```
### **场景3清理分支**
```bash
# 查看哪些分支已经合并到main
git branch --merged main
# 删除已合并的分支除了当前分支和main
git branch --merged main | grep -v "main" | xargs git branch -d
# 强制删除未合并的分支
git branch -D 分支名
# 删除远程分支(谨慎操作)
git push origin --delete 分支名
```
## 📊 **分支管理最佳实践**
### **分支命名规范**
```
feature/ # 新功能
bugfix/ # 修复bug
hotfix/ # 紧急修复
release/ # 发布分支
```
### **常用命令速查**
```bash
# 查看分支关系
git log --graph --oneline --all
# 查看远程分支的最后提交
git for-each-ref --sort=-committerdate refs/remotes/origin/ --format='%(refname:short) - %(committerdate:short)'
# 查看分支差异
git diff main..你的分支 # 比较差异
git log main..你的分支 # 查看提交记录差异
# 重命名分支
git branch -m 旧名字 新名字 # 本地重命名
git push origin :旧名字 # 删除远程旧分支
git push origin 新名字 # 推送新分支
git push origin -u 新名字 # 设置上游分支
```
## 🚨 **注意事项**
1. **备份重要修改**:同步前先提交或暂存工作
2. **小心 force push**:避免使用 `--force`,用 `--force-with-lease` 更安全
3. **定期清理**:删除已合并的本地分支,保持仓库整洁
4. **沟通协调**:多人协作时,删除远程分支前要确认
## 🎪 **一个命令完成所有同步**
终极简化版:
```bash
# 创建 ~/bin/git-full-sync 文件
#!/bin/bash
cd /path/to/your/project
git stash
git fetch --all --prune
git checkout main && git pull origin main
git sync-all # 使用别名
git stash pop
echo "✅ 全量同步完成!"
# 添加执行权限
chmod +x ~/bin/git-full-sync
# 使用
cd 你的项目
git-full-sync
```
非常全面的同步远程分支指南!我来帮你整理几个最实用的方案,并提供更清晰的分类:
## 📋 **最常用的分支同步方案**
### **方案一:基础同步(最常用)**
```bash
# 1. 获取所有远程更新并清理已删除分支
git fetch --all --prune
# 2. 查看所有分支
git branch -a
# 3. 切换到特定分支并同步
git checkout 分支名
git pull origin 分支名
```
### **方案二:一键同步所有分支到本地**
```bash
# 推荐的安全版本
git fetch --all --prune
for branch in $(git branch -r | grep -v '\->' | grep -v 'HEAD'); do
local_branch=${branch#origin/}
if ! git show-ref --quiet refs/heads/"$local_branch"; then
echo "📦 创建分支: $local_branch"
git branch --track "$local_branch" "$branch"
fi
done
```
## 🔧 **实用脚本整理**
### **脚本1智能同步脚本 (sync-branches.sh)**
```bash
#!/bin/bash
# 智能同步所有远程分支
echo "🔄 开始同步分支..."
# 1. 获取所有远程更新
git fetch --all --prune
# 2. 同步主要分支
main_branch=""
if git show-ref --verify --quiet refs/remotes/origin/main; then
main_branch="main"
elif git show-ref --verify --quiet refs/remotes/origin/master; then
main_branch="master"
fi
if [ -n "$main_branch" ]; then
echo "📌 更新主分支: $main_branch"
git checkout $main_branch 2>/dev/null || git checkout -b $main_branch origin/$main_branch
git pull origin $main_branch
fi
# 3. 创建本地不存在的远程分支
echo "📦 同步其他分支..."
git branch -r | grep -v '\->' | grep -v 'HEAD' | while read remote; do
local_branch=${remote#origin/}
# 跳过已经存在的分支
if git show-ref --verify --quiet refs/heads/"$local_branch"; then
echo " ✓ 已存在: $local_branch"
continue
fi
# 创建跟踪分支
echo " 创建: $local_branch"
git branch --track "$local_branch" "$remote" 2>/dev/null
done
# 4. 检查是否需要更新现有分支
echo "🔄 检查本地分支更新..."
current_branch=$(git branch --show-current)
git branch --format='%(refname:short)' | while read branch; do
if [ "$branch" != "$current_branch" ]; then
git checkout "$branch" >/dev/null 2>&1
if [ $? -eq 0 ]; then
git pull origin "$branch" --ff-only >/dev/null 2>&1
echo " ⬆️ 已更新: $branch"
fi
fi
done
# 5. 返回原分支
git checkout "$current_branch" >/dev/null 2>&1
echo "✅ 同步完成!"
echo "📊 分支统计:"
git branch -a | grep -c "remotes/origin" | xargs echo "远程分支数: "
git branch | wc -l | xargs echo "本地分支数: "
```
### **脚本2快速切换和同步 (git-sync)**
```bash
#!/bin/bash
# 快速切换到指定分支并同步
if [ $# -eq 0 ]; then
echo "用法: git-sync 分支名"
exit 1
fi
BRANCH=$1
echo "🔄 切换到分支: $BRANCH"
# 检查分支是否存在
if git show-ref --verify --quiet refs/heads/"$BRANCH"; then
# 本地分支存在
git checkout "$BRANCH"
git pull origin "$BRANCH"
elif git show-ref --verify --quiet refs/remotes/origin/"$BRANCH"; then
# 远程分支存在,创建本地跟踪分支
git checkout -b "$BRANCH" origin/"$BRANCH"
else
echo "❌ 错误: 分支 $BRANCH 不存在"
echo "可用的远程分支:"
git branch -r | grep -v '\->' | sed 's/origin\///' | sort | uniq
exit 1
fi
echo "✅ 完成!当前分支: $(git branch --show-current)"
```
## ⚙️ **Git 配置别名(推荐)**
添加到 `~/.gitconfig``[alias]` 部分:
```ini
[alias]
# 同步所有分支
sync-all = "!f() { \
echo '🔄 获取远程更新...'; \
git fetch --all --prune; \
echo '📦 创建本地分支...'; \
git branch -r | grep -v '\\->' | grep -v 'HEAD' | while read remote; do \
local=${remote#origin/}; \
if ! git show-ref --quiet refs/heads/\"$local\"; then \
echo \" $local\"; \
git branch --track \"$local\" \"$remote\" 2>/dev/null; \
fi; \
done; \
echo '✅ 同步完成!'; \
}; f"
# 更新当前仓库所有分支
update-all = "!f() { \
current=$(git branch --show-current); \
for branch in $(git branch --format='%(refname:short)'); do \
if [ \"$branch\" != \"$current\" ]; then \
git checkout \"$branch\" 2>/dev/null && git pull origin \"$branch\" 2>/dev/null; \
fi; \
done; \
git checkout \"$current\"; \
echo '✅ 所有分支已更新!'; \
}; f"
# 查看分支树状图
tree = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
# 清理已合并的分支
clean-branches = "!f() { \
git fetch --all --prune; \
git branch --merged main | grep -v '^\\* main$' | xargs -n 1 git branch -d; \
echo '🧹 已清理合并到main的分支'; \
}; f"
```
使用别名:
```bash
git sync-all # 同步所有远程分支到本地
git update-all # 更新所有本地分支
git tree # 查看分支树状图
git clean-branches # 清理已合并的分支
```
## 🎯 **针对不同场景的推荐方案**
### **场景1新电脑初次同步**
```bash
# 1. 克隆仓库
git clone ssh://renjianbo@101.43.95.130:29418/zhini_im
# 2. 进入目录并同步所有分支
cd zhini_im
git sync-all # 使用上面配置的别名
```
### **场景2日常更新**
```bash
# 推荐的工作流程
git status # 1. 查看状态
git stash # 2. 暂存未提交的修改(可选)
git fetch --all --prune # 3. 获取最新状态
git checkout main # 4. 切换到主分支
git pull --rebase origin main # 5. 更新主分支
git checkout 你的分支 # 6. 切回你的分支
git rebase main # 7. 基于最新main重定基
git stash pop # 8. 恢复暂存的修改
```
### **场景3清理分支**
```bash
# 查看哪些分支已经合并到main
git branch --merged main
# 删除已合并的分支除了当前分支和main
git branch --merged main | grep -v "main" | xargs git branch -d
# 强制删除未合并的分支
git branch -D 分支名
# 删除远程分支(谨慎操作)
git push origin --delete 分支名
```
## 📊 **分支管理最佳实践**
### **分支命名规范**
```
feature/ # 新功能
bugfix/ # 修复bug
hotfix/ # 紧急修复
release/ # 发布分支
```
### **常用命令速查**
```bash
# 查看分支关系
git log --graph --oneline --all
# 查看远程分支的最后提交
git for-each-ref --sort=-committerdate refs/remotes/origin/ --format='%(refname:short) - %(committerdate:short)'
# 查看分支差异
git diff main..你的分支 # 比较差异
git log main..你的分支 # 查看提交记录差异
# 重命名分支
git branch -m 旧名字 新名字 # 本地重命名
git push origin :旧名字 # 删除远程旧分支
git push origin 新名字 # 推送新分支
git push origin -u 新名字 # 设置上游分支
```
## 🚨 **注意事项**
1. **备份重要修改**:同步前先提交或暂存工作
2. **小心 force push**:避免使用 `--force`,用 `--force-with-lease` 更安全
3. **定期清理**:删除已合并的本地分支,保持仓库整洁
4. **沟通协调**:多人协作时,删除远程分支前要确认
## 🎪 **一个命令完成所有同步**
终极简化版:
```bash
# 创建 ~/bin/git-full-sync 文件
#!/bin/bash
cd /path/to/your/project
git stash
git fetch --all --prune
git checkout main && git pull origin main
git sync-all # 使用别名
git stash pop
echo "✅ 全量同步完成!"
# 添加执行权限
chmod +x ~/bin/git-full-sync
# 使用
cd 你的项目
git-full-sync
```
这些方案覆盖了大部分使用场景,根据你的具体需求选择合适的方法即可。最常用的是方案一的基础同步,配合别名可以极大提高效率。

View File

@@ -1,18 +1,18 @@
配置用户名和邮箱(如果还没配置)
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
查看用户名
git config user.name
查看邮箱
git config user.email
查看远程仓库地址
git config remote.origin.url
设置远程仓库地址
git remote set-url origin ssh://renjianbo@101.43.95.130:29419/zhini_im_android
git remote set-url origin ssh://renjianbo@101.43.95.130:29419/zhini_im_android
配置用户名和邮箱(如果还没配置)
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
查看用户名
git config user.name
查看邮箱
git config user.email
查看远程仓库地址
git config remote.origin.url
设置远程仓库地址
git remote set-url origin ssh://renjianbo@101.43.95.130:29419/zhini_im_android
git remote set-url origin ssh://renjianbo@101.43.95.130:29419/zhini_im_android
git remote set-url origin http://101.43.95.130:3001/admin/fuzhu.git

View File

@@ -1 +0,0 @@
hello

View File

@@ -1,68 +1,68 @@
# DevOps 学习笔记
## 概念
### CI/CD
- **CI (Continuous Integration)**: 持续集成
- 自动构建
- 自动测试
- 代码质量检查
- **CD (Continuous Deployment)**: 持续部署
- 自动部署
- 环境管理
- 回滚机制
## 工具链
### 版本控制
- **Git**: 分布式版本控制系统
- **Gerrit**: 代码审查工具
- **Gitea**: Git 服务
### CI/CD
- **Drone**: 基于容器的 CI/CD 平台
- **Jenkins**: 流行的 CI/CD 工具
- **GitLab CI**: GitLab 内置 CI/CD
### 容器化
- **Docker**: 容器化平台
- **Docker Compose**: 多容器编排
- **Kubernetes**: 容器编排平台
### 监控和日志
- **Grafana**: 监控可视化
- **Loki**: 日志聚合
- **Prometheus**: 监控和告警
## 最佳实践
### 代码管理
1. 使用分支策略Git Flow
2. 代码审查Code Review
3. 提交信息规范Conventional Commits
### 自动化
1. 自动化测试
2. 自动化构建
3. 自动化部署
### 监控
1. 应用监控
2. 日志收集
3. 告警机制
## 学习资源
- [DevOps 实践指南](https://www.devops-handbook.com/)
- [Docker 官方文档](https://docs.docker.com/)
- [Kubernetes 官方文档](https://kubernetes.io/docs/)
# DevOps 学习笔记
## 概念
### CI/CD
- **CI (Continuous Integration)**: 持续集成
- 自动构建
- 自动测试
- 代码质量检查
- **CD (Continuous Deployment)**: 持续部署
- 自动部署
- 环境管理
- 回滚机制
## 工具链
### 版本控制
- **Git**: 分布式版本控制系统
- **Gerrit**: 代码审查工具
- **Gitea**: Git 服务
### CI/CD
- **Drone**: 基于容器的 CI/CD 平台
- **Jenkins**: 流行的 CI/CD 工具
- **GitLab CI**: GitLab 内置 CI/CD
### 容器化
- **Docker**: 容器化平台
- **Docker Compose**: 多容器编排
- **Kubernetes**: 容器编排平台
### 监控和日志
- **Grafana**: 监控可视化
- **Loki**: 日志聚合
- **Prometheus**: 监控和告警
## 最佳实践
### 代码管理
1. 使用分支策略Git Flow
2. 代码审查Code Review
3. 提交信息规范Conventional Commits
### 自动化
1. 自动化测试
2. 自动化构建
3. 自动化部署
### 监控
1. 应用监控
2. 日志收集
3. 告警机制
## 学习资源
- [DevOps 实践指南](https://www.devops-handbook.com/)
- [Docker 官方文档](https://docs.docker.com/)
- [Kubernetes 官方文档](https://kubernetes.io/docs/)

View File

@@ -0,0 +1,37 @@
gitlab.md.hihonor.com/w00013566/mdmdemo
1.查看用户 adb shell pm list users
2.adb shell getprop ro.product.model如何使用adb命令查看手机版本号
3.adb shell getprop ro.soc.model查看手机型号
4.fastboot界面查询手机型号 fastboot getvar deicemodel
5.fastboot下重启 fastboot reboot
android 获取当前页面的 activity adb shell "dumpsys window | grep mCurrentFocus"
pmo 开发经理,负责协调交付。
规划 对接客户需求
se 需求转化为设计方案
开发 编码开发
测试 编写测试用例,回归验证
cmo 编译版本
一 需求背景
二 功能概述
三 竞品分析
四 设计方案
五 工作量评估

View File

@@ -1,66 +1,66 @@
Drone+Gerrit进化个人超级DevOps平台
必备(强烈推荐)
Gitea(Git+Wiki+项目管理)
MinIO(构建产物存储/APK仓库)
Nexus(Gradle依赖加速)
可选(增强体验)
Sentry(移动App崩溃监控)
Grafana+Loki(日志监控)
MkDocs(个人知识库)
Drone+Gerrit+全套工具
请为我生成一份完整的一键部署install_all.sh,脚本必须在Linux服务器Ubuntu/Debian/CentOS均可上可直接执行用于自动安装以下组件并确保可用
核心组件
1.Drone CI Server
2.Drone Docker Runner
3.Gerrit(轻量版,自用环境)
4.Gitea(Git托管+Wiki+Issue)
辅助增强组件
5.Nexus(Maven/Gradle依赖缓存)
6.MinIO(APK、构建产物、日志存储)
7、Sentry(APP崩溃收集平台自托管版本)
8.Loki+Promtail+Grafana(日志与监控系统)
9.Android SDK +Gradle缓存用于Drone Runner 构建Android项目
脚本功能要求
自动安装Docker如未安装
自动生成并输出共享DRONE_RPC_SECRET
自动创建所有数据目录(如/var/lib/drone、/opt/android-sdk等
每个组件必须使用Docker容器部署
每个组件的容器必须包含:
自动重启策略
端口映射(合理默认)
数据卷持久化
组件之间自动配置集成:
Drone正确连接Runner
Gerrit 支持Webhook触发Drone
Nexus用于Gradle缓存
MinIO用于Drone构建产物上传
Android SDK自动安装内容
build-tools
platform-tools
platforms(如android-34)
自动接受所有许可证
脚本执行结束时输出信息:
各服务器访问地址
初始账号与密码如Gerrit、Gitea
Drone登录底子好
MinIO密钥
Nexus登录方式
Grafana初始化登录账号
Android SDK与Gradle缓存路径
.drone.yml示例Android 项目构建模板)
脚本要求
必须是完整的Bash脚本保持即可执行
所有命令必须真实可运行
具有容错能力(重复运行不会报错)
不能使用虚构镜像或不存在的命令
输出必须清晰友好
可直接用在个人或者小团队的DevOps\自动化环境
请根据以上要求生成最终的install_all.sh一键部署脚本。
Drone+Gerrit进化个人超级DevOps平台
必备(强烈推荐)
Gitea(Git+Wiki+项目管理)
MinIO(构建产物存储/APK仓库)
Nexus(Gradle依赖加速)
可选(增强体验)
Sentry(移动App崩溃监控)
Grafana+Loki(日志监控)
MkDocs(个人知识库)
Drone+Gerrit+全套工具
请为我生成一份完整的一键部署install_all.sh,脚本必须在Linux服务器Ubuntu/Debian/CentOS均可上可直接执行用于自动安装以下组件并确保可用
核心组件
1.Drone CI Server
2.Drone Docker Runner
3.Gerrit(轻量版,自用环境)
4.Gitea(Git托管+Wiki+Issue)
辅助增强组件
5.Nexus(Maven/Gradle依赖缓存)
6.MinIO(APK、构建产物、日志存储)
7、Sentry(APP崩溃收集平台自托管版本)
8.Loki+Promtail+Grafana(日志与监控系统)
9.Android SDK +Gradle缓存用于Drone Runner 构建Android项目
脚本功能要求
自动安装Docker如未安装
自动生成并输出共享DRONE_RPC_SECRET
自动创建所有数据目录(如/var/lib/drone、/opt/android-sdk等
每个组件必须使用Docker容器部署
每个组件的容器必须包含:
自动重启策略
端口映射(合理默认)
数据卷持久化
组件之间自动配置集成:
Drone正确连接Runner
Gerrit 支持Webhook触发Drone
Nexus用于Gradle缓存
MinIO用于Drone构建产物上传
Android SDK自动安装内容
build-tools
platform-tools
platforms(如android-34)
自动接受所有许可证
脚本执行结束时输出信息:
各服务器访问地址
初始账号与密码如Gerrit、Gitea
Drone登录底子好
MinIO密钥
Nexus登录方式
Grafana初始化登录账号
Android SDK与Gradle缓存路径
.drone.yml示例Android 项目构建模板)
脚本要求
必须是完整的Bash脚本保持即可执行
所有命令必须真实可运行
具有容错能力(重复运行不会报错)
不能使用虚构镜像或不存在的命令
输出必须清晰友好
可直接用在个人或者小团队的DevOps\自动化环境
请根据以上要求生成最终的install_all.sh一键部署脚本。

View File

@@ -1,119 +1,119 @@
# 前端学习笔记
## HTML
### 基本结构
```html
<!DOCTYPE html>
<html>
<head>
<title>页面标题</title>
</head>
<body>
<h1>标题</h1>
<p>段落内容</p>
</body>
</html>
```
## CSS
### 样式定义
```css
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.button {
background-color: #007bff;
color: white;
padding: 10px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
}
```
## JavaScript
### 基础语法
```javascript
// 变量
let name = "JavaScript";
const age = 25;
// 函数
function greet(name) {
return `Hello, ${name}!`;
}
// 箭头函数
const greet = (name) => `Hello, ${name}!`;
// 异步函数
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
return data;
}
```
## 框架和库
### React
```jsx
import React, { useState } from 'react';
function App() {
const [count, setCount] = useState(0);
return (
<div>
<p>计数: {count}</p>
<button onClick={() => setCount(count + 1)}>
增加
</button>
</div>
);
}
```
### Vue
```vue
<template>
<div>
<p>计数: {{ count }}</p>
<button @click="increment">增加</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};
</script>
```
## 学习资源
- [MDN Web 文档](https://developer.mozilla.org/)
- [React 官方文档](https://react.dev/)
- [Vue 官方文档](https://cn.vuejs.org/)
# 前端学习笔记
## HTML
### 基本结构
```html
<!DOCTYPE html>
<html>
<head>
<title>页面标题</title>
</head>
<body>
<h1>标题</h1>
<p>段落内容</p>
</body>
</html>
```
## CSS
### 样式定义
```css
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.button {
background-color: #007bff;
color: white;
padding: 10px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
}
```
## JavaScript
### 基础语法
```javascript
// 变量
let name = "JavaScript";
const age = 25;
// 函数
function greet(name) {
return `Hello, ${name}!`;
}
// 箭头函数
const greet = (name) => `Hello, ${name}!`;
// 异步函数
async function fetchData() {
const response = await fetch('/api/data');
const data = await response.json();
return data;
}
```
## 框架和库
### React
```jsx
import React, { useState } from 'react';
function App() {
const [count, setCount] = useState(0);
return (
<div>
<p>计数: {count}</p>
<button onClick={() => setCount(count + 1)}>
增加
</button>
</div>
);
}
```
### Vue
```vue
<template>
<div>
<p>计数: {{ count }}</p>
<button @click="increment">增加</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};
</script>
```
## 学习资源
- [MDN Web 文档](https://developer.mozilla.org/)
- [React 官方文档](https://react.dev/)
- [Vue 官方文档](https://cn.vuejs.org/)

View File

@@ -1,19 +0,0 @@
# 1. 确保在正确的分支
git branch
# 2. 安装钩子
curl -o .git/hooks/commit-msg http://101.43.95.130:8082/tools/hooks/commit-msg
chmod +x .git/hooks/commit-msg
# 3. 重置到提交前状态(如果需要)
git reset HEAD~1 --soft
git commit -m "你的提交信息"
# 4. 或者修改现有的提交
git commit --amend --no-edit
# 5. 查看提交信息确认
git log -1
# 6. 推送
git push origin HEAD:refs/for/master

View File

@@ -1,132 +1,132 @@
一、代码与项目管理和Gerrit配套最好
1.Git+Gerrit
作用强制Code Review
保证代码质量和可追踪性
避免主干污染
适合:个人、小团队、要求质量的项目
2、GitLab\Gitea\GitHub(代码管理与协作)
对于个人团队:
GitLab自建全功能
Gitea:轻量,非常适合小团队
GitHub私有仓库方便、无需维护
用途:代码托管
Issue、Wiki
CI\CD可用
3、CI\CD(自动构建、自动测试、自动发包)
工具:
JenkinsGitHub Actions
GitLab CI
Drone CI(特别适合小团队,轻量快)
提交后代码自动编译
自动跑单元测试
自动产出APK\IPA
自动上传测试平台(蒲公英、Firebase APP Distribution)
二、文档与知识沉淀工具(避免重复造轮子最关键)
4、Obsidian(强烈推荐)
本地Markdown知识库没有云依赖非常适合个人开发者
写模块文档
写支付\登录模块的复用说明
写踩坑记录
写Gerrit Change链接
写长期可复用的解决方案
你会逐渐形成自己的“开发者知识体系”
5、Notion\飞书文档\Confluence
适合个人+小团队共享知识:
需求文档
接口文档
模块说明
复用组件库
三、自动化重复任务(真正省时间)
6.脚手架\项目模板(Project Template)
比如新建Android应用时你可以准备一个“基础项目模板”
网络模块
日志模块
支付模块
基础UI
项目结构
常用工具类
新项目启动直接复制,一次就省两三天。
7、自动生成代码的工具
四、模块化\组件化适合Android开发者
8、组件库\Library复用
payment-sdk
login-sdk
analytics-sdk
file-sdk
所有项目implementation一行即可用。
这能节省你未来80%重复开发时间。
五、任务管理(保证效率和可控性)
9、看板工具
Jira(偏重,但专业)
飞书多维表格
Trello轻量
GitHub Projects(集成度高)
目的:清晰知道每天\每周做什么
避免遗漏
时间成本更可控
六、团队协作
10、IM+自动通知
飞书机器人推送构建结构
Jenkins推送评审通知
Git提交通知
任务完成自动通知
减少来回沟通时间。
七、质量保证工具
11.SonarQube(代码质量扫描)
适合个人+小团队:
代码规范问题
未使用的变量
潜在bug
安全漏洞
让你能不断改进代码质量,避免踩坑。
12、单元测试+UI自动化
即便你不追求100%覆盖率,有一些基础自动化脚本也能帮你减少重复测试时间。
八、知识+代码AI化效率爆炸提升
13、AI辅助开发
GPT生成代码
GPT总结文档
GPT作为“个人知识库索引”
最推荐给个人\小团队的最好(无废话方案)
Gerrit(代码评审)
CI\CD自动构建、上传apk
Obsidian+Notion(知识管理+文档)
Library模块化复用避免重复造轮子
项目模板(脚手架)
AI辅助开发+总结文档
Trello\飞书看板(任务管理)
个人或小团队提升开发效率,最重要的是:
代码可复用、流程自动化、知识不重复、协作轻量化。
常用adb命令
com.xunpaisoft.social
查看特定应用的进程
adb shell ps | grep com.xunpaisoft.social
android 获取当前页面的 activity adb shell "dumpsys window | grep mCurrentFocus"
18792702169
XZ003311
git config --global user.name "renjianbo"
git config --global user.email "18691577328@qq.com"
ssh-keygen -t ed25519 -C "18691577328@qq.com"
一、代码与项目管理和Gerrit配套最好
1.Git+Gerrit
作用强制Code Review
保证代码质量和可追踪性
避免主干污染
适合:个人、小团队、要求质量的项目
2、GitLab\Gitea\GitHub(代码管理与协作)
对于个人团队:
GitLab自建全功能
Gitea:轻量,非常适合小团队
GitHub私有仓库方便、无需维护
用途:代码托管
Issue、Wiki
CI\CD可用
3、CI\CD(自动构建、自动测试、自动发包)
工具:
JenkinsGitHub Actions
GitLab CI
Drone CI(特别适合小团队,轻量快)
提交后代码自动编译
自动跑单元测试
自动产出APK\IPA
自动上传测试平台(蒲公英、Firebase APP Distribution)
二、文档与知识沉淀工具(避免重复造轮子最关键)
4、Obsidian(强烈推荐)
本地Markdown知识库没有云依赖非常适合个人开发者
写模块文档
写支付\登录模块的复用说明
写踩坑记录
写Gerrit Change链接
写长期可复用的解决方案
你会逐渐形成自己的“开发者知识体系”
5、Notion\飞书文档\Confluence
适合个人+小团队共享知识:
需求文档
接口文档
模块说明
复用组件库
三、自动化重复任务(真正省时间)
6.脚手架\项目模板(Project Template)
比如新建Android应用时你可以准备一个“基础项目模板”
网络模块
日志模块
支付模块
基础UI
项目结构
常用工具类
新项目启动直接复制,一次就省两三天。
7、自动生成代码的工具
四、模块化\组件化适合Android开发者
8、组件库\Library复用
payment-sdk
login-sdk
analytics-sdk
file-sdk
所有项目implementation一行即可用。
这能节省你未来80%重复开发时间。
五、任务管理(保证效率和可控性)
9、看板工具
Jira(偏重,但专业)
飞书多维表格
Trello轻量
GitHub Projects(集成度高)
目的:清晰知道每天\每周做什么
避免遗漏
时间成本更可控
六、团队协作
10、IM+自动通知
飞书机器人推送构建结构
Jenkins推送评审通知
Git提交通知
任务完成自动通知
减少来回沟通时间。
七、质量保证工具
11.SonarQube(代码质量扫描)
适合个人+小团队:
代码规范问题
未使用的变量
潜在bug
安全漏洞
让你能不断改进代码质量,避免踩坑。
12、单元测试+UI自动化
即便你不追求100%覆盖率,有一些基础自动化脚本也能帮你减少重复测试时间。
八、知识+代码AI化效率爆炸提升
13、AI辅助开发
GPT生成代码
GPT总结文档
GPT作为“个人知识库索引”
最推荐给个人\小团队的最好(无废话方案)
Gerrit(代码评审)
CI\CD自动构建、上传apk
Obsidian+Notion(知识管理+文档)
Library模块化复用避免重复造轮子
项目模板(脚手架)
AI辅助开发+总结文档
Trello\飞书看板(任务管理)
个人或小团队提升开发效率,最重要的是:
代码可复用、流程自动化、知识不重复、协作轻量化。
常用adb命令
com.xunpaisoft.social
查看特定应用的进程
adb shell ps | grep com.xunpaisoft.social
android 获取当前页面的 activity adb shell "dumpsys window | grep mCurrentFocus"
18792702169
XZ003311
git config --global user.name "renjianbo"
git config --global user.email "18691577328@qq.com"
ssh-keygen -t ed25519 -C "18691577328@qq.com"

View File

@@ -1,84 +0,0 @@
gitlab.md.hihonor.com/w00013566/mdmdemo
1.查看用户 adb shell pm list users
2.adb shell getprop ro.product.model如何使用adb命令查看手机版本号
3.adb shell getprop ro.soc.model查看手机型号
4.fastboot界面查询手机型号 fastboot getvar deicemodel
5.fastboot下重启 fastboot reboot
android 获取当前页面的 activity adb shell "dumpsys window | grep mCurrentFocus"
18792702169
https://getui.com/notification-push
https://www.jiguang.cn/push?source=bdAd&plan=1&unit=480&keyword=24261&bd_vid=6437844800464191042
C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0
签名会用到下面这个apksigner.bat文件
签名: apksigner sign --ks design.jks app-debug.apk
检验签名apksigner verify -v --print-certs app-debug.apk
apksigner verify -v --print-certs app-release.apk
https://www.pgyer.com/zhini-android
pmo 开发经理,负责协调交付。
规划 对接客户需求
se 需求转化为设计方案
开发 编码开发
测试 编写测试用例,回归验证
cmo 编译版本
一 需求背景
二 功能概述
三 竞品分析
四 设计方案
五 工作量评估
pkill -f "cursor-server"
通过网络连接设备无需USB
adb tcpip 5555 # 将设备切换至TCP/IP模式在5555端口监听[citation:8][citation:10]
adb connect 192.168.1.100:5555 # 在电脑上连接设备IP[citation:8][citation:10]
adb connect 192.168.172.236:5555
知你的签名信息
C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0>apksigner verify -v --print-certs app-release.apk
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Verified using v3.1 scheme (APK Signature Scheme v3.1): false
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
Signer #1 certificate DN: C=86, ST=shaanxi, L=xi'an, O=xunpaisoft.com, OU=xunpaisoft, CN=pai xun
Signer #1 certificate SHA-256 digest: 9017939b7cda5c41482a8baaeae587cd9025525ac30b9644293a1e4bc8f6b825
Signer #1 certificate SHA-1 digest: 89b591ea7a4a9947c13fba0d607ba7d041102cf4
Signer #1 certificate MD5 digest: 10bc581409188dd39ed38bad24353be7
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 2048
Signer #1 public key SHA-256 digest: e458cad386b422c6941e0420b611257cb0426c82e719095c3dbd9d9ffb7a90dc
Signer #1 public key SHA-1 digest: d3c0988b1a336e326683db4a258459031491b46a
Signer #1 public key MD5 digest: 8ef05aa185908c1fc19a4bea27427b24
C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0>
方案名称aaaaa方案CodeFC220000012470029接入端AndroidAPP名称ceshi签名-
包名com.aliqin.mytel包签名47fcc6615485e83b4100433ec9a1d278
移动同步成功联通同步成功电信同步成功