Android AIDL Service调试方法

3 篇文章 0 订阅
2 篇文章 0 订阅

问题

假设现在有A和B两个进程,它们之间通过AIDL通信,其中A注册了一个Service,B调用了该Service。而你即使在service当中打了断点,无论对A还是对B进行Debug都还是无法停在断点处。如何解决这个问题?

解决方案

环境:Android Studio 1.5

步骤1

首先定位到A的Manifest中注册Service的部分,在android:name后增加一句:

android:process=":remote"

即让A的Service成为远程可访问的。

步骤2

让A首先在机器上运行。这时候,进程列表只会增加一个com.example.A

步骤3

打开Attach debugger to Android process,位置在这里:
position
在这里可以查看目前在机器上运行的进程。现在应该只有com.example.A(系统进程不算)

步骤4

这时候,先运行B,有出错也不要紧。重要的是让com.example.A:remote进程运行起来,它就是B所调用的A的远程服务(是A提供的)。可以在Attach debugger to Android process处确认该进程已启动。

步骤5

最重要的一步,再次打开Attach debugger to Android process,选择com.example.A:remote然后确认。这时候,在A的Service类中你想要debug的地方打上断点。

步骤6

对B进行debug。这时候,你会发现系统就会停在断点处了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值