Android手机网游阶段流失诊断工具——TuesdayData
Client:C++
Server:Firefly 1.3.1 (python)
DB:mysql
1.简介
本SDK是基于cocos2d-x游戏的稳定性以及阶段流失诊断的工具,具体可应用在网游从启动至游戏登陆之间,可将此期间的一切操作进行发送到服务器并存入服务器数据库,可从服务器方便的了解到程序在每个阶段出现问题的概率与部分用户流失的原因,并可针对某个阶段进行改良。
2.集成步骤
(1)导入PhoneNet.Java
将com文件夹复制在 src文件夹中
(2)修改cocos2d的入口文件
引入头文件,如:
import com.jni.PhoneNet;
复制代码
在onCreate函数冲中添加,如:
super.onCreate(savedInstanceState);
PhoneNet.getInstance().setContext(this);
复制代码
(3)app权限
在工程中,打开AndroidManifest.xml文件,加入权限:
复制代码
(4)引入c++文件
将TuesdayData文件夹复制在工程根目录,默认为文件夹Classes
并在android.mk中 添加TuesdayData中所有文件的路径
服务器IP与端口在TuesdayData.h,宏定义IP 与 HOST
默认IP与端口是我们提供的服务器,您可以直接使用
(5)调用方法
引入头文件TuesdayData.h,调用静态方法
static void sendTuesdayData(const char event, const char gameID, const char* userID = NULL);
复制代码
参数 event为行为标识。
参数gameID为游戏标识。
参数userID 为用户的唯一游戏ID(选填)。该事例会获取手机的mac码来作为设别的唯一标示并发送到服务器。
3.事例应用
例如上图,为大多数网游的的登陆流程。
我们在这10个流程节点上的状态分别发送到给服务器发,服务器会把这些数据保存到数据库。
这样,只要从服务器打开数据库,就可以看到每个用户的登录数据并加以分析,游戏在哪个环节的问题概率就非常直观了。
举个例子:
比如,玩家在游戏更新这一步出现问题。假设,用户更新游戏失败,但是网络连接确实正常的。那么,我们的服务器就会收到用户更新失败的数据状态。假设,用户在更新过程中崩溃或者断网、手机断电等,此时服务器将收不到任何消息,由于后两种情况几率实在太低,可以忽略,这样服务器就可以基本判定这一步是由于游戏崩溃而导致的。
Demo中,将登陆界面划分为5个步骤共10种情况,其中 连接服务器对应编号1001,失败1011;用户登录对应编号1002,失败1012;更新对应编号1003,失败1013;选择大区对应编号1004,失败1014;进入游戏对应编号1005,失败1015。
这里我们以demo为例子,从服务器数据库截取了2张图。 1图为登陆成功的数据,2图中包含异常数据。图中msg列为用户状态所对应的编号,对比可以看得出,图1从1001一直到1005,1005为进入游戏,并且之后没有返回1015登录失败的记录,可以看得出用户正常登陆游戏了;图2中,从1001到下一个1001之前为用户的一次登陆流程,其中在1003这一步出现异常,循环3次,即可分析出用户在更新这一步没有通过。
TuesdayData 代码托管OSC@GIT:http://git.oschina.net/9maio/TuesdayData
TuesdayData 由9秒社团自研开源。
文章转载自 开源中国社区 [http://www.oschina.net]