Android 调试方法



查看源码的调用关系


一、 查看当前堆栈
在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系
new Exception("print trace").printStackTrace();
?  使用场景,在什么情况下有效?目前发现在回调中使用第二个方法比较有效,此方法不行


二、 查看当前调用堆栈
		Map<Thread, StackTraceElement[]> ts = Thread.getAllStackTraces();
		StackTraceElement[] ste = ts.get(Thread.currentThread());
		for (StackTraceElement s : ste) {
			Log.e("Info     ", s.toString());
		}


三 使用Android 自带的TraceView工具   -   TraceView工具使用


四  Eclipse断点调试Android源码

Android的调试可以不下载完整的Android源码,并且可以不进行源码编译,仅需要Android 源码与设备或者模拟器中使用的同一套代码即可。

以上说法待验证,不过据现在了解的情况应该没问题。

不要Android 源码与设备或者模拟器代码同步,怎样验证呢?


应用APK中会包含源码的行号,调试器是通过这个行号在Android源码中找到相应的行,如果设置断点才会调试。这种说法也是待校验。

校验方式,反编译APK,查看里面是否有行号,好像是通过ANT打包有一个参数可以在打包成APK时去除行号,如果把行号去除了看是否还能调试。





资料:



查看源码的调用关系


一、 查看当前堆栈
在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系
new Exception("print trace").printStackTrace();
?  使用场景,在什么情况下有效?目前发现在回调中使用第二个方法比较有效,此方法不行


二、 查看当前调用堆栈
		Map<Thread, StackTraceElement[]> ts = Thread.getAllStackTraces();
		StackTraceElement[] ste = ts.get(Thread.currentThread());
		for (StackTraceElement s : ste) {
			Log.e("Info     ", s.toString());
		}


三 使用Android 自带的TraceView工具   -   TraceView工具使用


四  Eclipse断点调试Android源码

Android的调试可以不下载完整的Android源码,并且可以不进行源码编译,仅需要Android 源码与设备或者模拟器中使用的同一套代码即可。

以上说法待验证,不过据现在了解的情况应该没问题。

不要Android 源码与设备或者模拟器代码同步,怎样验证呢?


应用APK中会包含源码的行号,调试器是通过这个行号在Android源码中找到相应的行,如果设置断点才会调试。这种说法也是待校验。

校验方式,反编译APK,查看里面是否有行号,好像是通过ANT打包有一个参数可以在打包成APK时去除行号,如果把行号去除了看是否还能调试。





资料:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值