scrcpy 사용 동기
개발을 하다가 내 프로젝트를 다른 사람에게 소개하는 과정에서 미러링을 통해 pc 화면에 내 디바이스의 화면을 공유해서 보여주는 경우가 있다.
게다가 두 개 이상의 디바이스를 공유하려고 할 때는 안 되는 애플리케이션이 많고 돈을 내야 하는 경우도 있다.
나는 삼성에서 제공하는 플로우를 많이 사용하는데 이건 한기기 밖에 연결이 안 된다.
그래서 추가적으로 안드로이드 스튜디오에서 제공하는 에뮬레이터와 함께 두 기기 이상을 동시에 보여주곤 하는데, 에뮬레이터는 점점 느려져서 답답한 경우가 생기거나 에뮬레이터 특성상 불편한 게 한두 가지가 아니다.
굳이 왜 여러 대를 동시에 띄워줘서 보여줘야 되냐고 궁금해 할 수 도 있는데,
그 이유는 채팅 관련 기능을 보여줄 때 특히 필요하다고 생각이 들었다.
두 대 이상의 기기에서 동시에 채팅이 어떻게 작용하는지 보여주면 좋을 것 같았다.
1. SCRCPY란
Android기기를 미러링 하는 응용 프로그램이다.
USB 또는 TCP/IP를 통해 제어할 수 있다.
Linux, Windows 및 macOS에서 작동한다.
2. scrcpy 활용
- 안드로이드 화면/오디 오을 PC에 띄우는 경우 (비디오뿐 아니라 오디오도 전송함)
- 안드로이드 스마트 폰 원격 디버깅 (USB, WiFi 연결 가능)
- 스마트 폰의 카카오톡을 PC에서 사용 (회사 보안 상 PC 카톡 설치가 불가한 경우 유용함) -> 한글 입력 지원
- 회사 보안 프로그램에 영향 없이 스마트폰 기능을 데모할 때 유용함 (스마트폰 - PC - 프로젝트 연결)
- 스마트 폰 화면을 녹화 저장 (e.g. 게임 녹화), 화면 캡처 (은행 앱처럼 FLAG_SECURE 설정된 화면도 캡처)
- 복수의 스마폰을 하나의 PC에서 사용할 때
3. scrcpy 특징
- lightness (native, displays only the device screen): adb를 사용하고 있고 실행 파일만 설치하면 됩니다. 최근 버전에서는 멀티 display도 지원합니다.
- performance (30~60 fps): 유선 8 Mbps로 기본 설정되어 있고, 무선은 2 Mbps로 설정하면 영화 감상에도 큰 무리가 없는 수준입니다.
- quality (1920 ×1080 or above): 고해상도 지원합니다. 명령어 옵션으로 해상도 및 crop도 가능함
- low latency (35~70ms) : 실시간 반응성이 좋습니다.
- low startup time (~1 second to display the first image): 첫 화면에 나오는데 빠른 시간을 보장합니다.
- non-intrusiveness (nothing is left installed on the device): 단말에 특별한 설치 프로그램 필요 없습니다.
4. 설치방법
우분투와 맥에서는 명령어로 설치가 가능하다.
Ubuntu
$ sudo apt install scrcpy
MacOS
$ brew install scrcpy
Windows
아래 파일을 c드라이브에 압축을 풉니다.
https://github.com/Genymobile/scrcpy/releases/download/v1.21/scrcpy-win64-v1.21.zip
5. USB를 통한 미러링 사용법
Windows 사용자이기 때문에 Windows일 때의 사용법이라는 점.
1. 개발자모드 Wifi, USB 디버깅 on
개발자 옵션으로 진입을 해야 하는데 개발자 옵션으로 진입하기 위해서는 휴대전화 정보 > 소프트웨어 정보 > 빌드번호를 여러 번 클릭 이렇게 하면 개발자 옵션이 활성화가 됩니다.
그 후 개발자 메뉴에서 USB디버깅을 활성화시킵니다.
2. 환경변수 설정
adb를 사용하기 위해서는 cmd창에서 adb.exe의 경로로 매번 이동해서 명령을 날려야 하는데, 번거롭기 때문에 환경변수를 설정해 두면 쉽게 실행이 가능하다.
다운로드한 경로를 환경변수 path에 추가해 주자.
내 pc속성 > 고급 시스템 설정 > 고급 탭 > 환경변수
편집 > 새로 만들기 > 다운로드한 경로 추가
cmd를 열고 adb 입력했을 때
대충 이런 식으로 나오면 변수설정이 완료된 것이다.
3. 연결된 디바이스 확인
스마트폰을 pc에 연결하고 cmd창에 아래 명령어를 입력하면 연결된 기기의 시리얼넘버가 나옵니다.
adb devices
4. scrcpy 실행
scrcpy -s [디바이스넘버]
짜잔~ USB 미러링이 완료!
6. WiFi 미러링
(여기부터는 위의 방법과 매우 유사하니 좀 더 간단하게 설명하겠습니다.)
개발자 옵션에서 무선디버깅을 활성화시켜줘야 한다.
필자는 이미 연결이 여러 대 되어있기 때문에 디바이스를 지정해서 명령어를 입력하는 -s 옵션을 추가로 입력해 주었다.
기기 연결이 한대만 되어있으면 "-s [지정기기 값]"은 필요 없다.
1. 기본 명령어
adb devices
//연결된 divce가 한대면
adb tcpip 5555
//연결된 divce가 여러대면 지정해서
adb -s [디바이스 넘버] tcpip 5555
adb connect [디바이스 ip]:5555 // ip는 개발자 옵션 무선 디버깅 쪽에서 볼 수 있음
scrcpy -s [디바이스 ip]:5555
원래 5555 포트로 해놓은 게 있어서 저는 restarting이 됐다.
저는 이미 연결이 되었다고 나오네요.
이런 식으로 기기 연결이 완료된 걸 보실 수 있습니다.
2. 여러 기기 연결
1. 첫 번째 기기를 먼저 wifi 연결까지 마치고 실행시킨 후 그 상태를 유지한다.
2. 새로운 cmd 창을 열어서
adb devices
//연결된 divce가 여러대면 지정해서
adb -s [디바이스 넘버] tcpip 5555 또는 adb -d tcpip 5555
//-s는 지정된 단말로 명령이 향하게 해줌
//-d는 하나의 단말로 명령이 향하게 해줌
adb connect [디바이스 ip]:5555 // ip는 개발자 옵션 무선 디버깅 쪽에서 볼 수 있음
scrcpy -s [디바이스 ip]:5555
이 과정을 반복합니다.
그럼 다음과 같이 한 화면에 두 개를 띄우게 됩니다.
7. bat파일로 만들기
scrcpy를 사용했을 때 좋은 점!
환경변수 설정을 잘해놓으셨다면 이 명령어들을 저장해 놓은 메모장을 bat파일로 만든다면
해당 파일을 더블 클릭하는 것만으로 미러링이 완료가 됩니다.
대신 설정을 하나 해주셔야 합니다.
와이파이 ip가 계속 바뀌기 때문에 이걸 고정해주셔야 하는데요.
와이파이 설정 > 더 보기 > IP 설정 > DHCP를 고정아이피로 변경
변경한 IP를 위에서 사용하는 IP 주소에 입력하시면 됩니다.
1. 메모장에 명령어 한 줄씩 입력
connect를 하는 이유는 연결이 됐는지 안됬는지 확인하려고입니다.
맨 밑에 줄만 갖고 bat파일을 만들어줘도 무관합니다.
본인이 사용할 경로에 저장한 후 확장자 명을 bat로 변경합니다.
그리고 실행시켜 보시면 끝!
이걸 해보면서 다중 기기를 연결할 수 있는 장점 이외에도 다른 장점들이 많아서 좀 신기했습니다.
여러 방면으로 다양하게 사용할 수 있을 것 같아서 만족스러운 공부였던 것 같네요.
끝!
USB 연결 이외의 페어링코드로 미러링 하는 방법에 대한 글도 보고 편하신 것 사용해보세요.
2025.02.11 - [안드로이드] - [SCRCPY] USB 없이 페어링 코드로 미러링하기!
[SCRCPY] USB 없이 페어링 코드로 미러링하기!
scrcpy 라이브러리를 통해 다중 미러링 구현까지 포스팅을 해봤었는데, 앞 단계에서 USB 연결을 통해서 유선연결을 꼭 해야 하는 사전작업이 있었습니다.USB 케이블이 없거나, 이게 귀찮으신 분들
goharry.tistory.com
'안드로이드' 카테고리의 다른 글
[Android] SharedPreferences, 간단한 정보 저장/불러오기 (0) | 2024.04.30 |
---|---|
[Android] AAC Room 사용해보기 (0) | 2024.04.25 |
[Android] 노란 경고 무시하지 말자 2 - Hardcoded string "텍스트", should use @string resource (0) | 2024.03.30 |
[Android] LinearLayout, 리니어 레이아웃 (0) | 2024.03.29 |
[Android] 노란 경고를 무시하지 말자 1 - XML tag has empty body (0) | 2024.03.28 |