usb 가 점용 되 었 을 때, 이러한 방법 으로 adb 무선 디 버 깅 을 진행 할 수 있 습 니 다.

다음으로 이동: http://www.cnblogs.com/shangdawei/p/4480278.html  
와 이 파이, 그물 구멍 사용 가능. 
1. 루트 권한 을 가 져 오기
만약 핸드폰 에 명령 행 도구 가 없다 면 먼저 핸드폰 끝 에 터미널 시 뮬 레이 터 를 설치 한 다음 에 터미널 에 입력 하 십시오.
  $su                                                 
  #stop adbd                                     
  #setprop service.adb.tcp.port 5555
  #start adbd  

그리고 컴퓨터 쪽 cmd 에 adb 명령 을 입력 하 십시오:
  adb connect 

이때 휴대 전 화 는 이미 컴퓨터 와 연결 되 었 습 니 다. adb devices 로 휴대 전화 가 연결 되 어 있 는 지 확인 하 세 요.
없 으 면 adb kill - server 후 다시 연결
eclipse 의 DDMS 창 으로 핸드폰 을 직접 디 버 깅 할 수 있 습 니 다.
adb 셸 에 들 어가 야 한다 면 명령 행 에 adb 셸 을 직접 입력 하 십시오.
네트워크 디 버 깅 을 닫 는 것 도 간단 합 니 다. 핸드폰 명령 에 명령 을 입력 하 십시오.
  $su                                           
  #stop adbd                               
  #setprop service.adb.tcp.port 0
  #start adbd   

2. Android 휴대폰 WiFi 디 버 깅, logcat 보기
프로젝트 개발 과정 에서 이런 장면 을 만 났 다. 특수 안 드 로 이 드 장치 에 USB 포트 가 하나 밖 에 없어 서 USB 디스크 를 마 운 트 한 후 USB 에 연결 하여 실시 간 으로 디 버 깅 할 수 없습니다.이 럴 때 장치 가 와 이 파 이 를 열 수 있다 면 와 이 파이 로 디 버 깅 할 수 있 습 니 다. 네트워크 디 버 깅 을 시작 하려 면 다음 명령 을 실행 하면 됩 니 다.
  $su                                                 
  #stop adbd                                     
  #setprop service.adb.tcp.port 5555
  #start adbd  

위 에서 완료 하면 adb 명령 을 사용 할 수 있 습 니 다:
  adb connect 192.168.1.xx//Android   ip  ;  

상기 장치 연결 컴퓨터 에서 cmd 를 실행 할 때 "stop adbd", / / adbd 닫 기 이 단계 에 문제 가 생 길 수 있 습 니 다. 실행 한 후에 USB 가 끊 겨 서 다음 열 림 명령 을 실행 할 수 없습니다. 그럼 어 떡 하지? 직접 apk 를 만 들 고 핸드폰 에 설치 해서 실행 할 생각 에 아래 의 apk 가 생 겼 습 니 다.
 1     public void excuteStartShell() {
 2         String[] commands = new String[] { 
 3                 "setprop service.adb.tcp.port 5555",//        ,       , 5554,5555    
 4                 "stop adbd",//   adbd
 5                 "start adbd",//     adbd
 6         };
 7         try {
 8             List temp = RootTools.sendShell(commands, 10, 3000);
 9             for (int i = 0; i < temp.size(); i++) {
10                 Log.i(TAG, "__This is result from root:__" + temp.get(i));
11             }
12         } catch (Exception e) {
13             e.printStackTrace();
14         }
15     }
16 
17     public void excuteStopShell() {
18         String[] commands = new String[] {
19                 "setprop service.adb.tcp.port -1",//        ,       , 5554,5555    
20                 "stop adbd",//   adbd
21                 "start adbd",//     adbd
22         };
23         try {
24             List temp = RootTools.sendShell(commands, 10, 3000);
25             for (int i = 0; i < temp.size(); i++) {
26                 Log.i(TAG, "__This is result from root:__" + temp.get(i));
27             }
28         } catch (Exception e) {
29             e.printStackTrace();
30         }
31     }

3. 인터넷 을 통 해 adb 사용
adb 의 설명 문서 에서 언급:
    “An ADB transport models a connection between the ADB server and one device    or emulator. There are currently two kinds of transports:       - USB transports, for physical devices through USB       - Local transports, for emulators running on the host, connected to         the server through TCP”
대 의 는 물리 적 장치 에 서 는 adb 가 USB 를 통 해 장치 에 연결 되 고 시 뮬 레이 터 에 서 는 adb 가 TCP 프로 토 콜 을 통 해 장치 에 연결 된다 는 것 이다.
실제로 물리 장치 에서 도 adb 가 TCP 프로 토 콜 을 통 해 장 치 를 연결 할 수 있 습 니 다 (물론 전제 조건 은 장치 에 네트워크 가 있어 야 합 니 다).
먼저 아래 의 소스 코드 를 보 세 요. system / core / adb / adb. c, 921 줄 에서 나 왔 습 니 다.
 1     /* for the device, start the usb transport if the
 2         ** android usb device exists and "service.adb.tcp"
 3         ** is not set, otherwise start the network transport.
 4         */
 5     property_get("service.adb.tcp.port", value, "0");
 6     if (sscanf(value, "%d", &port) == 1 && port > 0) {
 7         // listen on TCP port specified by service.adb.tcp.port property
 8         local_init(port);
 9     } else if (access("/dev/android_adb", F_OK) == 0) {
10         // listen on USB
11         usb_init();
12     } else {
13         // listen on default port
14         local_init(ADB_LOCAL_TRANSPORT_PORT);
15     }

상기 코드 를 분석 하면 adbd 가 시 작 될 때 먼저 service. adb. tcp. port 가 설정 되 어 있 는 지 확인 할 수 있 습 니 다.
설정 하면 TCP 를 연결 방식 으로 사용 합 니 다.
설정 되 어 있 지 않 으 면 adb 의 USB 장치 (dev / android adb) 가 있 는 지 확인 하고 있 으 면 USB 를 연결 방식 으로 합 니 다.
USB 장치 가 없 으 면 TCP 를 연결 방식 으로 한다.
따라서 adbd 를 시작 하기 전에 service. adb. tcp. port 를 설정 하면 adbd 가 TCP 모드 를 선택 할 수 있 습 니 다.
인터넷 을 통 해 adb 를 연결 할 수 있 습 니 다.
init. rc 파일 을 수정 해 야 합 니 다. 수정 하지 않 으 려 면 시스템 이 시 작 된 후에 콘 솔 에서 다음 명령 을 수행 할 수도 있 습 니 다.
  #stop adbd
  #set service.adb.tcp.port 5555
  #start adbd

이렇게 하면 호스트 에서 다음 명령 을 통 해 장 치 를 연결 할 수 있 습 니 다.
  adb connetc :5555

4. adb 는 USB 와 TCP 디 버 깅 을 동시에 지원 합 니 다.
최근 에 otg 기능 을 디 버 깅 하려 면 usb 가 점용 되 어 무선 adb 로 만 디 버 깅 할 수 있 습 니 다.
무선 브러시 가 불편 합 니 다. 인터넷 에서 다운로드 하 는 무선 adb 는 루트 가 자주 필요 하고 무선 adb 를 사용 할 수 없 으 며 push apk 가 귀 찮 습 니 다.
수 정 된 코드 를 첨부 하고 USB 와 tcp 디 버 깅 을 지원 하 며 매번 브러시 후 push apk 를 사용 하지 않 습 니 다.
수정 점 두 개:
  • build \ tools \ buildinfo. sh 에 추가
    echo"service.adb.tcp.port=5555"    adb  
    system/build.prop service.adb.tcp.port=5555

  • system \ core \ adb \ adb. c 에서 usbadb 와 무선 adb 감청 을 수정 하여 판단 하고 boot 를 바 꾸 면 됩 니 다
  • 이전
     1     property_get("service.adb.tcp.port",value, "0");
     2     if(sscanf(value, "%d", &port) == 1 && port > 0) {
     3         // listen on TCP port specified byservice.adb.tcp.port property
     4         local_init(port);
     5     } else if(access("/dev/android_adb", F_OK) == 0) {
     6         // listen on USB
     7         usb_init();
     8     } else {
     9         // listen on default port
    10         local_init(ADB_LOCAL_TRANSPORT_PORT);
    11     }

    수정 후
     1     property_get("service.adb.tcp.port", value, "0");
     2     if (sscanf(value, "%d",&port) == 1 && port > 0) {
     3        // listen on TCP port specified byservice.adb.tcp.port property
     4         local_init(port);
     5     }
     6      
     7     if (access("/dev/android_adb",F_OK) == 0) {
     8        // listen on USB
     9         usb_init();
    10     } else {
    11        // listen on default port
    12         local_init(ADB_LOCAL_TRANSPORT_PORT);
    13     }

    두 개 를 함께 수정 해 야 한다. 그렇지 않 으 면 첫 번 째 USB 를 수정 하면 사용 할 수 없다.
     
     
    다음으로 전송:https://www.cnblogs.com/sjjg/p/6899338.html

    좋은 웹페이지 즐겨찾기