너무 범위가 광범위해서 일일이 모든 방법을 다 조언 해드리기는 어렵고
위 내용으로 보았을때에는 어떤 방법을 쓰든 실시간 통신이 기반이 되어야 겠네요.
일단 저라면 이렇게 할것 같습니다.
pdf문서파일 공유 개념이 아닌 화면 공유 개념으로 가야할 것 같습니다. 문서 파일 공유 개념으로 간다면 1차적으로 pdf파일에 그리기 기능을 추가한 pdf뷰어 구현부터 해야하기 때문에 작업량이 엄청 많아지기 때문이지요. 어떠한 시점에 화면위에 그리기가 가능한 레이아웃으로 덮도록 하여 화면 위에 그림그리기가 가능하도록 하는 기능도 있어야지요. 이부분은 WindowManager를 사용하면 가능할 것으로 보입니다. 통신하여 화면을 동기화 시키는 시점은 최초에 현재 화면을 공유하는 시점과 그리기를 하다가 화면에서 손을 떼는 시점으로 하겠습니다. pdf 문서에 그리기라면 단순 indicator 역할을 위한것이라고 생각이 됩니다. 실시간으로 어떤 방향으로 어떤속도로 그리는지까지 보여줄 필요는 없다고 생각합니다. 통신이 오버헤드가 크기 때문에 최대한 줄이기 위한 목적도 있습니다. 여기서 통신 오버헤드를 줄이기 위한 목적으로 화면 전체가 아니라 전체를 특정 갯수로 조각화 하여 각각의 조각이 바뀌었을때 바뀐 조각만 동기화 하는것도 방법일 수 있겠네요. 그렇지만 조각화 하면서 바뀐 부분을 찾는 작업도 오버헤드가 될 수가 있으니 적절하게 비교하여 최선의 방법을 찾아야 겠지요. 일반적으로 영상 스트리밍은 UDP를 사용한다고 알고 있습니다.
이거는 어디까지나 제 기준으로 생각한 부분이고 정답은 아닙니다. 그냥 딱 질문자님이 하신 질문 보자마자 생각나는데로 끄적거려 봤네요. 도움이 되셨을지 모르겠습니다.