5. 使用Visual Studio App Center进行分析
Visual Studio App Center(https://appcenter.ms)是微软开发Windwos和移动应用程序、向beta测试人员分发应用程序、测试应用程序、扩展带有推送通知的应用程序以及获得应用程序的用户分析的入口。
可以得到用户关于应用程序问题的报告,例如,可以找出异常,也可以找到用户在应用程序中正在使用的特性。例如,假设给应用程序添加一个新特性,用户会找到激活该特性的按钮吗?
使用Application Insights,很容易识别用户使用应用程序时遇到的问题。所以,微软很容易集成Application Insights和各种各样的应用程序。
注意:
这里有一些特性示例,用户很难在微软自己的产品中找到它们。XBOX是第一个为用户界面提供大磁铁的设备。搜索特性放在磁铁的下面。虽然这个按钮可以直接显示在用户面前,单用户看不到它。微软把搜索功能移动到磁铁内,现在用户可以找到它。
另一个例子是Windows Phone上的物理搜索按钮。这个按钮用于应用程序内的搜索。用户抱怨,没有在电子邮件内搜索的选项,因为他们不认为这个物理按钮可以搜索电子邮件。微软改变了功能。现在物理搜索按钮只用于在网上搜索内容,邮件应用程序有自己的搜索按钮。
Windows 8有一个相似的搜索问题:用户不使用功能区的搜索功能,在应用程序内搜索。Windows 8.1改变了指南,使用功能区中的搜索功能,现在应用程序包含自己的搜索框;在Windows 10中还有一个自动显示框。看起来有一些共性?
要启用app分析,首先需要注册Visual Studio App Center。不要担心成本过高——崩溃报告和分析是免费的(在本文撰写时)。接下来,需要创建一个应用程序,并从Web门户中复制App Secret。然后可以用Visual Studio创建一个新的Blank App(Universal Windows)。要启用分析,给项目添加NuGet包Microsoft.AppCenter.Analytics。
只需要使用几个API调用,就可以发现用户的问题。在App类的构造函数中,添加AppCenter.Start,并添加先前复制的App Secret。要启用Analytics,需要将Analytics对象的类型作为第二个参数传递给Start方法:
public App(){this.InitializeComponent();this.Suspending += OnSuspending;AppCenter.Start("650ad4a8-e6b5-4b02-a6a6-4f471a2a52f8",typeof(Analytics),typeof(Crashes));}注意:
请记住在Visual Studio App Center的应用程序配置中,把App Secret添加到Application.Start方法中。
现在运行应用程序,就会看到用户信息,用户启动应用程序的时间、位置以及来自用户的设备。
要从用户获得更多的信息,需要创建对Analytics.TrackEvent的调用。应用程序中所有可能的事件都定义在类EventNames中:
public class EventNames{public const string ButtonClicked = nameof(ButtonClicked);public const string PageNavigation = nameof(PageNavigation);public const string CreateMenu = nameof(CreateMenu);}示例应用程序包含一些控件,用户启用/禁用分析、输入一些文本并单机按钮(如下图所示)。激活MainPage时,将收集事件。TrackEvent方法需要事件名的字符串,该字符串取自EventNames类。这个事件的名称不是没有把类名作为前缀,因为用using static声明来导入该类的成员。Trackvent方法的第二个参数是可选的。在这里,可以传递字符串的一个字典来跟踪其他信息。在示例代码中,当导航到页面时,PageNavitation事件包含关于导航到的页面类型的信息:
protected override void OnNavigatedTo(NavigationEventArgs e){base.OnNavigatedTo(e);Analytics.TrackEvent(PageNavigation, new Dictionary<string, string> { ["Page"] = nameof(MainPage) });}
通过单击按钮,TrackEvent可以跟踪ButtonClick事件(Tapped),并获得用户在TextBox控件中输入的信息:
private void analytics_btn_Tapped(object sender, TappedRoutedEventArgs e){Analytics.TrackEvent(ButtonClicked, new Dictionary<string, string> { ["State"] = textState.Text });}用户在应用程序中漫游时,可能不允许收集信息,因此可以创建一个用户可以用来启用和禁用该功能的设置。如果设置了Analytics.SetEnabledAsync(false),那么Analytic API将不再报告数据:
private async void checkBox_CheckedChanged(object sender, RoutedEventArgs e){if (sender is CheckBox checkBox){bool isChecked = checkBox.IsChecked.Value ? true : false;await Analytics.SetEnabledAsync(isChecked);}}XAML:
<Grid><StackPanel Margin="30"><CheckBox x:Name="checkBox" Content="Allow Analytics" IsChecked="True" Checked="checkBox_CheckedChanged" Unchecked="checkBox_CheckedChanged"/><TextBox x:Name="textState" Margin="0,30"/><Button x:Name="analytics_btn" Content="Sent Event" Tapped="analytics_btn_Tapped"/></StackPanel></Grid>Visual Studio App Center在分析方面有一些限制,如下所示:
- 只能有200个或更少的事件名称。
- 事件名限制在256个字符以内。
- 字典只能包含5个或更少的属性。
- 事件属性名称和事件属性值限制在64个字符内。
注意:
撰写本书时有这些限制。它们可能在未来的版本中改变。
运行应用程序,并监视Visual Studio App Center门户时,可以看到发生的事件和受影响的用户数量(如下图所示)。单击事件时,可以看到事件计数、每个会话的事件以及传递的字典属性的详细信息。还可以看到实时事件日志流,如下图。
除了这些信息之外,Visual Studio App Center Analytics还提供了以下信息:
- 活跃用户的数量
- 每个用户每天的会话
- 会话持续时间
- 顶尖设备
- 使用的OS版本
- 语言
总结
以上是生活随笔为你收集整理的5. 使用Visual Studio App Center进行分析的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Idea 替换 区分大小写
- 下一篇: 按键精灵定时执行录制脚本