zoukankan      html  css  js  c++  java
  • APP测试要点

     
     
        app出现ANR,是什么原因导致的?
        1.主线程执行了耗时操作,比如数据库操作或网络编程
        2.其他进程(就是其他程序)占用CPU导致本进程得不到CPU时间片,
          比如其他进程的频繁读写操作可能会导致这个问题。
     
        细分的话,导致ANR的原因有如下几点:
        1.耗时的网络访问
        2.大量的数据读写
        3.数据库操作
        4.硬件操作(比如camera)
        5.调用thread的join()方法、sleep()方法、wait()方法或者等待线程锁的时候
        6.service binder的数量达到上限
        7.system server中发生WatchDog ANR
        8.service忙导致超时无响应
        9.其他线程持有锁,导致主线程等待超时
        10.其它线程终止或崩溃导致主线程一直等待。
     
     
     
     
        App出现crash原因有哪些:
        1.内存管理错误:可能是可用内存过低,app所需的内存超过设备的限制,
          app跑不起来导致App crash。
          或是内存泄露,程序运行的时间越长,所占用的内存越大,最终用尽全部内存,导致整个系统崩溃。
          亦或非授权的内存位置的使用也可能会导致App crash。
        2.程序逻辑错误:数组越界、堆栈溢出、并发操作、逻辑错误:
            e.g. app新添加一个未经测试的新功能,调用了一个已释放的指针,运行的时候就会crash。
        3.设备兼容:由于设备多样性,app在不同的设备上可能会有不同的表现。
        4.网络因素:可能是网速欠佳,无法达到app所需的快速响应时间,导致app crash。
              或者是不同网络的切换也可能会影响app的稳定性。
     
     
     
     
     
        app对于不稳定偶然出现anr和crash时候你是怎么处理的?
        方法一:app开发保存错误日志到本地
               一般app开发在debug版本,出现anr和crash的时候会自动把日志保存到本地实际的sd卡上,
            去对应的app目录取出来就可以了
     
        方法二:实时抓取
               当出现偶然的crash时候,这时候可以把手机拉到你们app开发那,
               手机连上他的开发代码的环境,有ddms会抓日志,
                   这时候出现crash就会记录下来日志。尽量重复操作让bug复现就可以了
     
     
        也可以自己开着logcat,保存日志到电脑本地
               命令:adb logcat | find "com.sankuai.meituan" >d:hello.txt
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    多线程(一)--线程的运行
    多线程(二)--锁
    守护线程与用户线程
    SWD接口
    RS485,CAN
    tcp/ip协议
    开关电源与线性稳压电源
    与gps相比,北斗的三频信号有什么优势
    射频识别技术(RFID)
    wifi发射模块芯片各个管脚功能,蓝牙和wifi信号互相干扰,2.4GHZ无线技术
  • 原文地址:https://www.cnblogs.com/dearddu/p/12456980.html
Copyright © 2011-2022 走看看