Wear OS Data Layer API는 여러 유형의 클라이언트로 구성되며, 이는 다양한 유형의 데이터와 다양한 연결 조건에 유용합니다.
이 페이지에서는 각 클라이언트 유형을 소개하고 다양한 클라이언트의 기능을 비교하는 표를 제공합니다. 이 정보를 사용하여 앱에 가장 적합한 클라이언트 유형 집합을 선택할 수 있습니다.
데이터 클라이언트
DataClient
객체를 사용하면 DataItem
또는 Asset
를 읽거나 여기에 쓸 수 있습니다.
각
DataItem
는 사용자가 소유한 모든 근처 기기에서 브로드캐스트되고 동기화되는 정보 단위입니다.DataItem
는 영구적으로 저장되며 데이터 항목이 삭제될 때까지 기기에서 콘텐츠를 읽을 수 있습니다.Asset
는 이미지나 미디어 파일과 같은 대용량 데이터 페이로드를 위한 것입니다.
메시지 클라이언트
MessageClient
객체는 메시지를 전송할 수 있으며 Wear OS 기기를 사용하여 휴대기기에 설치된 앱 버전을 제어하는 것과 같은 원격 프로시저 호출 (RPC)에 적합합니다.
메시지는 sendMessage()
를 사용하는 단방향 요청이나 sendRequest()
를 사용하는 요청-응답 통신 모델에 적합합니다. 데이터 클라이언트와 달리 메시지 클라이언트는 메시지를 전송하려면 노드가 네트워크에 연결되어 있어야 합니다.
sendMessage()
메서드는 원격 노드에 전송하기 위한 최선의 시도이며 내장된 재시도 메커니즘은 포함하지 않습니다. 네트워크 전송이 시작되기 전에 대상 기기가 연결 해제되면 메서드는 TARGET_NODE_NOT_CONNECTED
를 반환합니다.
채널 클라이언트
ChannelClient
객체는 기기 간의 스트림 중심 통신을 제공합니다. 채널은 두 노드 간의 양방향 통신 파이프이며 다음과 같은 사용 사례에 유용합니다.
- 인터넷을 사용할 수 없는 경우 두 대 이상의 연결된 기기 간에 데이터 파일을 전송합니다.
ChannelClient
는 연결된 기기와 동기화하기 전에 로컬 기기에 애셋의 복사본을 만드는DataClient
에 비해 디스크 공간을 덜 차지합니다. - 너무 커서
MessageClient
를 사용하여 전송할 수 없는 파일을 안정적으로 전송할 수 있습니다. - 마이크의 음성 데이터와 같은 스트림된 데이터를 전송합니다.
채널을 연 후에는 데이터 클라이언트에 필요한 개별 DataItem
단위가 아닌 연속적인 바이트 스트림으로 데이터를 전송하고 수신할 수 있습니다.
데이터 흐름을 관리하고 데이터를 일관되게 유지할 책임은 개발자에게 있습니다. 채널 클라이언트는 데이터 클라이언트와 동일한 수준의 자동 데이터 동기화를 제공하지 않습니다.
클라이언트 비교
다음 표에서는 여러 클라이언트의 기능을 비교합니다.
클라이언트 유형 | 데이터 지속성 | 100KB를 초과하는 데이터를 지원하나요? | 사용할 네트워크 | 오프라인 작동 여부 |
---|---|---|---|---|
데이터 클라이언트 | 데이터가 무기한 유지됨 | 예 (Asset 객체 사용) |
블루투스를 사용하는 것이 좋습니다. 데이터가 클라우드에 백업됩니다. 블루투스를 사용할 수 있는 경우 이 백업은 비동기식으로 실행됩니다. | 예, 읽기 및 쓰기 모두 |
메시지 클라이언트 | 지속성 없음 및 재시도 없음 | 아니요 | 블루투스가 권장되지만 Wi-Fi가 유일한 연결 유형인 경우 Wi-Fi를 사용할 수 있습니다. | 아니요 |
채널 클라이언트 | 지속성 없음 (연결 지향형) | 예 | 블루투스가 권장되지만 Wi-Fi가 유일한 연결 유형인 경우 Wi-Fi를 사용할 수 있습니다. | 아니요 |