我们在红点push 的到达和点击的地方,都加了布点。后来功能上了线,发现,每天的点击都比到达高!

这肯定不科学。

赶紧查问题,打开程序,发红点,关闭程序,布点上传。没问题。数据部门可以收到红点啊!

从此我就觉得,不是我客户端的问题。后来也懒得排查。

后来我们老大催促我,好吧,再跟进一下。

沉迷于该问题,不能自拔,吃饭睡觉的时候,想的都是这个问题。我现在测得场景没有问题,那么到底是什么场景下有问题呢?因为用户的场景都是很复杂的。而且数据部门,给出来了某个用户的数据,每天就只有点击没有到达!

终于想到了一种情况,应用没有启动的时候,可以收到push 吗? 尝试下了,可以。那么这种情况下,布点系统是不是没有初始化? 配合测试排查,发现是有初始化的。布点是肯定打点了,那么还有什么场景,导致布点没有上报到数据部门吗?

如果这个到达布点到了,但是如果用户长时间没有启动程序,或者用户一键清理内存,把进程杀死了,就不会些写文件,因为布点系统是有缓存的,超过40条才会写文件。妈的,终于查到问题了。

vivo红点点击比到达高的问题查到原因了。因为vivo电子书没有启动的时候,可以收到红点push,这时候电子书进程会启动,同时会布点,但是布点不会写在文件里面,因为只有布点条数超过40,才会触发写文件。这种情况下,如果用户长时间没有点击电子书启动,或者用户一键清理内存,把我们进程杀死,布点就不会写到文件里面,造成遗漏。后面我们会把到达改成实时布点。前期数据请以点击为准,因为点击必达到。情况比较复杂,造成排查问题时间比较久,多有不便,敬请谅解。

总结

1.你测得这种情况下没有问题,只能说明,这种情况下没有问题。不代表代码没有问题!有问题的场景,你需要想出来!

2.问题可能很难查,但是花时间,去思考什么场景下有问题,大部分都可以找到问题的。

android开发过程中项目中遇到的坑----布点问题的更多相关文章

  1. Android中项目中各个文件夹的含义和用途详解

    1.src:存放所有的*.java源程序. 2.gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID. 3.assets:可以存放项目一些较大的资源文件,例如:图片. ...

  2. Android Studio 在项目中引用第三方jar包

    在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { ...

  3. android直接读取项目中的sqlite数据库

    最近项目中要实现android读取sqlite数据库文件,在这里先做一个英汉字典的例子.主要是输入英语到数据库中查询相应的汉语意思,将其答案输出.数据库采用sqlite3. 如图: 实现过程完全是按照 ...

  4. Android Studio修改项目中整体包名

    莫名的需求,要把之前的apk分成三个不同的apk,还要在应用市场能够上线,麻麻滴这样一听那还不要各个apk包的包名不同以及apk签名文件也不同嘛(签名文件一般也用不同,为防止上线冲突嘛).所以就亲自尝 ...

  5. Android Studio] Gradle项目中添加JNI生成文件(.so文件)

    转:http://blog.csdn.net/qiujuer/article/details/24209457 为了适应潮流使用Android Studio还是有半年多了! 对于从Eclipse迁移项 ...

  6. [Android][Android Studio] Gradle项目中加入JNI生成文件(.so文件)

    版权声明:本文作者:Qiujuer https://github.com/qiujuer; 转载请注明出处,盗版必究! ! ! https://blog.csdn.net/qiujuer/articl ...

  7. Android studio 一个项目中添加两个module遇到的bug

    1.在一个Android studio中,我添加了一个模块,然后就是各种bug 找到到R 是在module 名上面 右键 Make Module '模块名' 经过各种google 的时候发现了 htt ...

  8. Android Studio向项目中导入jar包的方法

    第一步: 切换到"Project"视图,找到app --> libs目录 第二步: 将需要导入的jar包粘贴到libs目录中,此时还不能看到jar包中的内容 第三步: 右键点 ...

  9. Android Studio Gradle项目中加入JNI so文件

    首先在Android Studio(版本号1.2.2)project的app文件夹下创建整个jni文件夹,jni文件夹里写Android.mk.Application.mk以及各类C/C++和汇编源文 ...

随机推荐

  1. Bootstrap table分页问题汇总

    首先非常感谢作者针对bootstrap table分页问题进行详细的整理,并分享给了大家,希望通过这篇文章可以帮助大家解决Bootstrap table分页的各种问题,谢谢大家的阅读. 问题1 :服务 ...

  2. Runloop理解

    看了一堂公开课,自己小结一下: Runloop: 内部有三个东东:(Source, Timer, Observer) 作用/本质:1.死循环 (为app 保活): 2.监听处理事件 Timer 理解: ...

  3. 【转】Dalvik虚拟机的启动过程分析

    在Android系统中,应用程序进程都是由Zygote进程孵化出来的,而Zygote进程是由Init进程启动的.Zygote进程在启动时会创建一个Dalvik虚拟机实例,每当它孵化一个新的应用程序进程 ...

  4. 融云SDK:获取用户Token的方法

    融云SDK查看ServerAPI里面有个获取Token的方法,本以为只要传三个参数就可以.后来发现,在请求头有几个必须要传的参数,否则服务器返回401(未授权).拿获取Token接口为例子 如图所示, ...

  5. 随机森林算法-Deep Dive

    0-写在前面 随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器.该分类器最早由Leo Breiman和Adele Cutler提出.简单来说,是一种bagging的思想,采用bootstra ...

  6. Docker 安装tomcat7

    [root@VM_0_7_centos ~]# docker pull tomcat:7-jre7 [root@VM_0_7_centos ~]# docker run -di --name=tomc ...

  7. Hive中使用LZO

    hive 中使用lzo 1 启动hive 错误Exception in thread "main" java.lang.NoClassDefFoundError: org/apac ...

  8. notepad++括号自动补全插件: XBracket Lite

    1.4.5.1. 通过XBracket Lite实现括号的自动补全 先去打开相应的设置: 再根据自己的需要去设置: 其中解释一下相应的选项的含义: Treat'' as brackets 把单引号', ...

  9. 发布Android程序

    这个选项的意思是说,要使用.NET 2.0的完整版本,而非其子集. 下午发布Apk,一直报错,解决好了,忘记选这个了,以前都记得,明天再去公司发布去

  10. Spring Boot学习笔记(二二) - 与Mybatis集成

    Mybatis集成 Spring Boot中的JPA部分默认是使用的hibernate,而如果想使用Mybatis的话就需要自己做一些配置.使用方式有两种,第一种是Mybatis官方提供的 mybat ...