Skip to content
王集鹄 edited this page Sep 3, 2013 · 7 revisions

#API

核心API

初始化 init()

/**
 * 初始化NLog
 * @param context 上下文
 * @param params 参数集合
 */
public void init(Context context, Object... params)

params 说明

参数 说明 单位 默认值 取值范围
ruleUrl 云端策略存放的路径 null
ruleExpires 策略文件过期时间 2
childPackages 主动打开的第三方应用集 String
onlywifi 只在wifi环境下发送 bool false
sendMaxLength 单次发送最大的包长度 KB 200 2-500
sendInterval 重发数据周期 120 1-600
sendIntervalWifi 在wifi环境下的重发周期 60 1-600
sessionTimeout 会话超时时间 30 30-120
storageExpires 离线数据过期时间 10 2-30
sampleRate 各个Tracker的抽样率 浮点数 [1...] 0-1

例如

NLog.init(this, 
    "ruleUrl=", "http://hunter.duapp.com/nlog/demo.rule.js", // 策略文件存放地址
    "ruleExpires=", "5", // 策略文件失效时间,5天
    "sampleRate=", NLog.buildMap("pv=", 1, "speed=", 0.5) // pv全样本、speed抽50%
);

执行采集命令 cmd()

    /**
     * 执行命令,调用简单,具有容错性
     * @param cmd 命令,"<追踪器名>.<方法名>"
     * @param params 参数列表
     * @return 返回get命令结果
     */
    public Object cmd(String cmd, Object... params) 

详细接口文档参考:api文档

cmd 说明

参数 说明 备注
"start" 开始追踪器
"set" 设置字段
"get" 获取字段
"send" 发送数据

cmdstart 说明

参数 说明 备注
"postUrl" 日志服务器地址
"protocolParameter" 控制字段是否发送和简写

cmdsend 说明

参数 说明 备注
"appview" 激活
"event" 事件 category,action,label,value
"timing" 耗时 category,var,value,label
"exception" 异常 threadName,description,fatal

例如

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    TelephonyManager tm = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
    deviceId = tm.getDeviceId();
    
    if (applicationContext == null) { // 初始化 // 注意onCreate可能被调用多次,这个判断是必须的
        applicationContext = this.getApplicationContext();
        NLog.init(this, 
                "ruleUrl=", "http://hunter.duapp.com/nlog/demo.rule.js", // 策略文件存放地址
                "ruleExpires=", 5 // 策略文件失效时间 // 单位:天
        );
        
        NLog.cmd("pv.start",
                "postUrl=", "http://hunter.duapp.com/command/?command=nlog-post&channel=demo",
                "cuid=", deviceId
        );
        
        NLog.on("createSession", new NLog.EventListener() {
            @Override
            public void onHandler(Map<String, Object> map) {
                NLog.cmd("pv.send", "appview"); // 发送appview消息
            }
        });
    }
    NLog.follow(this);
    ...
}

追踪Activity生命周期 follow()

Activity生命周期

/**
 * Activity生命周期发生改变 需要在每个Activity的onResume()和onPause()方法中调用,监听session变化
 * 能够追踪的方法有:onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart
 */
public static void follow(Context context)

例如

@Override
protected void onPause() {
    super.onPause();
    NLog.follow(this);
}

@Override
protected void onResume() {
    super.onResume();
    NLog.follow(this);
}

标准事件

事件名 说明 备注
createSession 会话启动时触发
destroySession 会话销毁时触发
follow activity生命周期变化
report 数据上报时触发 可对上报数据加工
upgrade 应用升/降级 应用版本号变化

Clone this wiki locally