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 启动后显示需要完整授权才能使用