☰
安卓framework学习2:Ubuntu安装trae——软件包与目录系统全解析
2026/9/26 3:44:37 网站建设 项目流程

1. 安卓 framework 学习环境搭建:Ubuntu 安装 trae 到底在装什么

如果你正在学安卓 framework,大概率会遇到一个绕不开的环节:在 Ubuntu 上装 trae,然后拿它去读 AOSP 源码、跳转调用链、追 SystemServer 启动流程。但很多人卡住的地方不是 trae 本身,而是 Ubuntu 的软件包机制和目录系统没搞明白——.deb和.rpm有什么区别、/usr和/opt到底谁放程序、为什么apt install ./xxx.deb有时候报依赖错。这篇就按我自己的实操路径,把 Ubuntu 安装 trae 的完整流程拆开:从软件包依赖、目录树结构,到可复制的 apt 命令、trae 目录清单、验证安装成功的检查动作,最后再补一段 framework 编译环境验证。目标很明确:让你在 Ubuntu 上把 trae 装好,并且知道它每个文件落在哪,后面读 framework 源码时心里有底。

先说 trae 是什么、能做什么、适合谁。trae 是一个面向开发者的代码编辑与阅读工具,在安卓 framework 学习场景里,它主要用来打开 AOSP 这种超大工程、做符号跳转、看 Java/C++ 跨层调用。适合谁?适合已经装好 Ubuntu 虚拟机或双系统、准备啃frameworks/base的 framework 初学者。不适合谁?如果你只是想写个 Hello World,用系统自带编辑器就够了,没必要折腾 trae。

我试过在 Ubuntu 22.04 上从零装一遍,中间踩过 Python 命令缺失、libncurses5 找不到、JDK 版本冲突这几个坑,下面会逐个给解法。整篇的操作你都可以直接复制,命令我都标了语言和参数含义。

2. 前置准备:Ubuntu 软件包体系与 trae 安装包选择

在装 trae 之前,得先搞清楚 Ubuntu 的软件包格式。Linux 里常见的两种包:

.deb:全称 Debian 软件包,用于 Debian、Ubuntu 及其衍生版,用dpkg或apt安装。.rpm:全称 Red Hat 软件包,用于 Red Hat、CentOS、Fedora、openSUSE 等发行版,用rpm或dnf安装。

你在 Ubuntu 上装 trae,要下的是.deb包,比如Trae_CN-linux-x64.deb。这里有个关键点:apt install ./xxx.deb和dpkg -i xxx.deb的区别。dpkg只装包、不解决依赖,缺依赖就报错;apt install ./xxx.deb会自动去仓库拉依赖。所以推荐用apt,省得手动补库。

Ubuntu 的目录系统也得先建立概念,不然 trae 装完你都不知道文件去哪了。Linux 目录树大致是这样:

/ ├── home/ # 用户家目录 │ ├── test/ # 用户 test 的家 │ └── zhangsan/ # 用户 zhangsan 的家 ├── etc/ # 系统配置 ├── usr/ # 用户程序 ├── var/ # 变化的数据 ├── tmp/ # 临时文件 ├── mnt/ # 挂载目录 └── root/ # root 用户的家

和 Windows 对比一下更直观:

概念WindowsLinux
根目录C:\、D:\/
用户文件C:\Users\用户名\/home/用户名/
系统配置注册表 + C:\Windows/etc
程序文件C:\Program Files/usr/bin、/opt
临时文件C:\Windows\Temp/tmp
驱动器C:、D:、E:挂载到 / 下的目录

常用命令先过一遍,后面每一步都会用到:

pwd # 显示当前目录 ls / # 查看根目录 cd ~ # 进入家目录 ls -a # 显示隐藏文件

提示:Ubuntu 里没有 C 盘 D 盘的概念,所有存储设备都挂载到/下的某个目录,比如 U 盘常挂在/media/用户名/下。理解这一点,后面配共享文件夹就不会晕。

3. 可复制配置:Ubuntu 安装 trae 的完整命令流程

3.1 更新源并安装基础依赖

先更新软件源,把系统升到最新,避免依赖版本太旧:

sudo apt update sudo apt upgrade -y

然后装 trae 运行可能需要的库。这里提前把常见的坑补上:

sudo apt install -y libncurses5 openjdk-11-jdk

libncurses5是很多终端类工具依赖的库,缺了会报error while loading shared libraries。openjdk-11-jdk是后面编译 framework 要用的,先装上。

3.2 下载并安装 trae 的 .deb 包

假设你已经把Trae_CN-linux-x64.deb下到了~/下载目录(中文系统默认下载目录就是「下载」):

cd ~/下载 sudo apt install ./Trae_CN-linux-x64.deb

注意./不能省,它告诉 apt 这是本地文件而不是仓库包名。装完后启动:

trae-cn

如果命令找不到,说明可执行文件没进 PATH,可以用绝对路径启动,或者检查/usr/bin下有没有软链。

3.3 解决 Python 命令缺失

Ubuntu 22.04 默认只有python3,没有python。有些构建脚本会直接调python,会报python: command not found。建个软链:

sudo ln -s /usr/bin/python3 /usr/bin/python

验证:

python --version

应该输出Python 3.x.x。

3.4 挂载共享文件夹并设置开机自启

如果你在 VMware 里跑 Ubuntu,想把 Windows 下的 AOSP 源码或 trae 安装包共享进来,需要装 VMware Tools 的开源版本:

sudo apt install -y open-vm-tools open-vm-tools-desktop vmware-hgfsclient # 检查共享文件夹名 sudo mkdir -p /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000

uid=1000和gid=1000是让挂载目录归属当前用户,不然你只能读不能写。验证:

ls /mnt/hgfs

能看到共享的文件夹名就成功了。要开机自动挂载,编辑/etc/fstab,加一行:

.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other,uid=1000,gid=1000 0 0

然后:

sudo mount -a ls /mnt/hgfs

mount -a会重新读 fstab,没报错就说明配置对了。

3.5 从 Ubuntu 18.04 升级到 22.04(可选)

如果你手上的虚拟机还是 18.04,trae 的新版本可能装不上,建议升级。先拍快照备份,然后:

sudo apt update && sudo apt upgrade -y sudo apt dist-upgrade -y sudo do-release-upgrade

这一步会升到 20.04,再执行一次sudo do-release-upgrade升到 22.04。验证:

lsb_release -a

看到Ubuntu 22.04就对了。

4. 验证请求与成功结果:trae 目录树与 framework 编译环境检查

4.1 trae 安装后的目录清单

装完 trae 后,它的文件主要落在这几个位置,你可以用dpkg -L查完整清单:

dpkg -L trae-cn | head -50

典型目录分布:

路径内容
/usr/bin/trae-cn启动脚本软链
/usr/share/trae-cn/主程序与资源文件
/usr/share/applications/桌面快捷方式 .desktop
/usr/share/icons/图标资源
~/.config/trae-cn/用户配置与插件
~/.cache/trae-cn/缓存数据

~/.config/trae-cn/是你后面调主题、装插件的地方,出问题想重置配置,删这个目录就行。

4.2 验证 trae 能正常启动

trae-cn --version

能输出版本号说明可执行文件正常。再直接启动图形界面:

trae-cn

窗口能打开、能新建文件、能打开一个 Java 文件做跳转,就算装好了。

4.3 验证 framework 编译环境

trae 装好只是第一步,framework 学习最终要能编译 AOSP。进入源码目录:

cd ~/aosp/RK3566_Android_Source_Code/RK356X_Android11 source build/envsetup.sh lunch 51 # 选择 rk3566_r-userdebug make sepolicy -j4

source build/envsetup.sh是加载编译环境变量,lunch 51选目标产品,make sepolicy -j4用 4 线程编译 sepolicy 模块。编译成功不报错,说明 JDK、Python、依赖库都配齐了。

4.4 连接设备调试

如果你要连真机或开发板:

adb devices # 列出连接的 Android 设备 lsusb # 检查 USB 设备是否被识别 adb shell # 进入设备命令行 adb root # 以 root 权限重启 ADB 守护进程 adb remount # 将系统分区挂载为可读写 adb push example.txt /system/ # 推送文件到系统目录

adb root和adb remount在 userdebug 版本上才能用,user 版本会提示权限不足,这是正常的。

5. 本篇常见错排查

5.1 apt install ./xxx.deb 报依赖错误

报错类似dependency problems prevent configuration。先修复依赖:

sudo apt --fix-broken install

再重新装。如果还不行,用dpkg -i装完再补依赖:

sudo dpkg -i Trae_CN-linux-x64.deb sudo apt install -f

5.2 trae-cn: command not found

说明/usr/bin/trae-cn软链没建好。查一下实际可执行文件位置:

dpkg -L trae-cn | grep bin

然后手动建软链:

sudo ln -s /usr/share/trae-cn/trae-cn /usr/bin/trae-cn

5.3 缺少 libncurses5

报错error while loading shared libraries: libncurses.so.5。Ubuntu 22.04 默认是 libncurses6,需要单独装 5:

sudo apt install libncurses5

如果仓库里没有,可以装libncurses5-dev或从旧版本源找,但优先用官方源。

5.4 JDK 版本冲突

编译 framework 时如果报Unsupported class file major version,说明 JDK 版本不对。AOSP Android 11 一般要 JDK 11:

sudo apt install openjdk-11-jdk sudo update-alternatives --config java

在交互界面里选 JDK 11 对应的编号。

5.5 共享文件夹挂载后无权限

ls /mnt/hgfs能看到目录但进不去,是 uid/gid 没设对。重新挂载:

sudo umount /mnt/hgfs sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000

确认当前用户 uid:

id -u

输出 1000 就用 1000,不是的话换成实际值。

6. 装完 trae 之后:把 framework 学习链路接起来

trae 装好、目录结构清楚、编译环境验证通过,接下来就是真正读代码了。我的习惯是先用 trae 打开frameworks/base/services/java/com/android/server/SystemServer.java,从main方法一路跳转,看系统服务怎么起来的。这时候 trae 的符号索引能力就体现出来了,比 grep 快很多。

如果你后面要长期在 framework 里做编码和 Agent 辅助开发,可以了解下 Coding Plan 这类方案,把模型能力接进日常编码流程:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite

需要管理接入用的密钥,在控制台创建:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite

想直接验证模型对话效果,用这个入口:https://taotoken.net/model-chat?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite

API 接入地址统一用:https://taotoken.net/api

装 trae 这件事本身不难,难的是理解 Ubuntu 的包管理和目录逻辑。把.deb依赖、/usr与/opt的分工、fstab挂载这几块搞明白,后面不管装什么工具都不会再卡住。framework 学习是个长跑,环境搭稳了,后面读源码才顺。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询