HierarchyViewer报Unable to get view server protocol的原因以及解决方法
2017-11-17 22:40
435 查看
1,为什么?
在Android的官方文档中提到:To preserve security, Hierarchy Viewer can only connect to devices running a developer version of the Android system.
即:出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器(准确地说,只有ro.secure参数等于0且ro.debuggable等于1的android系统)。Hierarchy
Viewer在连接手机时,手机上必须启动一个叫View Server的客户端与其进行socket通信。而在商业手机上,是无法开启View Server的,故Hierarchy Viewer是无法连接到普通的商业手机。
Android源码实现这一限制的地方在:
ANDROID源码根目录\frameworks\base\services\java\com\android\server\wm\WindowManageService.java
中的一段:
=====================================================================================
public boolean startViewServer(int port) {
if (isSystemSecure()) {
return false;
}
if (!checkCallingPermission(Manifest.permission.DUMP, "startViewServer")) {
return false;
}
....
2,解决方法:
安装一个开发板的Android固件,我选择的是百度云rom该rom下载地址:http://pan.baidu.com/s/1eQIII58用百度云刷机工具将rom写入手机(注意:写入之前请备份数据。)
等待一会,手机正常开机后就可以了
用adb shell service call window 3来查看
若返回值是:Result: Parcel(00000000 00000000 '........')" 说明View Server处于关闭状态
若返回值是:Result: Parcel(00000000 00000001 '........')" 说明View Server处于开启状态
安装busybox应用
设置>开发人员选项>离线日志勾选允许输出离线日志如图
相关文章推荐
- win10浏览器下载出现乱码的原因以及解决方法
- 编译qt源代码报错原因以及解决方法
- unserialize(): Error at offset 0 of 96 bytes出现的原因分析以及解决方法
- CPU使用率高的原因和解决方法以及案例分析
- 外键约束ORA-02291错误的原因以及解决方法
- java写文件时,输出不完整的原因以及解决方法close()或flush()
- 关于svchost.exe的CPU占用率过高的原因以及解决方法
- 编译报request for member '***' in something not a structure or union的原因,以及解决方法
- 编译qt源代码报错原因以及解决方法
- MySQL出现Waiting for table metadata lock的原因以及解决方法
- linux服务器出现严重故障后的原因以及解决方法
- Activity复用的时候接受不到Intent数据的原因以及解决方法
- Kernel Panic常见原因以及解决方法
- 盘点5种关于U盘故障的原因以及解决方法
- 关于Android Force Close 出现的原因 以及解决方法
- c++ kafka 客户端rdkafka报Receive failed: Disconnected问题原因以及解决方法
- java写文件时,输出不完整的原因以及解决方法
- 关于android studio log日志打印信息不全的原因以及解决方法
- c++ std::sort函数调用经常出现的invalidate operator<错误原因以及解决方法
- 发现内存不能read和written的原因以及解决方法