sensorsdata/sa-sdk-android

阅读你们的源码发现几个问题

Closed this issue · 3 comments

引言

在编写统计自己的统计sdk之前,阅读了你们的源码,由于自身项目较赶,因而没有时间给你们提pull request。因此,就建立一个issue,给你们反馈几个通过代码发现的bug。

bug

  1. 事件录入数据库发生在UI线程,比如:调用链SensorsDataAPI.trackEvent()->AnalyticsMessages.enqueueEventMessage()->DbAdapter.addJSON()
  2. 多条sql语句执行,未使用SQLite的事物操作,比如addJSON()方法,这会引起多条sql语句执行的性能问题。万一执行中断,因没有事物操作,那么数据回滚就不可能发生
  3. 统计的定时发送问题,你们当前的实现是:正常情况下,每到来一条数据,都通过Handler.sendMessageDelayed()发送,其实相当于人为的在消息队列中加入一条条延迟一定间隔时间执行的消息,那么这就容易引起消息队列数据过多或者队列过长,另外通过Handler.sendMessageDelayed()的定时是基于相对时间的。
    • 可以考虑使用ScheduledExecutorService实现定时

非常感谢您提的宝贵意见!
针对这三个问题,我们会尽快一一确认和修复。
另外,你也可以加我微信,方便与你进一步沟通:
xxxxxxxxxxx

不好意思,你的微信是xxxxxxxxxxx?微信上搜索不到

不好意思,之前关闭通过手机号搜索了。
你再试一下。