avalonia 手机连接 Developer Tools

avalonia 手机端连接 Developer Tools 需要完整授权,社区版授权不支持该功能。下面以 android 为例说一下操作步骤

相关手册:https://docs.avaloniaui.net/accelerate/tools/dev-tools/getting-started

连接手机:https://docs.avaloniaui.net/accelerate/tools/dev-tools/advanced/attaching-browser-or-mobile

  • android app 上配置允许访问电脑端
# Resources/xml/network_security_config.xml
# https://devblogs.microsoft.com/xamarin/cleartext-http-android-network-security/
# https://docs.avaloniaui.net/accelerate/tools/dev-tools/advanced/attaching-browser-or-mobile#attaching-android-application
# 手册上使用的是 android 虚拟机默认地址 10.0.2.2
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">127.0.0.1</domain> <!-- Debug address -->
  </domain-config>
</network-security-config>
# AndroidManifest.xml
<application android:networkSecurityConfig="@xml/network_security_config">
  • android 端或是公共库中安装配置调试工具
#dotnet add package AvaloniaUI.DiagnosticsSupport

public override void Initialize() {

  AvaloniaXamlLoader.Load(this);

  #if DEBUG
  if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) {
    # 桌面端默认使用 f12 开启
    this.AttachDeveloperTools();
  } else {
    this.AttachDeveloperTools(it => {
      # 手机端默认为 true, 启动时连接到 dev tools
      it.ConnectOnStartup = true;
      # 手机端默认为虚拟机连接地址, 这里改为本地, 然后使用 adb reverse 映射下端口
      it.Protocol = DeveloperToolsProtocol.CreateHttp(IPAddress.Loopback, 29414, TimeSpan.FromSeconds(15));
    });
  }
  #endif
}
  • 电脑端安装并启动 dev tools
# 安装工具
dotnet tool install --global AvaloniaUI.DeveloperTools

# 启动工具
avdt Developer Tools

# 检测是否已经在监听端口
lsof -i :29414

# adb 创建端口映射,并手机端的 29414 映射到电脑端 29414
adb reverse tcp:29414 tcp:29414
  • 启动手机端,等待 Dev tools 启动完成

  • Dev tools 启动后显示需要完整授权才能使用

上一篇