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文件,加入權限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
複製代碼
(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個流程節點上的狀態分別發送到給伺服器發,伺服器會把這些數據保存到資料庫。
這樣,只要從伺服器打開資料庫,就可以看到每個用戶的登錄數據並加以分析,遊戲在哪個環節的問題概率就非常直觀了。
舉個例子:
比如,玩家在遊戲更新這一步出現問題。假設,用戶更新遊戲失敗,但是網絡連接確實正常的。那麼,我們的伺服器就會收到用戶更新失敗的數據狀態。假設,用戶在更新過程中崩潰或者斷網、手機斷電等,此時伺服器將收不到任何消息,由於後兩種情況機率實在太低,可以忽略,這樣伺服器就可以基本判定這一步是由於遊戲崩潰而導致的。
圖1 圖2
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秒社團自研開源。