cobub razor 安装及使用
server端安装及配置
apache2 + Mysql5.7 + php7 + redis
参见:http://docs.cobub.com/pages/viewpage.action?pageId=884864
可能需要额外安装:
apt-get install php-mysqlnd
apt-get install php-mbstring
安装完成后创建新的App并获取其app key。
其它注意点
安装razor之前需要先配置sql_mode,set @@SET sql_mode='',否则会有时间格式问题和only_full_groupby的异常(存储过程报错)。
可选配置redis,配置后将enable实时分析功能。
| If you want to use Redis to improve the performance. Config redis to 1
| 0 = Disable Redis
| 1 = Enable Redis
|
*/
$config['redis'] = 1;
sdk编译及使用
gtihub:https://github.com/cobub/razor
其中sdk文件夹下包含了android和ios的sdk。例如将android sdk导入到Android Studio,可能需要修改gradle的版本号(4.2)。打包成class.jar文件。
android app埋点
新建android程序,将上述class.jar文件添加到工程中(参见http://blog.csdn.net/zhw1551706847/article/details/77709142 中的方法三)
对新版的android需要申请各种用户权限,直接在manifest.xml文件中配置将不起作用。
实例代码如下:
package com.example.razor.razor;
import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.wbtech.ums.UmsAgent;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
verifyStoragePermissions(this);
setContentView(R.layout.activity_main);
UmsAgent.init(this, "http://192.168.32.120/razor/web/index.php?/ums", "eda4111e55727445fe2801712abcbe4a");
UmsAgent.setDebugEnabled(true);
UmsAgent.update(this);
UmsAgent.updateOnlineConfig(this);
UmsAgent.postTags(this, "test tags");
UmsAgent.setDefaultReportPolicy(this, UmsAgent.SendPolicy.POST_NOW);
String errorinfo = "PasswordErrorException: \n\t错误信息 at com.wbtech.test_sample.CobubSampleActivity";
UmsAgent.onError(this, "PasswordErrorException", errorinfo);
System.out.println(errorinfo);
UmsAgent.onEvent(this, "gywm_GD");
UmsAgent.onEvent(this, "wdyy_YH");
UmsAgent.onEvent(this, "jrzs_GD");
UmsAgent.onEvent(this, "lxwm_GD");
UmsAgent.onEvent(this, "DLYSJ_YH");
View butt = findViewById(R.id.button_error);
butt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
UmsAgent.onEvent(MainActivity.this, "eventid");
}
});
}
private static String[] PERMISSIONS_ = {
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.GET_TASKS,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_LOGS,
Manifest.permission.INTERNET,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
};
public static void verifyStoragePermissions(Activity activity) {
// Check if we have write permission
int permission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_PHONE_STATE);
if (permission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user
ActivityCompat.requestPermissions(
activity,
PERMISSIONS_,
1
);
}
}
@Override
protected void onResume() {
super.onResume();
UmsAgent.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
UmsAgent.onPause(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
踩过的坑
- mysql5.7需要在安装之前配置sql_mode,否则安装会出错,执行定时任务存储过程也会出错;
- 埋点的app上传数据不成功,sdk中init函数调用后应当能够在clientdata中看到数据,如果没有看到,则有异常。
以上示例代码在运行后应该在服务端看到的日志如下,如果都是返回200则正常。(可以结合access.log和android端的logcat定位异常)
192.168.32.50 - - [19/Mar/2018:13:24:44 +0800] "POST /razor/web/index.php?/ums/usinglog HTTP/1.1" 200 225 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:44 +0800] "POST /razor/web/index.php?/ums/clientdata HTTP/1.1" 200 225 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:44 +0800] "POST /razor/web/index.php?/ums/appupdate HTTP/1.1" 200 325 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:44 +0800] "POST /razor/web/index.php?/ums/pushpolicyquery HTTP/1.1" 200 426 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:44 +0800] "POST /razor/web/index.php?/ums/tag HTTP/1.1" 200 225 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:44 +0800] "POST /razor/web/index.php?/ums/errorlog HTTP/1.1" 200 225 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:45 +0800] "POST /razor/web/index.php?/ums/eventlog HTTP/1.1" 200 225 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:45 +0800] "POST /razor/web/index.php?/ums/eventlog HTTP/1.1" 200 225 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:45 +0800] "POST /razor/web/index.php?/ums/eventlog HTTP/1.1" 200 225 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:45 +0800] "POST /razor/web/index.php?/ums/eventlog HTTP/1.1" 200 225 "-" "-"
192.168.32.50 - - [19/Mar/2018:13:24:45 +0800] "POST /razor/web/index.php?/ums/eventlog HTTP/1.1" 200 225 "-" "-"
- 一些bug比较难定位,可以从application/logs/log-xxxx-xx-xx.php入手
cobub razor 安装及使用的更多相关文章
- Cobub Razor
Cobub Razor - 开源移动应用统计分析平台
- Android高手速成--第二部分 工具库
主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...
- Android开源项目分类汇总
目前包括: Android开源项目第一篇——个性化控件(View)篇 包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView. ...
- android 很多牛叉布局github地址(转)
原文地址 http://blog.csdn.net/luo15309823081/article/details/41449929 点击可到达github-------https://github.c ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- 【Android】Android开源项目分类汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...
- Github上的andoird开源组件整理
http://blog.csdn.net/findsafety/article/details/50623627 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListVie ...
- Android开源项目汇总【转】
主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView ...
- GitHub上史上最全的Android开源项目分类汇总
今天在看博客的时候,无意中发现了 @Trinea 在GitHub上的一个项目 Android开源项目分类汇总 ,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫 ...
随机推荐
- crontab自动失效注意事项
若用户密码过期,用户的crontab计划任务会自动失效.重设用户密码修改时间后,crontab会自动恢复. #使用chage -l 查看用户密码过期时间 chage -l user #使用chage ...
- Java 身份证号码验证
身份证号码验证 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码 2.地址码(前 ...
- win7激活成功 但每次开机后又显示此windows副本不是正版的解决办法
进入命令行界面,输入 SLMGR -REARM 命令,点击回车 此方法只是暂时激活系统,大概4个月左右,即要使用此方法再次进行激活
- 《算法导论》——重复元素的随机化快排Optimization For RandomizedQuickSort
昨天讨论的随机化快排对有重复元素的数组会陷入无限循环.今天带来对其的优化,使其支持重复元素. 只需修改partition函数即可: int partition(int *numArray,int he ...
- centos7 卸载 jdk
################ jdk 的安装 ###########################参考:https://www.cnblogs.com/Dylansuns/p/6974272.h ...
- Mybatis Generator 生成的mapper只有insert方法
一般有两种情况 第一种是配置问题可以参考博客 http://blog.csdn.net/angel_xiaa/article/details/52474022 第二种是mysql-connector- ...
- Lock关键字
public abstract class CountBase { public abstract void Increment(); public abstract void Decreament( ...
- dagScheduler
由一个action动作触发sparkcontext的runjob,再由此触发dagScheduler.runJob,然后触发submitJob,封装一个JobSubmitted放入一个队列.然后再通过 ...
- vue.js核心最基本的功能
Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: , text: , text: , text: '随便其它什么人吃的东西' } ] }}) 蔬菜 奶酪 随便其 ...
- centos部署redis主从
安装环境 CentOS 6.5 .CentOS 7.4 主Redis:10.159.44.175 从Redis: 10.159.44.176.10.159.44.177 Redis下载和安装 在3台机 ...