常用资料
ADB 基础说明
adb 是 Android Debug Bridge 的缩写,是 Android 开发中最常用的命令行调试工具。开发 Glass3 眼镜端应用时,adb 主要用于确认设备连接、安装 APK、查看日志、重启设备,以及配合 scrcpy 投屏。
配置 ADB 环境
ADB 通常随 Android SDK Platform-Tools 一起安装。你可以通过下面两种方式获取:
- 已安装 Android Studio:在 SDK Manager 中安装 Android SDK Platform-Tools。
- 单独下载:访问 Android 官方 Platform-Tools 下载页:https://developer.android.com/tools/releases/platform-tools
安装后,需要确保命令行可以直接执行 adb:
bash
adb version如果命令行提示找不到 adb,需要将 Platform-Tools 目录加入系统环境变量 PATH。常见目录示例:
bash
# macOS 示例
~/Library/Android/sdk/platform-tools
# Windows 示例
C:\Users\<你的用户名>\AppData\Local\Android\Sdk\platform-tools常用 ADB 命令
| 命令 | 用途 |
|---|---|
adb devices | 查看电脑当前识别到的 Android 设备。 |
adb -s <设备序列号> install app.apk | 向指定设备安装 APK。 |
adb -s <设备序列号> logcat | 查看指定设备日志。 |
adb -s <设备序列号> reboot | 重启指定设备。 |
adb -s <设备序列号> shell | 进入指定设备的命令行环境。 |
当同时连接手机和眼镜时,建议先执行:
bash
adb devices确认设备序列号后,再用 -s <设备序列号> 指定目标设备。例如:
bash
adb -s 190xxxxxxxx install glassdemo.apk如果 adb devices 看不到眼镜设备,请优先检查:
- 是否使用了 Glass3 数据调试线,而不是普通充电线。
- 眼镜和电脑连接是否稳定。
- Android Studio 或系统是否已经安装 Platform-Tools。
- 设备是否处于可被调试识别的状态。
调试与投屏工具:scrcpy
scrcpy 是一个开源的 Android 设备投屏和控制工具。开发 Glass3 眼镜端应用时,建议配合 Glass3 数据调试线 使用,用于把眼镜画面实时投到电脑上,方便确认应用是否安装成功、页面是否正常显示、交互是否生效。
常用用途:
- 查看眼镜端 Demo 或业务 App 的实时画面。
- 辅助排查眼镜端页面、交互、权限弹窗和运行状态。
- 在演示或调试时,将眼镜画面展示到电脑屏幕上。
参考地址:
- GitHub 仓库:https://github.com/Genymobile/scrcpy
- Releases 下载:https://github.com/Genymobile/scrcpy/releases
- 快速开始中的线材说明:先确认线材和投屏工具
使用
scrcpy前,请先确认电脑可以通过adb devices识别到设备。如果眼镜只能充电但无法被 Android Studio 或adb识别,通常需要检查是否使用了 Glass3 数据调试线。
产品手册
灵眸产品使用手册企业版
工具脚本
以下脚本用于辅助投屏、重启和查看眼镜端运行状态。执行脚本前,请先确认 adb devices 可以识别到目标设备。
眼镜端投屏脚本
bash
#!/bin/bash
# scrcpy_auto.sh
# 简化的系统监控脚本
# 颜色定义
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
BOLD='\033[1m'
# 开始时间
START_TIME=$(date +%s)
# 计数器
COUNTER=0
DEVICE=$(adb devices | grep -E '^190[0-9a-zA-Z]+\s+device' | head -1 | awk '{print $1}')
if [ -z "$DEVICE" ]; then
echo -e "${RED}错误: 未找到连接的设备${NC}"
exit 1 # 退出整个脚本
fi
echo -e "${GREEN} 监控设备: $DEVICE${NC} "
echo -e "${YELLOW}${BOLD}======================================="
scrcpy -s $DEVICE手机端投屏脚本
bash
#!/bin/bash
# scrcpy_auto.sh
# 简化的系统监控脚本
# 颜色定义
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
BOLD='\033[1m'
# 开始时间
START_TIME=$(date +%s)
# 计数器
COUNTER=0
DEVICE=$(adb devices \
| grep -Ev '^190[0-9a-zA-Z:]*\s+device' \
| grep 'device$' \
| head -1 \
| awk '{print $1}')
if [ -z "$DEVICE" ]; then
echo -e "${RED}错误: 未找到连接的设备${NC}"
exit 1 # 退出整个脚本
fi
echo -e "${GREEN} 监控设备: $DEVICE${NC} "
echo -e "${YELLOW}${BOLD}======================================="
scrcpy -s $DEVICE眼镜端重启脚本
bash
#!/bin/bash
# scrcpy_auto.sh
# 简化的系统监控脚本
# 颜色定义
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
BOLD='\033[1m'
# 开始时间
START_TIME=$(date +%s)
# 计数器
COUNTER=0
DEVICE=$(adb devices | grep -E '^190[0-9a-zA-Z]+\s+device' | head -1 | awk '{print $1}')
if [ -z "$DEVICE" ]; then
echo -e "${RED}错误: 未找到连接的设备${NC}"
exit 1 # 退出整个脚本
fi
echo -e "${GREEN} 重启设备: $DEVICE${NC} "
echo -e "${YELLOW}${BOLD}======================================="
adb -s $DEVICE reboot眼镜cpu与内存监控脚本
bash
#!/bin/bash
# system_monitor_simple.sh
# 简化的系统监控脚本
# 颜色定义
RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'
BOLD='\033[1m'
# 开始时间
START_TIME=$(date +%s)
# 计数器
COUNTER=0
# 主监控循环
while true; do
# 自动选择190设备,如果没有则选择第一个设备
DEVICE=$(adb devices | grep -E '^190[0-9a-zA-Z]+\s+device' | head -1 | awk '{print $1}')
if [ -z "$DEVICE" ]; then
DEVICE=$(adb devices | grep -E '^[0-9a-zA-Z:]+\s+device' | head -1 | awk '{print $1}')
fi
if [ -z "$DEVICE" ]; then
echo -e "${RED}错误: 未找到连接的设备${NC}"
exit 1 # 退出整个脚本
fi
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
COUNTER=$((COUNTER + 1))
# 计算运行时长
CURRENT_TIME=$(date +%s)
ELAPSED_TIME=$((CURRENT_TIME - START_TIME))
# 转换为时分秒
HOURS=$((ELAPSED_TIME / 3600))
MINUTES=$(((ELAPSED_TIME % 3600) / 60))
SECONDS=$((ELAPSED_TIME % 60))
# 1. 获取CPU温度
CPU_TEMP_RAW=$(adb -s "$DEVICE" shell "cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null || echo '0'")
CPU_TEMP=$((CPU_TEMP_RAW / 1000))
# 2. 获取内存信息
MEM_DATA=$(adb -s "$DEVICE" shell "
mem_total=\$(grep MemTotal /proc/meminfo | awk '{print \$2}');
mem_avail=\$(grep MemAvailable /proc/meminfo | awk '{print \$2}');
if [ -n \"\$mem_total\" ] && [ -n \"\$mem_avail\" ]; then
mem_usage=\$((100 - (mem_avail * 100 / mem_total)));
echo \"\$(echo \"scale=1; \$mem_total/1024\" | bc) \$(echo \"scale=1; \$mem_avail/1024\" | bc) \$mem_usage\";
else
echo \"0 0 0\";
fi
")
# 解析内存数据
read MEM_TOTAL_MB MEM_AVAIL_MB MEM_USAGE <<<"$MEM_DATA"
# 3. 获取CPU频率
CPU_FREQ=$(adb -s "$DEVICE" shell "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 2>/dev/null || echo '0'")
CPU_FREQ_MHZ=$((CPU_FREQ / 1000))
# 确定颜色
if [ $CPU_TEMP -ge 70 ]; then
TEMP_COLOR=$RED
TEMP_STATUS="[危险]"
elif [ $CPU_TEMP -ge 60 ]; then
TEMP_COLOR=$RED
TEMP_STATUS="[高温]"
elif [ $CPU_TEMP -ge 50 ]; then
TEMP_COLOR=$YELLOW
TEMP_STATUS="[中温]"
else
TEMP_COLOR=$GREEN
TEMP_STATUS="[正常]"
fi
if [ $(echo "$MEM_USAGE >= 90" | bc) -eq 1 ]; then
MEM_COLOR=$RED
MEM_STATUS="[危险]"
elif [ $(echo "$MEM_USAGE >= 80" | bc) -eq 1 ]; then
MEM_COLOR=$RED
MEM_STATUS="[高负载]"
elif [ $(echo "$MEM_USAGE >= 60" | bc) -eq 1 ]; then
MEM_COLOR=$YELLOW
MEM_STATUS="[中负载]"
else
MEM_COLOR=$GREEN
MEM_STATUS="[正常]"
fi
echo -e "${PURPLE}${BOLD}======================================="
echo -e "${PURPLE}${BOLD} 系统监控 (${TIMESTAMP}) "
echo -e "${GREEN} 监控设备: $DEVICE${NC} "
echo -e "${GREEN} 第${COUNTER} 次检查 ${HOURS}小时${MINUTES}分钟${SECONDS}秒"
echo -e "${PURPLE}${BOLD}======================================="
echo ""
# CPU信息
echo -e "${CYAN}${BOLD}[CPU信息]${NC}"
echo -e " 频率: ${GREEN}${CPU_FREQ_MHZ} MHz${NC}"
echo -e " 温度: ${TEMP_COLOR}${CPU_TEMP}°C ${TEMP_STATUS}${NC}"
echo ""
# 内存信息
echo -e "${CYAN}${BOLD}[内存信息]${NC}"
echo -e " 使用率: ${MEM_COLOR}${MEM_USAGE}% ${MEM_STATUS}${NC}"
echo -e " 可用内存: ${GREEN}${MEM_AVAIL_MB} MB${NC} 总内存: ${BLUE}${MEM_TOTAL_MB} MB${NC}"
echo ""
echo -e "${YELLOW}按 Ctrl+C 停止监控${NC}"
echo ""
sleep 1
done