android手机打开adb端口,adb端口占用与View Hierarchy不能启动的原因

View

Hierarchy不能启动的原因

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

中的一段:

1

public boolean startViewServer(int port)

{

2

if (isSystemSecure())

{

3

return false;

4

}

5

6

if (!checkCallingPermission(Manifest.permission.DUMP,"startViewServer"))

{

7

return false;

8

}

9

....

检验一台手机是否开启了View Server的办法为:

adb

shell service call window 3

若返回值是:Result: Parcel(00000000 00000000 ‘……..’)” 说明View

Server处于关闭状态

若返回值是:Result: Parcel(00000000 00000001 ‘……..’)” 说明View

Server处于开启状态

若是一台可以打开View Server的手机(Android开发版手机 、模拟器or

按照本帖步骤给系统打补丁的手机),我们可以使用以下命令打开View Server:

adb

shell service call window 1 i32 4939

使用以下命令关闭View Server:

adb

shell service call window 2 i32 4939

如若不行可参考以下2篇文章:

adb端口被占用问题(PS:除一下可能,还有一种原因可能是系统环境变量中的adb.exe路径多个导致与eclipse对应的android

sdk platform-tools adb不一致)

1:今天调试android的时候发现一个诡异的问题

C:\Users\xxxx>adb start-server

adb server is out of date. killing...

ADB server didn't ACK

* failed to start daemon *

adb 不管执行 shell devices 还是logcat 都会报错

adb server is out of date. killing...

究其源就是adb

server没启动

到stackoverflow上查了一下 经过分析整理如下:

C:\Users\xxxx>adb nodaemon server

cannot bind 'tcp:5037'

原来adb

server 端口绑定失败

继续查看到底是哪个端口给占用了

C:\Users\xxxxxx>netstat -ano | findstr "5037"

TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 4236

TCP 127.0.0.1:5037 127.0.0.1:49422 ESTABLISHED 4236

TCP 127.0.0.1:49422 127.0.0.1:5037 ESTABLISHED 3840

打开任务管理器kill掉4236 这个进程。ok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值