AudienceNetwork 引发的惨案

今天临近发布,QA的同事报了很多诡异的bug —— 海外版的。一样的代码,国内版没有问题。

国内版和海外版的主体代码都在一起,而且出问题的部分也没有做拆分,所以运行效果应该完全一样!

但是表现出来的现象就是,海外版不行。

我跟了一下出问题的代码,发现,有的 AsyncTask.doInBackground 就是死活不执行。所以猜想,是不是海外有些代码阻塞了系统的 AsyncTask 的默认线程。

在 Eclipse 里,我还知道是在 DDMS 里查看,但,现在刚转 Android Studio 没多久,不太熟悉。

随便点了下这个相机的图标 ,应该是线程快照吧。点过几次之后

发现,有个 AsyncTask 一直是 runanble 状态,而且是阻塞在了 socket 的 connect 函数上。是在  com.facebook.ads.internal.http.h.doInBackground()  里调用的。再上层的类就看不出来了。

我们试过几次之后发现,确实是禁用了 facebook 广告后,其他功能就正常了。当然,如果手机本身可以连接上facebook的服务器的话,app 的表现也是非常正常的。

时间: 04-29

AudienceNetwork 引发的惨案的相关文章

一道题引发的惨案

昨天在一个cocos2d-x的群里,有群友发了一个问题求答案,当时自已也一下子没想到什么好的写法,这时候有个群友写了一个比较少见的代码方法,当时一看到这代码,我有一种如糊灌顶的感受,因为自已平时基本没用这种写法,今日在别的群,我就发了这道题让大家讨论一下,结果没想到,引发了各种争吵和讨论,有写得不好却自以为是的,有写得好却看不起别人的写法,有写得很好却十分低调的,十分精彩,也算是为群里热闹了一下气氛,QQ群也变成了社会市井的一个浓缩了,呵呵. 以下贴上问题和昨天那位群友写的代码,我觉得精彩的地方

CSDN日报20170301——《一次dns缓存引发的惨案》

[程序人生] 一次dns缓存引发的惨案 作者:纯洁的虫子 时间2015年的某个周六凌晨5点,公司官方的QQ群有用户反馈官网打不开了,但有的用户反馈可以打开,客服爬起来自己用电脑试了一下没有问题,就给客户反馈说,可能是自己网络的问题,请过会在试试.早点8点,越来越多的用户反馈官网无法打开,并且有部分用户开发反馈app也打不开了,客服打电话叫起了还在梦乡中的我. -- 点此阅读全文 [Android 开发] Android UI性能优化 检测应用中的UI卡顿 作者:鸿洋 在做app性能优化的时候,大

一次dns缓存引发的惨案

时间2015年的某个周六凌晨5点,公司官方的QQ群有用户反馈官网打不开了,但有的用户反馈可以打开,客服爬起来自己用电脑试了一下没有问题,就给客户反馈说,可能是自己网络的问题,请过会在试试.早点8点,越来越多的用户反馈官网无法打开,并且有部分用户开发反馈app也打不开了,客服打电话叫起了还在梦乡中的我. 分析定位 被客服叫起来之后,一脸懵逼,不知道什么情况,给客服回复,知道了,立刻排查,待会有消息及时沟通.用凉水洗了一把脸清醒了一下,立刻根据经验回忆这两天生产投产的情况:上线了XX模块,不影响.修

js中this作用域引发的惨案

function MultiTimeOut(count, timer, cb){ var c = count > 1 ? count : 1 var s = false this.run = function(){ if(c > 0 && !s){ cb() c-- setTimeout(this.run, timer) } }   this.stop = function(){ s = true } this.reset = function(){ c = 1 s = fal

第十篇 面向对象的程序设计

第十篇 面向对象的程序设计 阅读目录 一 面向对象的程序设计的由来 二 什么是面向对象的程序设计及为什么要有它 三 类和对象 3.1 什么是对象,什么是类 3.2 类相关知识 3.3 对象相关知识 3.4 对象之间的交互 3.5 类名称空间与对象/实例名称空间 3.6 小结 四 继承与派生 4.1 什么是继承 4.2 继承与抽象(先抽象再继承) 4.3 继承与重用性 4.4 组合与重用性 4.5 接口与归一化设计 4.6 抽象类 4.7 继承实现的原理(继承顺序) 4.8 子类中调用父类方法 五

CSDN日报20170303——《百亿互金平台救火故事》

[程序人生]百亿互金平台救火故事 作者:纯洁的虫子 一直以来总是想以什么方式去记录下自己在互金行业的这段经历,趁着自己还记得清楚,还能找到一些资料原型,一方面可以分享出来供大家参考,但是更重要就是多年以后我可以根据这些文章回忆起来自己的那段激情岁月. 想了很久但一直没有实施,后来觉得应该从架构的角度来梳理一篇文章,就写了从零到百亿互联网金融架构发展史这篇文章:最后认为只有实战出来的东西以及解决问题的过程,才是工作中最宝贵的经验,应该把它分享出来,在梳理的过程中觉得有三起事故比较有代表性就整理出了

2017年2月笔记

[阿里巴巴JAVA开发手册] https://segmentfault.com/p/1210000008272934 一个复杂系统的拆分改造实践 http://www.cnblogs.com/LBSer/p/6195309.html 搭建vue+webpack+mock脚手架(一) https://segmentfault.com/a/1190000008279215 微信LazyMan笔试题的深入解析和实现 http://www.jianshu.com/p/f1b7cb456d37 蚂蚁开源的

继承实现的原理、子类中调用父类的方法、封装

一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--->A--->E--->B--->C. class E: def test(self): print('from E') class A(E): def test(self): print('from A') class B: def test(self): print('from B'

08-面向对象----J

一 面向对象的程序设计的由来 请参考:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什么是面向对象的程序设计及为什么要有它 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦