作者:馬寧
原始碼:
http://files.cnblogs.com/aawolf/OpenXLiveAnalytics.zip
在Windows Phone中很多應用需要資料查詢功能,來確定每天的使用者數和應用使用次數等關鍵資訊。在iOS和Android中已經有非常多的類似應用了,比如Flurry, 友盟等,但是Windows Phone上只有Flurry提供了此類功能。但由於很多開發人員來說,沒有中文支援的Flurry有些可望而不可即。
其實,在OpenXLive也提供資料分析的支援,只是之前更多是用於遊戲資料的統計和查詢上。在這篇文章裡,我們將介紹,如何將OpenXLive的資料分析功能應用在Windows Phone的應用程式開發中。
建立OpenXLive應用
因為所有的統計資料都是儲存在OpenXLive的雲端儲存伺服器中,所以,我們要在OpenXLive網站上建立一個應用。
首先,登入OpenXLive網站(http://www.openxlive.com/),如果沒有帳號,我們需要建立一個相應的帳號,通過電子郵件啟用帳號之後,我們還需要升級成為開發人員。
在啟用郵件地址後,我們重新回到OpenXLive的網站,輸入使用者名稱和密碼後,我們會進入使用者資料編輯介面,在這裡,我們可以填寫完整的個人資訊,使得朋友在網路中更加容易地找到你。使用者資料中最後一項為“Developer Information”。
點擊“Developer Information”,進入開發人員申請介面:
在這個頁面,我們要填寫開發人員類型(個人/公司/學生)、國家、城市、地址、電話、IM等資訊。在填寫完成後,我們會看到下面的開發人員註冊成功介面。
在這個介面中,我們可以進入OpenXLive開發人員首頁,查看開發指南,也可以直接點擊“Create New Game”,進入開發人員後台。
進入開發人員後台介面之後,如果您之前已經建立過遊戲,會顯示已建立遊戲的列表,如所示。在使用者表徵圖的下方,有Create New Game的按鈕,點擊,進入建立新遊戲的介面。
添加OpenXLive引用
為了引用OpenXLive的程式集,我們必須首先下載OpenXLive SDK並且完成安裝。是:http://developer.openxlive.com/sdk/download/ 目前的版本是0.9.6.
建立Windows Phone Silverlight應用後,我們要擷取OpenXLive的程式集。在開始菜單中,找到OpenXLive應用,其中OpenXLive目錄下包括XNA和Silverlight兩個目錄。我們從Silverlight目錄中取出OpenXLive.dll程式集,拷貝至我們的應用所在的目錄。
然後在Solution Explorer中,按右鍵References,選擇Add Reference。在對話方塊中選擇Browse頁面,然後找到OpenXLive.dll,將其添加到工程中。
因為我們不需要OpenXLive的介面,所以只需要添加OpenXLive.dll即可。
在添加完引用之後,我們就可以添加代碼了。
建立Session
接下來,我們要為工程添加OpenXLive的引用代碼。開啟工程中的App.xaml.cs檔案,首先找到Application_Launching方法:
private void Application_Launching(object sender, LaunchingEventArgs e){ if (XLiveGameManager.CurrentSession == null) { GameSession session = XLiveGameManager.CreateSession("xxxxxxxx"); session.CreateSessionCompleted += new AsyncEventHandler(session_CreateSessionCompleted); session.Open(); }}
我們在這個方法裡判斷是否已經有Game Session存在,如果沒有的話,則調用XLiveGameManager的CreateSession方法來建立一個Game Session,需要傳遞的參數,是我們在OpenXLive網站上獲得的Secret Key。
然後,我們可以添加一個CreateSessionCompleted事件處理函數,來擷取Game Session是否被建立的事件。當然,這個事件處理函數是可選的,我們可以不添加。
最後,調用Game Session的Open方法,來開啟Game Session就可以了。
然後是關閉這個Game Session,在Application_Closing方法裡調用Close方法。
private void Application_Closing(object sender, ClosingEventArgs e){ if (XLiveGameManager.CurrentSession != null) { XLiveGameManager.CurrentSession.Close(); }}
如果我們不顯式調用Close方法的話,Game Session在建立24小時後會自動到期,所以也不會造成太大的影響,唯一的問題是遊戲時間將失效。
為了支援墓碑機制,我們還要特意在Application_Activated和Application_Deactivated函數中,添加對於墓碑機制的處理。
private void Application_Activated(object sender, ActivatedEventArgs e){ XLiveGameManager.Activated();}private void Application_Deactivated(object sender, DeactivatedEventArgs e){ XLiveGameManager.Deactivated();}
好了,到這裡我們就大功告成了,夠簡單吧?
查看資料結果
當我們的Windows Phone軟體發布之後,就可以在OpenXLive網站上查看應用程式的線上資料了。
首先,我們訪問OpenXLive網站http://www.openxlive.com/ ,在網頁右上方點擊Login登入,成功登入之後,我們會在OpenXLive首頁右上方的位置看到下面的網頁:
點擊My Game,可以進入遊戲後台管理的Dashboard中。如果使用者登入後,訪問OpenXLive開發人員網站(http://developer.openxlive.com/),在右側的Dashboard中選擇“Managed your games”也可以進入開發人員後台管理介面。
所示,包括我們建立的所有遊戲和應用,點擊應用表徵圖會進入應用的產業頁面,點擊應用標題,則進入應用的管理介面。
點擊管理介面中的Statistics按鈕,進入資料分析介面。
在資料分析介面中,我們可以查看一些通用資訊,比如建立Session的數量、使用人數等資訊。點擊View,則進入詳細資料分析介面。
在詳細資料分析介面中,我們可以考到使用者數、Session數的時間分布,按照月、周、日來進行顯示等。
寫在最後
好了,到這裡,我們就介紹完OpenXLive目前的資料分析功能。下一步,OpenXLive還會加入自訂事件、地理分布資訊等功能。