我们在红点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. 统计一段文章的单词频率,取出频率最高的5个单词和个数(python)

    练习题:统计一段英语文章的单词频率,取出频率最高的5个单词和个数(用python实现) 先全部转为小写再判定 lower() 怎么判定单词? 1 不是字母的特殊字符作为分隔符分割字符串 (避免特殊字符 ...

  2. python图片黑白化

    #!/usr/bin/env python #-*- coding:utf-8 -*- from PIL import Image im = Image.open(r"C:\Users\wa ...

  3. note04-计算机网络

    4.WLAN无线局域网(wareless local area network) IEEE802.11无线以太网协议标准 基础服务集合BSS 基站AP 服务服务集合标识SSID 即wifi名 分配系统 ...

  4. 用户级线程demo

    http://blog.csdn.net/dabing69221/article/details/17426953 前言: 前几天复习了一下多线程,发现有许多网上讲的都很抽象,所以,自己把网上的一些案 ...

  5. mybais学习记录一——入门程序

    一.传统连接数据库和执行sql的不足 1.数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能. 设想:使用数据库连接池管理数据库连接. 2. ...

  6. HTTP请求方式中8种请求方法(简单介绍)

    简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的.当我们没有指定端口访问时,浏览器会 ...

  7. 消息中间件JMS(三)

    1. Spring整合JMS 1.1消息生产者 创建工程springJMS_producer,并在pom文件中引入SpringJms .activeMQ以及单元测试相关依赖 <propertie ...

  8. Mvc5 表单和HTML辅助方法

    ①表单的使用 在WebFrom里面你创建一个页面,页面上就会出<from></from>. 1,action和method属性 action表示目的,method表示表单传值方 ...

  9. Xcode DeviceSupport

    问题:Could not locate device support files. This iPhone 6s is running iOS 12.1 (16B5059d), which may n ...

  10. linux网络相关配制及命令

    1.虚拟机配制 查看ip: ip addr 配制网卡(读者可以忽略): 编辑虚拟网络编辑器,修改子网IP 查看ip,输入ip addr 开启网络:ifup eth0  关闭网络:ifdown eth0 ...