cocos2d-x手機網遊階段流失診斷工具TuesdayData

2020-11-28 開源中國

Android手機網遊階段流失診斷工具——TuesdayData

Client:C++
Server:Firefly 1.3.1 (python)
DB:mysql

1.簡介
本SDK是基於cocos2d-x遊戲的穩定性以及階段流失診斷的工具,具體可應用在網遊從啟動至遊戲登陸之間,可將此期間的一切操作進行發送到伺服器並存入伺服器資料庫,可從伺服器方便的了解到程序在每個階段出現問題的概率與部分用戶流失的原因,並可針對某個階段進行改良。

2.集成步驟
(1)導入PhoneNet.Java
將com文件夾複製在 src文件夾中

(2)修改cocos2d的入口文件
引入頭文件,如:

  1. import com.jni.PhoneNet;

複製代碼

在onCreate函數衝中添加,如:

  1. super.onCreate(savedInstanceState); 

  2. PhoneNet.getInstance().setContext(this);

複製代碼

(3)app權限
在工程中,打開AndroidManifest.xml文件,加入權限:

  1. <uses-permission android:name="android.permission.INTERNET"/>

  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

  3. <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,調用靜態方法

  1. 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秒社團自研開源。

相關焦點

  • Cocos2d-x v3.3-RC0 發布說明! - OSCHINA - 中文開源技術交流社區
    我們很高興地宣布Cocos2d-x v3.3-RC0發布了!
  • 遊戲開發5個階段學習路線給你準備好了!(含引擎/書籍資源)
    乾貨分享——遊戲開發學習路線5個階段完整總結。這篇文章主要是解答想入門遊戲開發編程領域的小夥伴們的疑問,給大家一套完整的學習路線,希望能幫助到你們!話不多說,直奔主題。一、前言首先我們要知曉遊戲開發主要分為2D遊戲和3D遊戲。2D遊戲通常是為手機開發,3D遊戲一般使用的遊戲開發工具。
  • Cocos Creator 3D Quternion !
    = Vec3.UP;//旋轉軸const rad2 = 1e-2 * delta.x; //旋轉角度// 計算坐標const point = this.node_axi.worldPosition; //旋轉點const point_now = this.node_touch_axi_role.worldPosition; // 當前點的位置// 算出坐標點的旋轉四元數
  • 2019手機網遊排行-好玩的網遊排行榜手機遊戲
    那麼在2019手機網遊排行中有哪些比較好玩呢,下面就帶大家去看看好玩的網遊排行榜手機遊戲,喜歡的小夥伴不要錯過哦。 2019手機網遊排行NO.1:啪啪遊俠 《啪啪遊俠》是一款的放置類掛機冒險遊戲,精美的遊戲畫面、新穎有趣的玩法、超乎想像的簡單操作,感受即好玩又輕鬆的全新掛機體驗
  • Cocos Creator!
    _initial_position.x + this.initial_velocity.x * this._time + this.acceleration.x * this._time * this._time / 2; this.node.y = this._initial_position.y + this.initial_velocity.y * this.
  • |python|離散化|dataframe...
    d3[ 'max'] = d2.max().X d3[ 'sum'] = d2.sum().Y d3[ 'total'] = d2.count().Y d3[ 'rate'] = d2.mean().Y d3[ 'woe']=np.log((d3[ 'rate']/( 1-d3[ 'rate']))/(good/bad)) d4 = (d3.sort_index
  • Cocos Creator 3D v1.0.1 正式發布
    2. 支持物理材質編輯優化導入和數據遷移的效率我們測試的一個超大型項目,數據遷移過程中的內存使用從 4-6 GB 降低到了 0.5-1.2GB,時間從降低到了原本的 10 - 30%。5._point.x, touch.
  • Pandas數據結構:DataFrame
    ndarray 3.Series# 值是列表data1 = {"a": [1,2,3],"b": [4,5,6],"c": [7,8,9]}print(data1)print("")print(pd.DataFrame(data1)) # 創建DataFrameprint("
  • 案例分析:手機QQ音樂播放器流失用戶研究
    大量的用戶流失給我們的產品帶來極大的挑戰,用戶為什麼流失?流失之後去哪兒了?怎麼挽留現有用戶?怎麼「召回」已流失用戶?本文以「手機QQ音樂播放器流失用戶研究」為例,談一下自己的理解,供大家參考。流失用戶的定義,一般有兩種方法:客觀維度定義—時間,登陸頻率,登陸次數;主觀維度—用戶不打算再用該產品了。流失用戶的維度劃分還是從用戶屬性及用戶與產品的關係兩方面去考慮。在做手機QQ音樂流失用戶調研的項目中,從以下兩個方面來劃分流失用戶維度,1. 用戶屬性,包括年齡、性別、學歷等;2. 用戶與產品的關係,包括新用戶/老用戶、使用場所、使用的其他競品。
  • PROFIBUS診斷的常用工具
    除此之外,現場診斷一般會使用到BT200和示波器等設備。BT200是西門子的提供的PROFIBUS網絡診斷設備,可以進行網絡距離檢測,網絡連接的質量的檢查(比如斷線、短路等等),常用於項目現場施工布線階段;而示波器常常用於檢測PROFIBUS
  • TCGA資料庫生存分析的網頁工具哪家強
    無病生存期(Disease-free survival,DFS)定義為:從隨機化開始至疾病復發或(因任何原因)死亡之間的時間。DFS 最常用於根治性手術或放療後的輔助治療的研究,目前是乳腺癌輔助性激素治療、結腸癌輔助治療、以及乳腺癌的輔助化療的主要審批基礎。我們先看看 OS的結果吧:
  • ELK5.X搭建並收集Nginx日誌
    2.Logstash介紹Logstash是一個完全開源的工具,他可以對你的日誌進行收集、分析,並將其存儲供以後使用(如,搜索),您可以使用它。說到搜索,logstash帶有一個web界面,搜索和展示所有日誌。 kibana也是一個開源和免費的工具,他可以幫助您匯總、分析和搜索重要數據日誌並提供友好的web界面。
  • OceanBase 2.x體驗:手動搭建OceanBase集群
    OceanBase 2.x發布後,新增對ORACLE兼容性的支持,官網近期已提供OB2.x下載(https://oceanbase.alipay.com/download/resource),以及OCP 2.3自動化搭建OceanBase 2.x集群的方法。這裡提供手動搭建OceanBase集群可以精確控制資源的利用,同時再次熟悉一下OceanBase集群的原理,對後期運維功能理解會更好一些。
  • 中國手機網遊市場現狀調研與發展趨勢分析報告(2020-2026年)
    第一章 研究領域及主要觀點  1.1 研究範圍及相關概念  1.2 研究背景  1.3 主要觀點  1.4 相關研究方向第二章 手機網遊的發展歷程及技術特徵分析  2.1 中國手機遊戲發展歷程  2.2 手機網遊的特徵分析  2.3 手機網遊技術系統分析
  • 60分鐘入門深度學習工具PyTorch
    現在讓我們來看一個雅可比向量積的例子:x = torch.randn(3, requires_grad=True)y = x * 2while y.data.norm < 1000:y = y *
  • u和d算波動率_波動方程 - CSDN
    dropna()data.+0.88(σn-1)2。+0.94(σn-1)2。sqrt(0.0000895+0.4*data[-31]**2)name='date'd.
  • R語言arma模型診斷_arma模型實現模型r語言 - CSDN
    #時間序列數據的顯示#zoo和xts都只能按照原來的格式顯示,timeSeries可以設置顯示格式print(x, format= 「%m/%d/%y %H:%M」)  #%m表示月,%d表示天,%y表示年,%H表示時,%M表示分鐘,%A表示星期,%j表示天的序號
  • 可視化工具不知道怎麼選?深度評測5大Python數據可視化工具
    ()y2 = Faker.values()x為一列品牌名稱,y1/y2為一列相同長度的無意義數據,接下來讓我們使用不同的庫對這組數據進行可視化!, label='商家A')rects2 = ax.bar(x1 + width/2, y2, width, label='商家B')ax.set_title('Matplotlib—柱狀圖')ax.set_xticks(x1)ax.set_xticklabels(x)ax.legend()plt.show()最後生成的默認圖像如下默認配色不是很好看但也沒有很難看,看起來更學術一點