android Activity에서 adb로 데이터를 보낼 수 있습니까? ADB를 통해 활동을 시작하고 데이터를 전달하고 작업을 수행 한 다음 결과를 읽으 려합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?ADB를 통해 Android 활동에서 PC로 데이터 전송
예를 들어: adb.exe 쉘 오전 시작 -n com.example/com.example.Adder --ei operand1 10 --ei Operand2의 20 이 10 + 20 .. 저장 총 30 어떻게 추가 그 값을 가져올 수 있습니까?
내 연구에서 얻은 이러한 제안은 옵션이 아닙니다. 1. 파일에 쓰기 다음 pull을 사용하여 adb에서 읽습니다. [내 휴대 전화에는 내 SD 카드가 없습니다. android 4.3에 버그가 있습니다. 커맨드가 작동하지 않는 것처럼] 2. 소켓을 열어 데이터를 보내면 [네트워크에 의존하고 싶지 않습니다]
업데이트 : 그래서 Chris가 제안한대로 앞으로 adb를 통해 뭔가를 할 수있었습니다. 먼저 adb 전달을 시작하십시오 : adb 전달 tcp : 10000 tcp : 10000;
다음 내 안드로이드 응용 프로그램에서 ... 서버 소켓을 만들고 차단하십시오. serverSocket.accept(); 그러면 클라이언트가 연결되고 TCP/IP 소켓에서와 같이 데이터를 앞뒤로 보낼 수 있습니다.
ADB에는 설명되어 있지 않은 문제가 하나 있습니다. 포워드가 설정되면 클라이언트는 안드로이드 측에서 아직 설정되지 않은 경우에도 서버 소켓에 연결하는 것처럼 보입니다. 그 이유는 무엇입니까? 일단 clientSocket이이 "섀도우"소켓에 연결되면 serverSocket이 아직 설정되지 않았 음을 감지 할 수 있습니까?
소켓 사용은 네트워크가 아닌 adb 전달을 통해 수행 할 수 있습니다. 유닉스 도메인 소켓을 사용하면 인터넷 허가가 필요하지 않습니다. adb 전달을 사용하면 전화기가 서버 여야하고 클라이언트가 PC 여야합니다.하지만 adb를 통해 시작 인 텐트를 보낸 직후부터 반복적으로 연결을 시도하여 필요를 채우기 위해 사용할 수 있습니다. 사소한 일이라면 logcat에서 응답을 grep 할 수도 있습니다. –
더 자세히 설명해 주실 수 있습니까? 내 활동에서 할 수있는 : "server = new ServerSocket (portNumber); 소켓 클라이언트 = server.accept(); PrintWriter pr = new PrintWriter (client.getOutputStream(), true); pr .print (dataToWrite) 이것은 어떻게 adb로 전달 될까요?전화가 서버이면 어떤 시점에서 accept()가 반환합니까 ?? – firdseven
ADB 문서를 읽으십시오. –