android开发过程中项目中遇到的坑----布点问题
我们在红点push 的到达和点击的地方,都加了布点。后来功能上了线,发现,每天的点击都比到达高!
这肯定不科学。
赶紧查问题,打开程序,发红点,关闭程序,布点上传。没问题。数据部门可以收到红点啊!
从此我就觉得,不是我客户端的问题。后来也懒得排查。
后来我们老大催促我,好吧,再跟进一下。
沉迷于该问题,不能自拔,吃饭睡觉的时候,想的都是这个问题。我现在测得场景没有问题,那么到底是什么场景下有问题呢?因为用户的场景都是很复杂的。而且数据部门,给出来了某个用户的数据,每天就只有点击没有到达!
终于想到了一种情况,应用没有启动的时候,可以收到push 吗? 尝试下了,可以。那么这种情况下,布点系统是不是没有初始化? 配合测试排查,发现是有初始化的。布点是肯定打点了,那么还有什么场景,导致布点没有上报到数据部门吗?
如果这个到达布点到了,但是如果用户长时间没有启动程序,或者用户一键清理内存,把进程杀死了,就不会些写文件,因为布点系统是有缓存的,超过40条才会写文件。妈的,终于查到问题了。
vivo红点点击比到达高的问题查到原因了。因为vivo电子书没有启动的时候,可以收到红点push,这时候电子书进程会启动,同时会布点,但是布点不会写在文件里面,因为只有布点条数超过40,才会触发写文件。这种情况下,如果用户长时间没有点击电子书启动,或者用户一键清理内存,把我们进程杀死,布点就不会写到文件里面,造成遗漏。后面我们会把到达改成实时布点。前期数据请以点击为准,因为点击必达到。情况比较复杂,造成排查问题时间比较久,多有不便,敬请谅解。
总结
1.你测得这种情况下没有问题,只能说明,这种情况下没有问题。不代表代码没有问题!有问题的场景,你需要想出来!
2.问题可能很难查,但是花时间,去思考什么场景下有问题,大部分都可以找到问题的。
android开发过程中项目中遇到的坑----布点问题的更多相关文章
- Android中项目中各个文件夹的含义和用途详解
1.src:存放所有的*.java源程序. 2.gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3.assets:可以存放项目一些较大的资源文件,例如:图片. ...
- Android Studio 在项目中引用第三方jar包
在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { ...
- android直接读取项目中的sqlite数据库
最近项目中要实现android读取sqlite数据库文件,在这里先做一个英汉字典的例子.主要是输入英语到数据库中查询相应的汉语意思,将其答案输出.数据库采用sqlite3. 如图: 实现过程完全是按照 ...
- Android Studio修改项目中整体包名
莫名的需求,要把之前的apk分成三个不同的apk,还要在应用市场能够上线,麻麻滴这样一听那还不要各个apk包的包名不同以及apk签名文件也不同嘛(签名文件一般也用不同,为防止上线冲突嘛).所以就亲自尝 ...
- Android Studio] Gradle项目中添加JNI生成文件(.so文件)
转:http://blog.csdn.net/qiujuer/article/details/24209457 为了适应潮流使用Android Studio还是有半年多了! 对于从Eclipse迁移项 ...
- [Android][Android Studio] Gradle项目中加入JNI生成文件(.so文件)
版权声明:本文作者:Qiujuer https://github.com/qiujuer; 转载请注明出处,盗版必究! ! ! https://blog.csdn.net/qiujuer/articl ...
- Android studio 一个项目中添加两个module遇到的bug
1.在一个Android studio中,我添加了一个模块,然后就是各种bug 找到到R 是在module 名上面 右键 Make Module '模块名' 经过各种google 的时候发现了 htt ...
- Android Studio向项目中导入jar包的方法
第一步: 切换到"Project"视图,找到app --> libs目录 第二步: 将需要导入的jar包粘贴到libs目录中,此时还不能看到jar包中的内容 第三步: 右键点 ...
- Android Studio Gradle项目中加入JNI so文件
首先在Android Studio(版本号1.2.2)project的app文件夹下创建整个jni文件夹,jni文件夹里写Android.mk.Application.mk以及各类C/C++和汇编源文 ...
随机推荐
- Bootstrap table分页问题汇总
首先非常感谢作者针对bootstrap table分页问题进行详细的整理,并分享给了大家,希望通过这篇文章可以帮助大家解决Bootstrap table分页的各种问题,谢谢大家的阅读. 问题1 :服务 ...
- Runloop理解
看了一堂公开课,自己小结一下: Runloop: 内部有三个东东:(Source, Timer, Observer) 作用/本质:1.死循环 (为app 保活): 2.监听处理事件 Timer 理解: ...
- 【转】Dalvik虚拟机的启动过程分析
在Android系统中,应用程序进程都是由Zygote进程孵化出来的,而Zygote进程是由Init进程启动的.Zygote进程在启动时会创建一个Dalvik虚拟机实例,每当它孵化一个新的应用程序进程 ...
- 融云SDK:获取用户Token的方法
融云SDK查看ServerAPI里面有个获取Token的方法,本以为只要传三个参数就可以.后来发现,在请求头有几个必须要传的参数,否则服务器返回401(未授权).拿获取Token接口为例子 如图所示, ...
- 随机森林算法-Deep Dive
0-写在前面 随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器.该分类器最早由Leo Breiman和Adele Cutler提出.简单来说,是一种bagging的思想,采用bootstra ...
- Docker 安装tomcat7
[root@VM_0_7_centos ~]# docker pull tomcat:7-jre7 [root@VM_0_7_centos ~]# docker run -di --name=tomc ...
- Hive中使用LZO
hive 中使用lzo 1 启动hive 错误Exception in thread "main" java.lang.NoClassDefFoundError: org/apac ...
- notepad++括号自动补全插件: XBracket Lite
1.4.5.1. 通过XBracket Lite实现括号的自动补全 先去打开相应的设置: 再根据自己的需要去设置: 其中解释一下相应的选项的含义: Treat'' as brackets 把单引号', ...
- 发布Android程序
这个选项的意思是说,要使用.NET 2.0的完整版本,而非其子集. 下午发布Apk,一直报错,解决好了,忘记选这个了,以前都记得,明天再去公司发布去
- Spring Boot学习笔记(二二) - 与Mybatis集成
Mybatis集成 Spring Boot中的JPA部分默认是使用的hibernate,而如果想使用Mybatis的话就需要自己做一些配置.使用方式有两种,第一种是Mybatis官方提供的 mybat ...