제4장 3절, ADB 프로토콜 및 서비스: ADB 프로토콜 개요 SYNC.TXT 번역 참조(오리지널)
이 문서의 목적은 클라이언트가 ADB 서버에adbd 수호 프로세스에 파일 관련 요청을 문서화하는 것입니다.OVERVIEW를 보십시오.TXT 문서(ADB 서버와adbd 데몬) 관련 정보를 보고 SERVICES를 보십시오.TXT는 더 많은 사용 가능한 요청을 학습합니다.
동기화 서비스:
Services를 사용합니다.TXT가 기술한 관련 프로토콜은 동기화 서비스 ("sync:") 를 요청하여 연결을 동기화 모드로 설정합니다.이 모드도 2진 모드라고 하는데 정상adb 프로토콜과는 다르다.설정된 연결은 이 모드에서 현저하게 종료될 때까지 유지됩니다. (아래 설명 참조)
"sync:"명령을 실행하여 동기화 모드를 시작한 후, 서버 측은 반드시 정상 모드 (OVERVIEW.TXT 참조) 처럼'OKAY'또는'FAIL'로 돌아가야 합니다.
동기화 모드에서 서버와 클라이언트는 8바이트 데이터 패키지를 자주 사용하여 상호작용을 합니다.이것은 이 문서에서'동기화 요청'과'동기화 응답'이라고 불린다. 처음에 4바이트는 지정한 동기화 요청의 id이다. 이 4바이트는 4개의 utf-8 문자로 나타난다. 뒤에 4바이트는 작은 바이트 순서의 정수로 비교적 광범위하게 사용된다."". 사실상 동기화 모드의 모든 바이트 정수는 작은 바이트 순서입니다. 동기화 모드는 동기화 요청이 완료될 때마다 은밀하게 자동으로 종료되고 정상적인adb 통신 모드로 들어갑니다. 정상적인 모드에 대한 자세한 내용은 SERVICES.TXT를 보십시오.
다음과 같은 범위 내의 모든 동기화 요청을 수락합니다.
아직 문서화되지 않은 동기화 요청은 다음과 같습니다.
위에서 언급한 모든 동기화 요청 뒤에는'길이'가 지정한 크기의 바이트에 따라utf-8 문자열 형식의 원격 파일 이름을 저장해야 합니다.
LIST:
이 동기화 요청은 원격 파일 이름이 지정한 디렉터리에 있는 모든 파일을 보여 줍니다.서버 측은 0 개 이상의 디렉터리 항목을 되돌려주거나'dents'라고 할 수도 있습니다.
디렉터리 항목은 다음과 같은 형식으로 되돌아갈 것이다
클라이언트가 "DONE"이라는 동기화 반환을 받으면 지정한 디렉터리에 있는 모든 파일의 요청이 완료됩니다.
SEND:
원격 파일 이름은 마지막 쉼표(",")를 통해 두 부분으로 구분되며 앞부분은 실제 경로를 나타내고 뒤의 두 번째 부분은 대상 장치에서 파일에 대한 접근 권한을 나타내는 십진수 형식의 파일 모드 속성입니다.
일부 파일 형식은 (adbd) 파일을 대상 디렉터리로 복사하기 전이나 전송이 실패한 후에 삭제될 수 있음을 주의하십시오.그러나 일부 파일 형식은 삭제되지 않습니다. 이렇게 하면 허용됩니다.
adb push disk_image /some_block_device
정상적으로 작동할 수 있습니다. (천지회 주해분타주: 그렇지 않으면adbd가 받아들인 파일을 처리한 후에 삭제하면 이 파일을 대상 블록 장치인 some_block_device로 복사할 수 없습니다.)
전송 명령을 보낸 후 실제 파일 내용은 블록을 통해 전송될 수 있습니다.각 파일 블록에는 다음과 같은 형식이 있습니다.
id를 "DATA"로 하는 동기화 요청 명령과 블록 크기와 같은 길이, 그리고 블록 크기의 바이트 내용을 따라갑니다.파일의 내용은 전체 파일 전송이 끝날 때까지 이런 형식으로 반복적으로 전송됩니다.각 블록의 크기는 64k보다 클 수 없습니다.
파일 전송이 완료되면 "DONE"동기화 요청이 대상 기기 (adbd) 로 전송되며, 이 경우 요청된 "길이"는 파일의 마지막 수정 시간으로 설정됩니다.서버는 마지막으로 이 요청을 받은 후 (각 블록의 전송 요청이 아님을 주의)'OKAY'동기화 응답을 반환합니다. (요청의'길이'는 무시할 수 있습니다)
RECV:
이 요청의 역할은 대상 기기에서 파일을 가져와 로컬에 저장하는 것입니다.요청한 원격 파일 이름은 가져올 원격 파일 이름의 경로를 설정합니다.위의 "SEND"동기화 요청과 마찬가지로 파일은 모두 파일 블록으로 전송됩니다.동기화 반환 형식의 id는 "DATA"이고, "길이"는 블록 크기이며, 그 다음은 지정한 블록 크기의 바이트 수 (파일 내용) 입니다.같은 블록 크기는 64k를 초과할 수 없습니다.
파일 전송이 완료되면 클라이언트가 "DONE"동기화 요청을 받게 됩니다. 이 요청의 길이는 무시할 수 있습니다.
공식 영문판:https://android.googlesource.com/platform/system/core/+/master/adb/SYNC.TXT
---아직 끝나지 않았어---
저자: 천지회 주해분타 위챗 공중호: TechGoGoGo 위챗:http://weibo.com/techgogogo CSDN:http://blog.csdn.net/zhubaitian
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.