A
ndroid
上的
bug
定位(
troubleshooting
)
详见软件测试小屋:
http://swverification.blog.sohu.com
对于
android
上的
bug
定位的文档很少,
因为应用程序千差万别的,
出现的问题也不尽相同,
不过也是有规律可循,
大的方向定位是可以做到的,我们对应用程上的问题可以得到相关的信息。
首先,
要对
Java
的
Throwable
比较熟悉,
因为
Android
上的应用和服务都是
Java
的代码,
它的
Error
和
Exception
都是沿用
Java
的,
比如
Error
有
AssertionError
,
VirtualMachineError
,
OutOfMemoryError
和其他的
Error
类。
Exception
有
RuntimeException
和
IOException
,
请参考相应的文档查询,
Adb
logcat
里面会把出现错误的
Error
或
Exception
打印出来。
分类
1
,
应用程序错误
,什么样子的?大家如果用过
android
手机会碰到过
xxxx process
意外停止,
Force
close
的对话框弹出来。这一般都是应用程序错误。这个过程一般有
uncaughtException,crash
(
T
AG,e
)
,
handleApplicationError
,
sendSingal(SIGQUIT),logThreadSt
acks
然后会在
/dat
a/anr/t
races.txt
追加
process
crash
信息。
举例:
11-04 08:55:37.114 W/AudioFlinger( 1032): writ
e blocked for 55 msecs
11-04
08:55:37.334
W/dalvikvm(
1103):
threadid=35:
thread
exiting
with
uncaught
exception
(group=0x2aadda08)
11-04 08:55:37.354 E/AndroidRuntime( 1103): Uncaught
handler: thread WindowManagerPolicy
exiting
due t
o uncaug
ht exception
11-04 08:55:37.374 E/AndroidRuntime( 1103): *** EXCEPTION IN SYSTEM PROCESS. System will
crash.
11-04 08:55:37.394 I/global
( 1566): Default
buffer size used in BufferedReader constructor
. It
would
be bett
er t
o be explicit
if an 8k-char buffer is required.
11-04 08:55:37.464 E/AndroidRuntime( 1103): java.lang.NullPointerException
11-04
08:55:37.464
E/AndroidRuntime(
1103):
at
android.graphics.Canvas.t
hrowIfRecycled(Canvas.java:954)