Android java调试又一好工具

定位framework中的问题,常常发现很多东西都是应用错误调用导致,通过打印堆栈能一定程度上提高定位的速度,但是调用栈遇到异步消息过程就无法很好的跟踪了,这个下面两个函数和一个log语句就非常有用了,如下:

int pid = Binder.getCallingPid();
int uid = Binder.getCallingUid();

Log.e(TAG, "methed was called by process pid "+ pid);

打印出pid之后,在cmd中执行下面两个命令“
adb shell
ps

然后找找pid对应的是哪个进程就是哪个进程调用了

另外值得注意的是:需要考虑那些只存在一段时间的进程,这些进程可能创建后,做完某件事情之后就退出了,这个时候PS的话,可能就找不到这个进程了,这个时候可以实时抓取,揪出这个调用者。




转自:http://blog.sina.com.cn/s/blog_645b74b90101fvmf.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值