作者:马宁
源代码下载地址:
http://files.cnblogs.com/aawolf/OpenXLiveAnalytics.zip
在Windows Phone中很多应用需要数据查询功能,来确定每天的用户数和应用使用次数等关键信息。在iOS和Android中已经有非常多的类似应用了,比如Flurry, 友盟等,但是Windows Phone上只有Flurry提供了此类功能。但由于很多开发者来说,没有中文支持的Flurry有些可望而不可即。
其实,在OpenXLive也提供数据分析的支持,只是之前更多是用于游戏数据的统计和查询上。在这篇文章里,我们将介绍,如何将OpenXLive的数据分析功能应用在Windows Phone的应用程序开发中。
因为所有的统计数据都是保存在OpenXLive的云端存储服务器中,所以,我们要在OpenXLive网站上创建一个应用。
首先,登录OpenXLive网站(http://www.openxlive.com/),如果没有帐号,我们需要创建一个相应的帐号,通过电子邮件激活帐号之后,我们还需要升级成为开发者。
在激活邮件地址后,我们重新回到OpenXLive的网站,输入用户名和密码后,我们会进入用户资料编辑界面,在这里,我们可以填写完整的个人信息,使得朋友在网络中更加容易地找到你。用户资料中最后一项为“Developer Information”。
点击“Developer Information”,进入开发者申请界面:
在这个页面,我们要填写开发者类型(个人/公司/学生)、国家、城市、地址、电话、IM等信息。在填写完成后,我们会看到下面的开发者注册成功界面。
在这个界面中,我们可以进入OpenXLive开发者首页,查看开发指南,也可以直接点击“Create New Game”,进入开发者后台。
进入开发者后台界面之后,如果您之前已经创建过游戏,会显示已创建游戏的列表,如上图所示。在用户图标的下方,有Create New Game的按钮,点击,进入创建新游戏的界面。
为了引用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即可。
在添加完引用之后,我们就可以添加代码了。
接下来,我们要为工程添加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还会加入自定义事件、地理分布信息等功能。