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 替换 区分大小写
- 下一篇: python升级第三方库_python一
