历史说明:本文基于 2015 年的 Dart 开发环境编写。当时的 Dart 还以 Dart Editor + Dartium 浏览器为核心工具链。如今的 Dart 已全面转向 Flutter 生态和 Dart SDK 命令行工具链,内容仅供参考。

您可以直接在 Android 设备上启动和调试 Dart Web 应用,无需预编译为 JavaScript。需要安装 Dart EditorDart Content Shell。Dart Content Shell 会自动安装到 Android 设备上。

环境配置

所需硬件和软件

  • Android 设备(手机或平板)
  • USB 数据线
  • 电脑和手机上均安装 Chrome 浏览器

第一部分:配置开发环境

Step 1: 配置电脑

下载并安装 Dart Editor:Download Dart Editor(注:该下载页面已不再维护)

Step 2: 配置 Android 设备

开启 USB 调试。参考:Chrome 远程调试设置

Step 3: 连接设备

通过 USB 连接设备:连接设备指南

Step 4: 配置端口转发

除非使用家庭网络,否则通常需要设置端口转发。详情可参考:Android 远程调试

Step 5: 在 Android 设备上启动应用

在 Dart Editor 中右键点击 HTML 文件,选择 Run in Dartium 或移动端运行选项:

ContextRunMenu

常见问题

  • 如果使用端口转发,确保 Chrome 浏览器正在运行以测试应用
  • 如果 Dart Editor 无法识别设备(显示"No phone or USB development phone found"),尝试拔插 USB 线
  • 如果弹出以下对话框,按提示处理:

PubServeLaunchFailed EmbeddedServerLaunchFailed

Step 6: 调试应用

应用在 Android 设备上运行后,可在 Dart Editor 中设置断点进行调试。在 Tools > Debugger 中看到"远程"连接即可开始调试。

常见问题(FAQ)

哪些应用会下载到 Android 设备?

首次启动 Dart Editor 会话时,两个应用会被下载到 Android 设备:

  1. Dart Content Shell — 包含 Dart VM 的精简版 Chromium,测试时应用运行在此环境中
  2. 连接测试应用 — 用于检测 Web 服务器访问问题

什么是端口转发?为什么需要?

MobileDeployment

“Pub serve over USB"和"Embedded server over WiFi network"有什么区别?

Manage Launches 对话框中可看到两个选项:

  • Pub serve over USB:通过 USB 端口转发,推荐在防火墙、公共 WiFi、或设备与电脑不在同一网络时使用
  • Embedded server over WiFi network:使用 Dart Editor 内嵌服务器,适合家庭无防火墙网络,无需端口转发

第二部分:运行示例代码

启动 Editor

进入解压文件夹,双击 DartEditor

获取示例代码

1
git clone https://github.com/dart-lang/one-hour-codelab.git

打开示例项目

Dart Editor 中选择 File > Open Existing Folder,找到 clone 的代码目录。

filesanddirs.png

运行基础应用

打开 1-blankbadge,右键 piratebadge.html,选择 Run in Dartium

更详细的示例说明见:Dart Codelab


参考资料