dumpsys中的管道与thefuck的原理猜想

74 篇文章 1 订阅

dumpsys命令是Android中非常实用的命令,通过在dumpsys程序中发起向server端的binder调用来执行server端的dump方法,

打印出server端的相应信息。

之前的dumpsys的代码实现比较清晰,似乎是Android 6后,进行了修改,很上去复杂了不少

 

frameworks/native/cmds/dumpsys/dumpsys.cpp

 

185            int sfd[2];
186
187            if (pipe(sfd) != 0) {
188                aerr << "Failed to create pipe to dump service info for " << service_name
189                     << ": " << strerror(errno) << endl;
190                continue;
191            }
192
193            unique_fd local_end(sfd[0]);
194            unique_fd remote_end(sfd[1]);

使用了管道,把写端的fd传给了远程服务,可以从读端的fd获取数据,通过管道的中转,可以进行超时处理

 

 

thefuck工具似乎就是使用了类似的管道处理机制,获取到命令的打印信息,再把输错的命令修正过来

➜ puthon
No command 'puthon' found, did you mean:
 Command 'python' from package 'python-minimal' (main)
 Command 'python' from package 'python3' (main)
zsh: command not found: puthon

➜ fuck
python [enter/↑/↓/ctrl+c]
Python 3.4.2 (default, Oct  8 2014, 13:08:17)
...

 

https://www.jianshu.com/p/58675fdbe9e2

https://github.com/nvbn/thefuck

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值