我希望 TraeCode 未来可以打通从“代码”到“真实设备”的最后一公里。

我希望 TraeCode 未来可以打通从“代码”到“真实设备”的最后一公里。


介绍自己

我是一名后端开发,平时也会折腾一些 iOS、Android 和跨平台应用。

同时,我还是一名 16GB 内存 MacBook Pro 用户

这句话为什么要单独说出来?

因为做移动端开发的时候,我经常感觉自己不是在开发 App,而是在进行一场:

“谁先把我的内存吃完”的生存竞赛。

TraeCode 要跑。

IDE 要跑。

浏览器几十个标签页舍不得关。

有时候后端服务、数据库、Docker 也在后台默默活着。

这时候如果再打开一个模拟器,活动监视器里的内存压力就开始逐渐变得喜庆。

所以我一直有一个很朴素的愿望:

既然我手边本来就有一台真手机,为什么还要让 Mac 再辛苦地模拟一台假的?

我希望未来 TraeCode 可以直接连接真实手机,让真机成为 AI 可以观察、理解甚至参与操作的运行设备。


我对 TraeCode 的愿景

希望新增什么功能

我希望未来手机端也可以安装一个轻量版 Trae。

比如我正在开发一个 iOS、Android、Flutter 或 React Native 应用。

电脑打开 TraeCode,手机打开 Trae,通过:局域网自动发现、扫码配对、USB、Wi-Fi等方式建立安全连接。

连接完成后,我的手机直接出现在 TraeCode 的设备面板中。

比如:

Devices

  • iPhone —— 已连接

  • Android —— 已连接

  • iPad —— 已连接

之后 TraeCode 可以实时看到真机上的应用画面。

我可以直接告诉它:

帮我看看手机上这个页面为什么有问题。

然后我拿起手机正常操作。

TraeCode 在电脑上同步观察整个过程。

但我希望它做的并不仅仅是“远程投屏”。

真正有价值的是:

让手机画面成为 TraeCode 调试上下文的一部分。

它可以同时结合:手机实时画面、当前设备型号、系统版本、App 运行日志、网络请求、当前页面、UI 层级、项目代码、我的操作路径,一起分析问题。

这样真机就不再只是一个“显示 App 的屏幕”,而是成为 TraeCode 可以理解的运行环境。


为什么我觉得这项能力很有必要

现在如果 AI 想直接参与移动端调试,最容易想到的方案就是启动模拟器。

模拟器当然很好用。

但作为一名 16GB MacBook 用户,我对“再开一个模拟器”这几个字多少有一点心理阴影。

开发的时候,电脑上可能已经同时运行着:

TraeCode、IDE、浏览器、后端服务,偶尔再来一个 Docker。

这个时候模拟器一开,我就会下意识看一眼活动监视器。

然后发现:

内存压力从“还行”逐渐进入“大家都别动”的状态。

项目再大一点,编译再猛一点,可能就开始出现一种很有移动开发特色的场面:

App 还没跑起来,风扇先跑起来了。页面还没开始掉帧,Mac 先开始掉帧了。Bug 还没定位,我先开始考虑要不要关浏览器。有时候最让我纠结的甚至不是代码,而是:“这个 Chrome 标签页到底舍不舍得关?”

所以我会觉得,未来如果 TraeCode 本身越来越强,Agent 还要分析代码、运行命令、处理上下文,那么再让电脑额外承担一套虚拟手机环境,其实是在让有限的资源继续互相抢。

但问题是:

**我的桌子旁边明明就躺着一台真 iPhone。**它有自己的 CPU,自己的 GPU、内存、操作系统、传感器。而且它才是最终真正运行这个 App 的地方。

那为什么不能让:

电脑负责 TraeCode 和开发。

手机负责运行 App。

各干各的。

别再让我的 16GB 内存一个人扛下所有。


第二个问题更重要:

模拟器始终不是真手机。

移动应用和 Web 最大的区别之一,就是它和真实硬件、真实系统环境联系非常紧密。

例如:相机、麦克风、蓝牙、陀螺仪、蜂窝网络、弱网、内存压力、GPU性能、温升、不同厂商系统。很多移动端问题在模拟器里根本体现不出来。

比如:
模拟器上页面丝滑得像发布会 Demo,到了真实老手机上却像 PPT。
模拟器里键盘弹出一切正常,真机上直接把底部按钮顶到失踪。
Wi-Fi 环境下图片秒开,切到地铁里的蜂窝网络以后开始表演“永远加载中”。
标准 Android 环境没问题,换一台不同厂商的手机,权限流程突然有了自己的想法。
还有相机、蓝牙、陀螺仪这类功能,本身就高度依赖真实硬件。
所以我觉得未来移动端 AI 调试真正重要的方向,不应该只是:
让 TraeCode 更会操作模拟器。
而应该进一步做到:
让 TraeCode 直接进入真实设备。


希望优化什么场景

我最希望优化的是移动端开发中的:真机调试。

例如我正在开发一个 App。

运行到真机以后,我发现某个页面有问题。

现在的操作通常是:

手机发现问题,截图或者录屏,回到电脑。告诉 AI:“我刚刚点了这里,然后页面变成这样。”复制控制台日志。再让 AI 根据描述猜测问题。
整个过程中:
人其实是在充当手机和 AI 之间的信息中转站。
而且这个中转站表达能力还不一定稳定。
有时候我会对 AI 说:

“就是那个按钮,往下一点,旁边那个,不是这个,是刚才那个页面里的那个。”

说完我自己都觉得信息质量堪忧。
但如果 TraeCode 能直接连接手机,这个流程可以完全改变。
我可以直接说:

Trae,我现在操作一遍,你帮我看看。

然后:打开 App,进入某个页面,点击按钮,键盘弹出来,页面突然错位。
此时 TraeCode 已经看到了全过程。
我只需要问:

为什么刚才键盘出来以后按钮消失了?

TraeCode 就可以结合:真机画面 + UI 状态 + 运行日志 + 当前代码直接分析。
这时候 AI 不再需要让我努力描述:“那个按钮好像往下面跑了一点。”
因为:它自己看见了。


我甚至希望进一步支持:

AI 真机测试

例如我告诉 TraeCode:

帮我测试一下登录和注册流程。

TraeCode 可以在真实手机上协助完成:打开 App,点击注册,填写输入框,申请系统权限,上传照片,切换页面,完成注册,整个过程中持续检查:

  • 有没有崩溃

  • 有没有白屏

  • 有没有页面错位

  • 有没有明显卡顿

  • 按钮是否可以点击

  • 接口是否报错

  • 权限流程是否正常

一旦出现问题:

自动保存当时的手机画面、运行日志、操作路径以及关联代码。

最后输出:

真机测试报告。

甚至修改代码以后,可以再次在同一台手机上执行刚刚的测试流程。

最终形成:

修改代码 → 真机运行 → AI 观察 → 发现问题 → 修复 → 重新真机验证

这样一个完整闭环。


希望如何融入我的工作流

我希望它最终可以成为 TraeCode 一个很自然的一级能力。

就像现在开发环境里有:Files、Terminal、Git、Browser。未来也可以增加:Devices

打开以后,就是我当前可以连接的真实设备。

例如:iPhone、Android 手机、iPad、Android 平板

甚至以后可以继续扩展到:Apple Watch、Wear OS、电视、车机、IoT 设备。

这样 TraeCode 理解的不再只是:

“这段代码是什么。”

还可以理解:

“这段代码最终运行在什么设备上,以及它在那里到底表现成什么样。”


你希望它以什么形态出现

我希望整个过程尽可能简单。

移动端设备安装 Trae。

电脑打开 TraeCode。

第一次使用扫码完成安全配对。

之后在同一个局域网里,可以自动发现之前授权过的设备。

TraeCode 左侧或者底部增加一个:

Devices / 真机设备

面板。

点击设备以后,可以看到:实时手机画面、当前运行 App、设备信息、系统版本、App 日志、网络请求、CPU / 内存 / FPS、测试记录

然后最重要的是:

这些信息全部可以直接提供给 Agent。

我不需要学习复杂的新操作。

依然是在 TraeCode 聊天框里直接说:

看一下手机现在这个页面。

或者:

我操作一遍,你帮我找 Bug。

或者:

对比一下 Android 和 iPhone 上这个页面有什么区别。

甚至如果同时连接一台 iPhone、一台 Android 和一台平板:

TraeCode 可以同时运行并观察三个真实设备。

帮助检查:

不同平台的布局差异;

不同尺寸设备的适配问题;

Android 和 iOS 行为差异;

真实设备上的性能问题。

这对于跨平台开发尤其有价值。


最后,我并不是觉得模拟器应该被替代。

模拟器依然非常适合快速开发、系统版本切换和大规模自动化测试。

但我希望 TraeCode 可以给移动端开发多一个选择:

不要总是在电脑里创造一台假的手机。

毕竟我的 MacBook 只有 16GB 内存。

它已经很努力了。

真的。

有时候,

直接看看我手里的这台真的就好了。

我特别期待未来某一天:

当 App 在真机上出现一个奇怪问题时,

我不需要再截图、录屏、复制日志,然后努力向 AI 描述:

“刚才我点了一下这里,然后它好像动了一下,接着页面就不对了……”

我只需要说一句:

Trae,你看一下我的手机。

然后它回答:

看到了。

这时候我就可以放心地把模拟器关掉。

顺便再多开两个 Chrome 标签页。

我对TraeCode的未来愿景

8 个赞

感觉这个对苹果大概率会受制于权限导致很难做,
或需要集成相当重型的编辑器环境

话说楼主这个配图是什么模型,经常见到这个风格叫不上名字

3 个赞

这就不得不提到字节跳动曾经想做且做了一些工程机的豆包手机了,想要完美适配,最好还是要深度参与到手机的底层开发,拿到相当多的权限。而这是目前ovhm等大厂都绝对不会同意的。以及各个应用包括微信qq淘宝pdd都在反对。软件硬件两个领域的巨头第一次联合起来拦住了一个新生的手机品牌,就是不希望手机上面有个超强AI,万一影响到(或者说抢夺)他们在用户手机上的隐私收益 :roll_eyes:

4 个赞

可是最近在使用一些其他 AI 工具时,我发现它们已经可以借助 Apple 自带的窗口共享能力,单独查看浏览器、模拟器等应用窗口里的实时画面。
这让我想到 Mac 上的 “iPhone 镜像”。它本质上就是把 iPhone 的实时画面投到 Mac 上,并且可以直接通过鼠标和键盘进行操作。
既然现在已经有 AI 工具能够“只看某一个应用窗口”,那是不是也可以让 Trae 直接看到手机屏幕?效果有点类似远程桌面:不需要 AI 获取整个手机系统的权限,只需要把 iPhone 镜像出来的实时画面作为一个窗口共享给 Trae。
而在真机调试时,运行日志、报错信息和调试控制台本身也会实时展示在 Android Studio 或 Xcode 中。这部分信息 AI 已经可以通过电脑端获取,并不需要额外申请太多手机系统权限。
这样一来,Trae 实际上就能同时看到两部分信息:
一边是手机上的真实运行效果,一边是 Xcode / Android Studio 里的实时调试信息。

3 个赞

图片是用 gpt image 生成的

1 个赞

拿画面倒是很简单,但是信息不会太多,而且图片的话每一次都得用多模态处理吗?

Android 日志信息这些,不好意思,手机都不给你root,能拿到的也不多。

2 个赞

确实有同感,我都是自己上传有问题的截图。如果能不去开模拟器直接用把手机投屏到电脑的方式在电脑直接截图确实会好很多

2 个赞

哥们理解错我的意思了,系统运行日志不需要的,只需要开发调试过程在 console 中打出来的 log

1 个赞

安卓通过 Android Studio 的 Logcat、iOS 通过 Xcode 控制台,连接真机即可读取应用输出日志,无需 Root、无需越狱,这是官方提供的标准调试通道。
日志未必能捕获到 UI 渲染类异常,而截图可以直接留存界面最终的真实状态:像页面错乱、弹窗弹出、按钮异常、报错提示、白屏这类问题,有时日志里不会输出任何报错信息,但截图可以直观复现现场现象。
另外不少 AI 测试工具在校验页面渲染、组件布局、点击交互逻辑时,普遍会拉起模拟器完成检测。网页场景下开销很低,本质只是浏览器页面;但针对 App 做自动化校验时,需要完整启动一套模拟器环境,资源开销会明显变大。

1 个赞

很用心的帖子,给你点赞!

1 个赞

有点理解你的处境和需求了,感觉这个需要小米oppo华为等手机厂家先打通这个流程,手机厂商才是最希望AI能直接对接真机进行开发调试的。等到这个sop完善了,可能会开源出来,旨在第三方app开发者更好的适配自家手机。

1 个赞