分享

手机qq2010!8900断网的真正原因[转] - 清清宝贝的日志 - 网易博客

 chell 2011-06-18
手机qq2010!8900断网的真正原因[转]

    8900断网的真正原因
  
    2010年7月10日入手8900
  
    回家刷成香港移动的5.0 版本
  
    一开始用着挺好。
  
    可过了一会儿QQ,乐图,pushmail等等都不能用了。
  
    于是,查后台LOG。
  
    发现了一些问题:
  
    1 断网的时候,可以看到QQ2010在后台日志中记录了异常信息:调用网络函数时会出现空指针异常。BB的一个http协议类里的一个线程会返回一个空指针给所有的第三方应用程序。
  
    2 BB自带的软件一律都能上网,只有第三方应用才会断网。
  
    3 这时候如果测试网络的话发现ICMP没有回显。也就是说ping不到外围网络。
  
    根据上面现象做如下分析:
  
    1 BB 的诊断测试是通过 apn里的设置的 cmnet或cmwap 但是只有cmnet可以获得ICMP回显。
  
    2 第三方应用程序一般都是通过TCP协议访问外网。
  
    3 BB 自带的浏览器是通过SB里设置的WAP配置访问的。SB里配置的实际IP和端口不需要通过DNS。
  
    根据以上的问题。又将机器刷成4.6版进行测试。
  
    根据分析结论是第三方应用程序造成的:
  
    当手机没有信号或信号不好时,总之是不能进行网络数据访问时。第三方应用程序不断调用BB的HTTP协议类。
  
    例如
  
    1QQ2010在没有信号时会每分钟调用20次,也就是说每3秒调用一次。
  
    2 BB的HTTP协议类会不断地返回空指针异常。
  
    3 但是QQ2010并没有把调用的线程关闭掉。
  
    4 那就是说当你没有信号时,QQ2010每分钟会增加执行20个线程,那么5分钟就是100个线程。
  
    5 你在电脑上试试开100个IE浏览器,你的机器肯定完蛋了。
  
    6 所以5.0系统会做限制的,就是每个程序也许只能开有数线程。超过了就不能再开线程了。
  
    7 所以这时候你的QQ2010已经不能再开线程访问网络了。返回的全是空指针错误,也就是线程没有被创建。
  
    8QQ2010当然不能再上线了。
  
    9 所以BB内置的程序都没有这样的问题。怎么都不会断网的。
  
    10 所以你重起BB时又可以访问了,就像重起电脑一样。
  
    11 为什么4.6版没有问题呢。其实在4.6版时第三方应用程序也是在不断的调用,但是线程都会被关闭。
  
    12 因为4.6和4.5的开发平台是一样的。4.5平台已经很成熟了,开发者经验 也比较丰富,所以不会出现太多问题。
  
    13 但是开发者比较懒,还是沿用4.5的方法开发。5.0版的平台完全不一样,API都变化了很多。
  
    14 BB在开发者说明中关于访问模式在开发手册上已经建议使用5.0版的新方法。
  
    建议第三方应用程序开发者好好学学BB新的平台中应用程序进程和线程的控制方法的改变。
  
    结论:
  
    1 8900断网绝对不是硬件问题。
  
    2 绝对不是ROM问题,断网只有第三方应用才断,BB的内置软件不会断网的。
  
    3 第三方应用程序的开发者还没学会使用新平台。
  
    解决办法:
  
    建议大家暂时使用4.6版的rom。等第三方应用程序的开发人员真正按照5.0版的开发时再使用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多