Framework Service添加dumpsys信息输出

一、App中实现dump方法
1.在Activity中添加dump信息(使用命令:dumpsys activity com.exa.companydemo.MainActivity)

@Override
public void dump(@NonNull String prefix, @Nullable FileDescriptor fd, @NonNull PrintWriter writer, @Nullable String[] args) {
    super.dump(prefix, fd, writer, args);
    writer.append("我添加的dump内容");
    writer.flush();
}

2.在Service中添加dump信息(adb shell dumpsys activity service CarLocationService)

@Override
protected void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
    LogUtil.info("CarLocationService dump");
    try {
        mLocationService.dump(fd, args);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

二、跨进程Binder联合打印dump
1.服务端Binder重写dump方法

@Override
public void dump(FileDescriptor fd, String[] args) {
    PrintWriter pw = new PrintWriter(new FileOutputStream(fd));
    try {
        dumpInner(fd, pw, args);
    } catch (Throwable e) {
        pw.println("Exception occurred while dumping:");
        e.printStackTrace(pw);
    } finally {
        pw.flush();
    }
}

2.客户端:

private final ServiceConnection mServiceConnection = new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
        mBinder = service;
    }

    @Override
    public void onServiceDisconnected(ComponentName name) {
        mBinder = null;
    }
};

/**
 * 1.打印添加自己需要dump的信息
 * 2.调用服务端dump——打印服务dump信息
 */
private void dump(FileDescriptor fd, PrintWriter pw, String[] args){
    pw.append("客户端日志");
    pw.flush();//如果不flush可能会与服务端的dump信息有交叉
    if (mBinder != null) {
        try {
            mBinder.dump(fd, args);
        } catch (RemoteException e) {
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值