国产99久久久国产精品成人小说_高清一区二区亚洲欧美日韩_天堂…在线最新版资源_强奷漂亮脱肉丝袜视频大全_国内精品久78视频_91免费观看在线网址_(凹凸18+)国产一级a爱做片免费观看_亚洲天堂在线免费短视频_国产日韩新片无码一区_亚洲av一级福利精品麻豆

SDK 接入概要

初始化接口
void init ( ... );

確保在調(diào)用其他接口之前正確調(diào)用 AppLogger::init 接口,僅在第一次調(diào)用時(shí)有效;

Android 下通常在 第一個(gè) Activity 的 onCreate() 中調(diào)用初始化接口;

事件接口調(diào)用結(jié)構(gòu)
						
onStart // 應(yīng)用啟動(dòng)
    onSubStart // 關(guān)卡或頁面的開始
        // 關(guān)卡中發(fā)生的事件
        onBuy, onUse, onEvent … 等事件接口
        onPassFail 關(guān)卡成功或失敗
    onSubEnd // 關(guān)卡或頁面的結(jié)束
    
    // 關(guān)卡外發(fā)生的事件
onEnd // 應(yīng)用退出,Back按鍵強(qiáng)制退出調(diào)用onExit
					

onStart, onEnd 通常在 Activity::onResume, Activity::onPause 中由開發(fā)者調(diào)用。

onSubStart, onSubEnd 表示一個(gè)關(guān)卡/頁面的開始與結(jié)束,可以嵌套,但不能交叉。

onSubStart 的第一個(gè)參數(shù)stage是關(guān)卡名稱,用版本號(hào)的形式,例如 “1”, “2”, “2.1”, “2.2”, … 。如果是字母開始,作為頁面。

如果通過 System.KillProcess 函數(shù)退出應(yīng)用(例如Android下雙擊Back按鍵退出應(yīng)用),確保調(diào)用 onExit 接口。

獲取 APPKEY

1,登錄 天梯游戲統(tǒng)計(jì) 后臺(tái),進(jìn)入我的應(yīng)用界面,在應(yīng)用匯總窗口點(diǎn)擊 “創(chuàng)建新應(yīng)用”。如圖:

創(chuàng)建新應(yīng)用截圖

2,輸入應(yīng)用的相關(guān)信息后,點(diǎn)擊 “提交應(yīng)用”,即可。如圖:

提交應(yīng)用截圖

3,得到唯一的 APPKEY,接入 SDK 時(shí)使用。如圖:

APPKEY截圖

Android SDK 導(dǎo)入

下載 SDK 壓縮包后解壓至本地目錄,需要將 logger/sdk/libs/android 目錄下的 applogger.jar,applogger.so 和 AppLogger.h 添加到應(yīng)用工程中。

1,開發(fā)環(huán)境配置
Android Studio 導(dǎo)入

(1) 將 applogger.jar 和包含 .so 文件的目錄(armeabi, armeabi-v7a, x86, ...)復(fù)制到工程的 libs 目錄下,復(fù)制目錄時(shí),只選擇當(dāng)前工程所支持的架構(gòu)。

(2) 在 Module 的 buid.gradle 文件中添加 .so 庫目錄配置:

						
android {
    sourceSets {
    	main.jniLibs.srcDirs = ['libs']
    }
}
					

完成后點(diǎn)擊 Sync,同步配置。

Eclipse 導(dǎo)入
(1) applogger.jar 的導(dǎo)入

1.1) 將 logger/sdk/libs/android 目錄下的 applogger.jar 復(fù)制到工程根目錄的 libs 文件夾中(若沒有 libs 目錄,則選中工程右鍵“New” -> Folder -> 命名為 “l(fā)ibs”)。

1.2) 右鍵單擊工程,選擇 Build Path 中的 Configure Build Path...,選中Libraries,并通過 Add Jars... 導(dǎo)入工程 libs 目錄下的 applogger.jar 文件(最新的 ADT工具會(huì)自動(dòng)導(dǎo)入 libs 目錄下的 jar 包,故該步驟可以省略)。

(2) applogger.so 的導(dǎo)入

純 Java 的 Android 項(xiàng)目,將 libs/android 目錄下的所有子目錄 (armeabi, armeabi-v7a, x86, ...) 復(fù)制到工程目錄下的 libs 目錄中。復(fù)制目錄時(shí),只選擇當(dāng)前工程所支持的架構(gòu)。

2,編譯配置

(1) 在 Android 工程加載自己項(xiàng)目 .so 的地方,添加對(duì) liblogger.so 的引用。注意,liblogger.so 的加載順序,需要在自己的 .so 之前:

						
static {
    System.loadLibrary("logger"); //liblogger.so的加載,在demo lib前面
    System.loadLibrary("your_app_lib"); //demo lib
}
					

(2) 如果使用 AppLogger 的 C++ 接口,需修改 Android.mk 文件

注意:如果使用 NDK 編譯,則 sdk 不要放在 libs 目錄中,因?yàn)?NDK 編譯時(shí),會(huì)刪除 libs 目錄下所有的文件夾。例子中的 logger/sdk 放在了工程目錄下。

						
LOCAL_PATH := $(call my-dir)
#——— 開始添加,加載 liblogger.so ———
include $(CLEAR_VARS)
LOCAL_MODULE:=liblogger

#如果使用 Android Studio 環(huán)境
LOCAL_SRC_FILES:=$(TARGET_ARCH_ABI)/liblogger.so

#如果使用 NDK 環(huán)境
#LOCAL_SRC_FILES:=../logger/sdk/libs/android/$(TARGET_ARCH_ABI)/liblogger.so
include $(PREBUILT_SHARED_LIBRARY)
#——— 結(jié)束添加 ———

include $(CLEAR_VARS)
LOCAL_MODULE := your_app_lib
……
LOCAL_SRC_FILES := xxx.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../xxx

#——— 開始添加,引入 Applogger.h 路徑 ———
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../logger/sdk
#——— 結(jié)束添加 ———
……

#——— 開始添加,引用 liblogger.so ———
#放在 BUILD_SHARED_LIBRARY 前
LOCAL_SHARED_LIBRARIES := liblogger
#——— 結(jié)束添加 ———
					
3,AndroidManifest.xml 配置

Android 應(yīng)用的可以通過 AndroidManifest.xml 修改一些參數(shù)定義。包括應(yīng)用ID與渠道定義,以及 SDK 基本權(quán)限定義。

(1) Meta-Data
						
<meta-data android:name="TT_APPID" android:value="XXXXXXXXXXXXXXXX" />
<meta-data android:name="TT_CHANNEL" android:value="渠道名稱" />
					

TT_APPID:32字符串,用來定位該應(yīng)用程序的唯一性

TT_CHANNEL:字符串,用來標(biāo)注應(yīng)用的推廣渠道

<meta-data ... /> 標(biāo)簽需放在 <application> 標(biāo)簽內(nèi)

(2) 權(quán)限
						
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
					

INTERNET:允許程序聯(lián)網(wǎng)來發(fā)送統(tǒng)計(jì)數(shù)據(jù)

READ_PHONE_STATE:用來獲取手機(jī)設(shè)備的通信運(yùn)營商信息

ACCESS_NETWORK_STATE:用來獲取設(shè)備的網(wǎng)絡(luò)類型(2G/3G/4G/WiFi等)

ACCESS_WIFI_STATE:用來獲取設(shè)備的MAC地址

WRITE_EXTERNAL_STORAGE:用來保存唯一信息

<uses-permission ... /> 標(biāo)簽需放在 <application> 標(biāo)簽外

Android SDK 初始化

定義
void init (Context context, String appId, String appChannel);

Android 下通常在 第一個(gè) Activity 的 onCreate() 中調(diào)用初始化接口:


import com.tianti.AppLogger;

public class MainActivity extends Activity {
    ...
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	...
    	AppLogger.init(this, appId, appChannel);
    	...
    }
    ...
}
					

context: 當(dāng)前的 Activity

appId: 應(yīng)用的唯一標(biāo)識(shí),在天梯游戲統(tǒng)計(jì)后臺(tái)創(chuàng)建應(yīng)用時(shí)自動(dòng)生成。具體詳見:獲取 APPKEY

appChannel: 應(yīng)用分發(fā)渠道名 (iOS 版本通常指定為 "AppStore")

功能

初始化數(shù)據(jù)統(tǒng)計(jì)服務(wù)

用法

appId 和 appChannel 通常在 AndroidManifest.xml 中指定,特殊情況下也可以直接通過 init 接口指定。init 接口優(yōu)先于 AndroidManifest.xml 中的定義。

						
<manifest …… >
……
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application …… >
……
<meta-data android:name="TT_APPID" android:value="XXXXXXXXXXXXXXXX" />
<meta-data android:name="TT_CHANNEL" android:value="渠道名稱" />
</application>
</manifest>
					

確保在程序啟動(dòng)的時(shí)候調(diào)用初始化接口,僅在第一次調(diào)用時(shí)有效。

通常在 第一個(gè) Activity 的 onCreate() 中調(diào)用初始化接口。

如果需要臨時(shí)禁用天梯游戲統(tǒng)計(jì)相關(guān)服務(wù),不需要逐一注釋相關(guān)代碼,只需要注釋掉 init 函數(shù)調(diào)用,天梯游戲統(tǒng)計(jì) 將不會(huì)記錄,保存,傳輸任何數(shù)據(jù),所有接口調(diào)用直接忽略

基本事件

啟動(dòng)應(yīng)用 onStart
定義
void onStart ();
功能

應(yīng)用啟動(dòng)事件

用法

用于當(dāng)應(yīng)用啟動(dòng)或從后臺(tái)切換到前臺(tái)時(shí)

通常在 Activity::onResume 事件中調(diào)用

通過 onStart 接口可以獲得應(yīng)用的 新增,活躍,啟動(dòng),安裝,升級(jí) 等等各種基本數(shù)據(jù)。如圖:

onStart 接口實(shí)例圖
如果沒有正確調(diào)用 onStart 接口,本次啟動(dòng)之后的所有事件接口都無效,必須先正確調(diào)用 onStart 接口
退出應(yīng)用 onEnd
定義
void onEnd ();
功能

應(yīng)用退出事件

用法

用于當(dāng)應(yīng)用退出或退到后臺(tái)時(shí)

通常在 Activity::onPause 事件中調(diào)用

通過 onEnd 接口,可以統(tǒng)計(jì)應(yīng)用的使用時(shí)長等各種數(shù)據(jù)。如圖:

onEnd 接口實(shí)例圖

如果是徹底退出應(yīng)用(雙擊 Back 按鍵退出),請(qǐng)使用 onExit 事件接口

如果退出時(shí)沒有正確調(diào)用onEnd(或onExit) 接口,下次啟動(dòng)時(shí),會(huì)發(fā)現(xiàn)一次異常(退出)

徹底退出應(yīng)用 onExit
定義
void onExit ();
功能

徹底退出應(yīng)用的事件

用法

Back 按鍵退出應(yīng)用(System.exit, Process.Kill),用 onExit 強(qiáng)制聲明退出整個(gè)應(yīng)用。

onExit 與 onEnd 的區(qū)別在于不會(huì)根據(jù)間隔時(shí)間參數(shù)判斷是否與下次啟動(dòng)事件合并,并且會(huì)自動(dòng)關(guān)閉本次啟動(dòng)中所有沒有關(guān)閉的關(guān)卡和頁面。

現(xiàn)在可以登錄 天梯游戲統(tǒng)計(jì) 后臺(tái),然后運(yùn)行您的游戲,即可實(shí)時(shí)看到當(dāng)前啟動(dòng)游戲的記錄。實(shí)時(shí)心跳數(shù)據(jù),如圖:

運(yùn)行游戲測試

恭喜,基本的統(tǒng)計(jì) SDK 已經(jīng)接入完成!

如果您的項(xiàng)目是關(guān)卡類型游戲或者需要統(tǒng)計(jì)分析移動(dòng)應(yīng)用的具體頁面數(shù)據(jù),您可以繼續(xù)接入 “關(guān)卡與頁面”。

初次接入天梯游戲統(tǒng)計(jì) SDK 建議開啟調(diào)試信息輸出接口 “setDebugLog

關(guān)卡與頁面

關(guān)卡或頁面開始 onSubStart
定義
void onSubStart (const char* name);
功能

進(jìn)入一個(gè)關(guān)卡或頁面

用法

在進(jìn)入一個(gè)關(guān)卡或頁面時(shí),調(diào)用 onSubStart 接口

onSubStart 事件接口可以幫助統(tǒng)計(jì)系統(tǒng)獲得關(guān)卡 新增用戶,活躍用戶,啟動(dòng)次數(shù),進(jìn)入次數(shù),離開次數(shù),滯留人數(shù),最大關(guān)卡,最后關(guān)卡 等各種指標(biāo)數(shù)據(jù)。如圖:

onSubStart 實(shí)例圖

頁面可以嵌套,但不可以交叉。

onSubStart 的第一個(gè)參數(shù) stage 是關(guān)卡的名稱,用版本號(hào)的形式,例如 “1”, “2”, “2.1”, “2.2”, … 。如果是字母開始的名稱(例如:“MainScene”),將作為頁面統(tǒng)計(jì)。

關(guān)卡或頁面結(jié)束 onSubEnd
定義
void onSubEnd (const char* name);
功能

退出指定關(guān)卡或頁面

用法

在退出一個(gè)關(guān)卡或頁面時(shí),調(diào)用 onSubEnd 接口

onSubEnd 必須與 onSubStart 匹配

onSubEnd 不能用 STAGE_LAST 參數(shù),必須指定和對(duì)應(yīng) onSubStart 一樣的關(guān)卡名稱

關(guān)卡過關(guān)或失敗 onPassFail
定義
void onPassFail (bool bPass);
功能

過關(guān)或失敗

用法

關(guān)卡過關(guān)或失敗時(shí),立即調(diào)用 onPassFail 接口

onPassFail 在 onSubStart 與 onSubEnd 之間調(diào)用

onPassFail 事件接口可以幫助統(tǒng)計(jì)系統(tǒng)獲得關(guān)卡的難度等各種細(xì)節(jié)信息,例如,過關(guān)時(shí)間,失敗時(shí)間,難度 等數(shù)據(jù)

關(guān)卡過關(guān)失敗數(shù)據(jù)對(duì)于分析關(guān)卡數(shù)據(jù)非常有意義,強(qiáng)烈建議開發(fā)者及時(shí)并正確調(diào)用 onPassFail 接口

關(guān)卡與頁面子事件

所有子事件缺省都算在最后關(guān)卡中(STAGE_LAST)

如果需要把子事件計(jì)算到特定關(guān)卡或頁面,請(qǐng)指定子事件中的 stage 參數(shù)

現(xiàn)金購買 onBuy
定義
void onBuy (const char* payService, const char* item, int count, float value, const char* stage = STAGE_LAST);
功能

現(xiàn)金購買虛擬幣, onBuy 事件接口提交的數(shù)據(jù),將作為收入數(shù)據(jù),在后端報(bào)表中用各種收入圖表展現(xiàn)。

用法

當(dāng)用現(xiàn)金進(jìn)行購買時(shí),請(qǐng)調(diào)用 onBuy 事件接口

onBuy 事件缺省統(tǒng)計(jì)到最后關(guān)卡中,所以你可以看到各個(gè)關(guān)卡的各種與收入相關(guān)的數(shù)據(jù),如,收入,新增付費(fèi)用戶,活躍付費(fèi)用戶,當(dāng)天購買用戶

payService: 支付服務(wù)類型,例如:支付寶, paypal, appstore, …

item: 購買的項(xiàng)目

count: 購買數(shù)量,通常是1

value: 購買總價(jià)

stage: 發(fā)生事件時(shí)的關(guān)卡位置,缺省為最后關(guān)卡(STAGE_LAST)

虛擬貨幣交易 onExchange
定義
void onExchange (const char* item, int count, const char* stage = STAGE_LAST);
功能

虛擬幣兌換為道具

用法

數(shù)據(jù)分析人員可以觀察到各個(gè)關(guān)卡的兌換次數(shù),兌換項(xiàng)目等詳細(xì)數(shù)據(jù),以及各個(gè)數(shù)據(jù)的分布狀況

item: 兌換的項(xiàng)目

count: 兌換數(shù)量,通常是1

stage: 發(fā)生事件時(shí)的關(guān)卡位置,缺省為最后關(guān)卡(STAGE_LAST)

道具使用 onUse
定義
void onUse (const char* item, int count, const char* stage = STAGE_LAST);
功能

使用道具或點(diǎn)數(shù)

item: 使用的物品(或點(diǎn)數(shù))名稱,例如道具名稱

count: 使用的物品的數(shù)量

stage: 使用的位置,關(guān)卡或頁面名稱

收集 onCollect
定義
void onCollect (const char* item, int count, const char* stage = STAGE_LAST);
功能

收集點(diǎn)數(shù)/道具

item: 收集的物品(或點(diǎn)數(shù))名稱,例如道具名稱

count: 收集的物品的數(shù)量

stage: 收集的位置,關(guān)卡或頁面名稱

獎(jiǎng)勵(lì) onReward
定義
void onReward (const char* item, int count, const char* stage = STAGE_LAST);
功能

獎(jiǎng)勵(lì)虛擬幣或道具

用法

發(fā)生獎(jiǎng)勵(lì)行為時(shí),立即調(diào)用 onReward 接口

item: 獎(jiǎng)勵(lì)的物品(或點(diǎn)數(shù))名稱,例如道具名稱

count: 獎(jiǎng)勵(lì)的物品的數(shù)量

stage: 獎(jiǎng)勵(lì)的位置,關(guān)卡或頁面名稱

分享 onShare
定義
void onShare (const char* service, const char* item, const char* stage = STAGE_LAST);
功能

分享到社交服務(wù)上

用法

當(dāng)用戶進(jìn)行分享操作時(shí),立即調(diào)用 onShare 事件接口

service: 分享服務(wù)的名稱,例如,weibo, qq, weixin, …

item: 分享的項(xiàng)目名稱

stage: 分享的位置,關(guān)卡或頁面名稱

產(chǎn)出與消耗(游戲平衡) onBalance
定義
void onBalance (const char* name, const char* item, int value, const char* stage = STAGE_LAST);
功能

游戲內(nèi)虛擬貨幣的產(chǎn)出與消耗數(shù)據(jù)分析,通過產(chǎn)出與消耗可以觀察游戲平衡情況。

用法

name 用 +,- 符號(hào)前綴,聲明是產(chǎn)出或消耗。

玩家分享獎(jiǎng)勵(lì): onBalance ("+寶石", "獎(jiǎng)勵(lì)", 100);

玩家購買時(shí)裝: onBalance ("-寶石", "時(shí)裝A", 200);

升級(jí)事件(玩家/角色/寵物) onLevelUp
定義
void onLevelUp (const char* name, const char* oldLevel, const char* newLevel, const char* stage = STAGE_LAST);
功能

玩家/角色/寵物的等級(jí)變化事件,統(tǒng)計(jì)玩家等級(jí)分布

用法

級(jí)別(oldLevel, newLevel)建議用版本號(hào)形式

自定義事件 onEvent
定義
void onEvent (const char* name, const char* stage = STAGE_LAST);
功能

用戶自定義事件

用法

自定義事件將以列表形式羅列出來,并顯示最近幾天的自定義事件變化

自定義事件可以是一個(gè)簡單的名稱,例如 dm_show,也可以是包含 / 的多級(jí)名稱,例如 main/dm_show, main/dm_close, …

對(duì)于 main/dm_show 形式的事件,在統(tǒng)計(jì)報(bào)表中將把所有 main/ 開頭的時(shí)間一起對(duì)比顯示。

所以如果想對(duì)比觀察一組事件,可以給這些事件一個(gè)一樣的分組名稱作為前綴,并用 / 分隔。

事件列表:

onEvent 實(shí)例圖

相同前綴的事件之間對(duì)比:

onEvent 實(shí)例圖

在線參數(shù)

啟用在線參數(shù)
定義
void enableOnlineConfig ();
功能

啟用在線參數(shù)同步功能,缺省不啟用在線參數(shù)功能

用法

在 init 接口后調(diào)用 enableOnlineConfig

在線參數(shù)在應(yīng)用統(tǒng)計(jì)的后臺(tái)管理,添加參數(shù)時(shí)可以指定當(dāng)前參數(shù)的有效期。

客戶端每次啟動(dòng)或者從后臺(tái)切換到前臺(tái)時(shí)自動(dòng)更新在線參數(shù),并且最小更新間隔為15分鐘。

獲取在線參數(shù)
定義
string getOnlineConfig (string key, string defaultValue="");
功能

獲得某個(gè)在線參數(shù)的具體數(shù)據(jù),如果沒有指定,返回 defaultValue

用法

先調(diào)用 enableOnlineConfig,然后可以任意多次調(diào)用 getOnlineConfig

服務(wù)器可以指定在線參數(shù)的 key 和 數(shù)據(jù),類型由客戶端自己處理

服務(wù)器端可以指定在線參數(shù)的有效期,如果在有效期之外,相當(dāng)于服務(wù)器沒有定義該參數(shù),返回缺省值

存量數(shù)據(jù)統(tǒng)計(jì)

清除存量數(shù)據(jù)
定義
void clearStatus();
功能

清除所有存量數(shù)據(jù)

在需要清除所有存量數(shù)據(jù)時(shí)調(diào)用
設(shè)置存量數(shù)據(jù)
定義
void setStatus(const char* key, int value, bool bAutoConvert = true);
功能

設(shè)置存量數(shù)據(jù),服務(wù)器端將對(duì)存量數(shù)據(jù)自動(dòng)分區(qū)間統(tǒng)計(jì),或根據(jù)指定的區(qū)間統(tǒng)計(jì)

例如:玩家當(dāng)前有多少寶石,用了多少寶石,收集了多少寶石等等這類長期累積的數(shù)據(jù)可以通過 setStatus 的接口統(tǒng)計(jì)。

用法

通常在 init 之后盡快調(diào)用 setStatus 接口,把客戶端的累計(jì)存量數(shù)據(jù)匯報(bào)給服務(wù)器

存量數(shù)據(jù)每天第一次啟動(dòng)的時(shí)候提交到服務(wù)器

存量數(shù)據(jù)設(shè)置后會(huì)保存下來,下次啟動(dòng)如果沒有更新,自動(dòng)使用之前設(shè)置的數(shù)據(jù),除非重新設(shè)置或clearStatus

通常在應(yīng)用啟動(dòng)后,客戶端持續(xù)存量數(shù)據(jù)加載后立即調(diào)用 AppLogger::setStatus 接口

持續(xù)狀態(tài)變更時(shí)也立即調(diào)用 AppLogger::setStatus 接口

SDK 在每天第一次啟動(dòng)時(shí)自動(dòng)同步數(shù)據(jù)到服務(wù)器,不會(huì)導(dǎo)致數(shù)據(jù)重復(fù)統(tǒng)計(jì)

開發(fā)者

啟用錯(cuò)誤統(tǒng)計(jì)
定義
void enableCrashReport();
功能

啟用錯(cuò)誤統(tǒng)計(jì),捕捉應(yīng)用中發(fā)生崩潰時(shí)的堆棧信息,用于定位程序中引起錯(cuò)誤的代碼,缺省為不啟用崩潰統(tǒng)計(jì)

用法

在 init 接口之后調(diào)用 enableCrashReport

需要把其他統(tǒng)計(jì)服務(wù)的錯(cuò)誤收集功能關(guān)閉,例如:

友盟:setCrashReportEnabled

TalkingData:setExceptionReportEnabled

日志輸出設(shè)置
定義
void setDebugLog (int mode, int level);
功能

調(diào)試信息輸出控制

用法

mode 與 level 具體定義:

							
#define DEBUG_OFF       0    //不輸出調(diào)試信息
#define DEBUG_LOGCAT    1    //輸出到 logcat(用于聯(lián)機(jī)調(diào)試)
#define DEBUG_LOGFILE   2    //輸出到 文件(applogger.log), 用于脫機(jī)調(diào)試
#define DEBUG_LOGALL    3    //輸出到 logcat 和 文件(applogger.log)

#define DEBUG_LEVEL_VERBOSE    0    //輸出所有級(jí)別調(diào)試信息
#define DEBUG_LEVEL_INFO       1    //輸出INFO級(jí)別以上調(diào)試信息
#define DEBUG_LEVEL_WARN       2    //輸出WARN級(jí)別以上調(diào)試信息
#define DEBUG_LEVEL_ERROR      3    //輸出ERROR級(jí)別以上調(diào)試信息
					
開發(fā)者可以使用 AppDebug::info, AppDebug::warn, AppDebug::error 等接口輸出調(diào)試信息到指定輸出上

其他

啟動(dòng)間隔控制參數(shù)
定義
void setSessionInterval (int v);
功能

設(shè)置合并間隔,當(dāng)上次退出時(shí)間與本次啟動(dòng)時(shí)間間隔小于該參數(shù)所指定的值時(shí),合并上次與本次啟動(dòng)

為與其他統(tǒng)計(jì)工具保持一致,缺省情況下,在iOS 下間隔時(shí)間為0(不合并),Android 下間隔時(shí)間為30秒
聯(lián)網(wǎng)控制
定義
void setOnline (bool online);
功能

一般僅用于小范圍測試時(shí)(如,玩家輸入邀請(qǐng)碼才能進(jìn)入游戲)。邀請(qǐng)碼驗(yàn)證通過后,才算正常初始化 SDK

setOnline 接口應(yīng)在初始化(init)之前調(diào)用。

啟動(dòng)時(shí),調(diào)用 setOnline 接口設(shè)為 false,邀請(qǐng)碼驗(yàn)證通過后,setOnline 設(shè)為 true。

玩家/用戶參數(shù)
定義
void setUser (const char* level, int age = -1, const char* gender = NULL, const char* userId = NULL, const char* userService = NULL);
功能

設(shè)置用戶信息,包括用戶級(jí)別,年齡,性別, …

SDK 接口調(diào)用檢查

						
onStart // 應(yīng)用啟動(dòng)
    onSubStart // 關(guān)卡或頁面的開始
        // 關(guān)卡中發(fā)生的事件
        onBuy, onUse, onEvent … 等事件接口
        onPassFail 關(guān)卡成功或失敗
    onSubEnd // 關(guān)卡或頁面的結(jié)束
    
    // 關(guān)卡外發(fā)生的事件
onEnd // 應(yīng)用退出,Back按鍵強(qiáng)制退出調(diào)用onExit
					

onStart 通常在 Activity::onResume 中由開發(fā)者調(diào)用。

onEnd 通常在 Activity::onPause 中由開發(fā)者調(diào)用。

onSubStart, onSubEnd 表示一個(gè)關(guān)卡/頁面的開始與結(jié)束,可以嵌套,但不能交叉。

onSubStart 的第一個(gè)參數(shù)stage是關(guān)卡名稱,用版本號(hào)的形式,例如 “1”, “2”, “2.1”, “2.2”, … 。如果是字母開始,作為頁面。

如果通過 System.KillProcess 函數(shù)退出應(yīng)用(雙擊Back按鍵退出應(yīng)用),確保調(diào)用 onExit 接口。