Android 基于开源Countly的App统计平台开发 [1] 结构分析

本文介绍了如何基于开源统计平台Countly构建自己的Android App统计系统。作者未采用Countly自带的服务器,而是自写了统计脚本,实现了客户端SDK的数据记录和上传,包括BeginSession、UpdateSession、EndSession和自定义Event。文章详细解析了各种记录的Json格式,并阐述了统计平台的整体结构和客户端SDK结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前提到APP统计,友盟无疑是做得最好的一家,同样类型的公司有talkingData,CNZZ(参考 app统计工具简单介绍),此外百度,AVOS等也提供了类似的服务,但是有的时候公司不愿意APP相关数据外漏,希望对于一些日志数据进行自行处理,就需要自己搭建统计平台。

Countly是国外比价有名的一款开源统计平台,Countly的历史和相关信息参考网页 Countly如是说,其包括一个node.js的server,以及Android,IOS,JS,WP和Unity的客户端SDK,并且是以实时的方式进行统计。

countly平台的简单使用可参考博客:http://blog.youkuaiyun.com/changemyself/article/details/12653151

由于我们要做的相对简单,不需要复杂的功能,因此我没有采用Countly自带的server,而是自己写了一个统计脚本(主要是没有设备去配置node.js和mongoDB,而且部分数据得和另外一个系统对接),对于数据进行入库和每日的统计。


基于Countly的统计平台结构

整体结构

图片描述
? Countly Service Management(客户端):
使框架拥有通用性,不同APP可以使用同一个SDK,Countly Service Management提供一个Android后台Service管理队列,给每个APP和其启动的Service通过Tag对应上,负责顺序唤醒当前APP对应的Service,并通过使用频率调整管理队列。
? Countly Framework(客户端):
APP统计数据的处理核心,Countly提供一个全局实例和APP里的初始化方法,同时维护EventQueue和ConnectionQueue两个事件队列。其中EventQueue维护自定义(如激活,埋点,出错)事件的记录和发送,ConnectionQueue维护APP的打开,关闭,停留时间计算等常规数据记录。
Countly通过Timer将两个Queue中的数据定时发往Server。EventQueue和ConnectionQueue同时带有本地存储功能(无需SD卡),在网络发送成功时清除本地SharedPreference记录数据。
上传时使用Post方法,每次批量上传全部记录。如果上传不成功(网络异常),则本地缓存记录数据超过一定数量(100)后,会清除较早的一半数据。
? Countly Web Interface(Server端):
测试阶段用Python搭建了简单服务器,处理Post请求。postHandler将请求数据传递给解析脚本,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值