第3章 Systrace工具安装与配置:跨平台实战指南

Systrace这玩意儿,说白了就是系统性能追踪器。但你得先把它请进家门,才能让它干活。这一章,我们就把Windows、macOS、Linux三平台的安装捋一遍,顺便把Android SDK环境也拾掇好。我当年第一次配这环境,愣是在mac上折腾了两个小时——后来发现就是少装了一个platform-tools。

⚠️ 特别提醒:不要跳过Android SDK配置直接装Systrace。我见过有人装完Tools就跑,结果adb都连不上设备。

3.1 整体安装逻辑

Systrace本身不是个独立应用。它藏在Android SDK的platform-tools里。所以整个安装链条其实是:装SDK → 配环境变量 → 验证可用。你想想看,如果SDK都没装对,后面的所有操作都是空中楼阁。

Systrace安装配置核心流程 Systrace(Android SDK内置) Android SDK Platform-Tools macOS 安装 Windows 安装 Linux 安装 环境变量配置(PATH) 验证:systrace --list-tags ✅ 成功:开始抓取Trace ❌ 失败:检查SDK路径 💡 核心原则 SDK版本 ≥ 30, API Level ≥ 28

3.2 Windows下的安装

说起来,Windows反而是最省心的。你只要去官网下个安装包就行。不过要注意:千万别用中文路径。我有个同事C盘用户名是中文,结果SDK管理器直接崩了。

3.2.1 安装步骤

  1. 访问 developer.android.com/studio,下载Command line tools
  2. 解压到 C:\Android\cmdline-tools
  3. 运行 sdkmanager --list 查看可用包
  4. 安装platform-tools和build-tools
💡 我的习惯:我会把SDK根目录设置成 C:\Android\Sdk,然后创建系统环境变量 ANDROID_HOME。

3.2.2 环境变量配置

打开系统环境变量设置,新建:

变量名:ANDROID_HOME
变量值:C:\Android\Sdk

然后在PATH里追加:
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\cmdline-tools\latest\bin

为什么要配两个?platform-tools是给adb用的,cmdline-tools是给sdkmanager用的。我之前只配了platform-tools,结果跑systrace时提示找不到sdkmanager——后来才明白,这俩各管各的。

3.3 macOS下的安装

macOS用户,我个人建议用Homebrew。虽然官网也有手动安装方式,但brew能帮你把依赖全搞定。我在M1芯片上踩过一个坑:默认安装的sdkmanager是x86版本,跑起来奇慢无比。

3.3.1 推荐安装方式

# 先装Homebrew(如果还没装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 然后安装Android SDK
brew install --cask android-sdk

# 手动安装platform-tools
brew install android-platform-tools
⚠️ 注意:macOS如果遇到“无法验证开发者”的弹窗。别慌,去「系统偏好设置 → 安全性与隐私」里点允许就行。我以前因为这个问题,在终端里折腾了半小时,结果发现只是系统拦截了。

3.3.2 环境变量配置(zsh用户)

编辑 ~/.zshrc,加入:

export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools/bin

然后运行 source ~/.zshrc 让配置生效。记得用 adb version 验证一下。

3.4 Linux下的安装

Linux环境其实最接近服务器场景。你想想看,很多CI/CD流水线都在Linux上跑的。我一般用Ubuntu做演示,但CentOS也大同小异。

3.4.1 安装步骤

  1. 下载Command line tools
  2. 解压到 /opt/android-sdk
  3. 用sdkmanager安装必要组件
# 下载(注意版本号可能变化)
wget https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip

# 解压
unzip commandlinetools-linux-*.zip -d /opt/android-sdk

# 安装platform-tools
/opt/android-sdk/cmdline-tools/bin/sdkmanager "platform-tools" "platforms;android-33"

3.4.2 环境变量(bash用户)

编辑 ~/.bashrc,加入:

export ANDROID_HOME=/opt/android-sdk
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
💡 一个小技巧:Linux上如果遇到权限问题,别忘了给SDK目录加可执行权限。我吃过这个亏:明明路径都对,systrace就是报"adb not found"。最后发现是platform-tools目录没有x权限。

3.5 Android SDK关键组件版本要求

Systrace本身对SDK版本有一定要求。特别是Android 12之后的设备,需要较新的platform-tools。下面这个表建议大家收藏一下:

组件名称 最低版本 推荐版本 备注
platform-tools 30.0.0 34.0.5 adb版本直接影响systrace
build-tools 30.0.0 34.0.0 不一定需要,但建议装
platforms android-28 android-34 至少装一个API Level
cmdline-tools 5.0 8.0 新版sdkmanager必须
核心检查逻辑:只要你能在终端跑通 adb devices 和 systrace --list-tags,那环境就算配好了。如果哪个命令报错,按照上面的表逐条排查。

3.6 验证安装是否成功

环境配好后,别急着高兴。先做两步验证:

3.6.1 验证adb连接

adb devices

# 正常输出应该看到:
# List of devices attached
# 设备序列号    device

3.6.2 验证systrace本身

systrace --list-tags

# 你会看到类似这样的列表:
#   am (Activities)
#   am_ur (ActivityManager UserRecent)
#   audio (Audio)
#   bionic (Bionic libc)
#   camera (Camera)
#   ...
⚠️ 常见错误:如果报 systrace: command not found。别慌,去检查PATH环境变量。我曾经检查了三次才发现——原来是我把platform-tools路径拼错了,少写了一个"s"。

嗯,到这里环境就齐活了。你可以放心去抓trace了。记住:环境配不好,后面全白搞。这个道理,干过几年Android的都懂。