빠른 시작
폰을 PC와 페어링하고 셸, Python, Node.js, HTTP로 첫 명령을 보냅니다. 다섯 단계 정도면 됩니다.
번역된 페이지입니다. 영어 문서와 내용이 다르면 영어 문서가 기준입니다. English
이 페이지는 서버와 앱을 설치하고 앱 권한도 이미 켜 두었다고 가정합니다. 아직이라면 먼저 설치를 따라 하세요. 15분 정도 걸립니다. 이 페이지를 따라 하려면 PC와 폰이 같은 Wi-Fi에 있어야 합니다.
1. 서버 시작
PC의 터미널에서 다음을 실행합니다.
droidline serve
실행한 채로 둡니다. 아래 내용은 모두 두 번째 터미널에서 합니다.
2. 폰 페어링
페어링은 폰과 PC를 서로 한 번 소개하는 과정입니다. 둘은 키를 주고받고, 그때부터 서로를 알아보며 둘 사이에 오가는 모든 내용을 암호화합니다. 폰마다 한 번만 하면 됩니다.
-
PC에서 다음을 실행합니다.
droidline pair터미널에 QR 코드가 나타납니다. 이 코드는 10분 동안 유효하고 폰 한 대를 페어링합니다.
-
폰에서 Droidline을 열고 페어링 탭으로 가서 QR 스캔을 누릅니다.
-
카메라를 터미널에 비춥니다. 앱에 PC 이름과 함께 페어링되었습니다라는 메시지가 나타납니다.
폰에 카메라가 없거나 QR 코드가 인식되지 않을 때 이 방법을 씁니다.
-
폰에서 Droidline을 열고 페어링 탭으로 가서 이 Wi-Fi에서 페어링을 누릅니다.
-
앱이 네트워크에서 PC를 찾습니다. 여러 대가 보이면 내 PC를 고릅니다. 그러면 앱이 6자리 코드를 보여 줍니다. 이 코드는 5분 동안 유효합니다.
-
PC에서 코드를 입력합니다.
--name은 나중에 쓸 짧은 이름을 폰에 붙입니다.droidline pair 482913 --name shelf-01
3. 폰이 온라인인지 확인
droidline devices
NAME ID MODEL ANDROID STATE ROUTE MISSING
shelf-01 k7d2q9xa SM-S921N 14 online lan notif,vpn
STATE는online이어야 합니다.ROUTE는 폰이 PC에 닿는 방식을 보여 줍니다.lan은 Wi-Fi로 직접 연결됐다는 뜻입니다.MISSING에는 폰에서 아직 꺼져 있는 권한이 나옵니다.a11y(접근성 서비스),ime(Droidline 키보드),notif(알림 접근),vpn(VPN 권한),capture(화면 캡처, Android 9와 10에서만 물음)입니다. 필수는a11y와ime뿐이므로 여기 나온notif,vpn은 괜찮습니다.
4. 첫 명령 보내기
아래 예제는 모두 폰에서 설정 앱을 열고, 항목 하나를 탭한 뒤, 지금 어떤 화면이 보이는지 읽어 옵니다. 사용할 언어의 탭을 고르세요.
droidline launch com.android.settings
droidline touch text "네트워크 및 인터넷"
droidline currentfrom droidline import connect
d = connect() # 온라인인 유일한 폰
d.launch("com.android.settings") # 설정 열기
d.touch("text", "네트워크 및 인터넷")
print(d.current()) # {'package': 'com.android.settings', 'activity': ...}import { connect } from "droidline";
const d = await connect(); // 온라인인 유일한 폰
await d.launch("com.android.settings"); // 설정 열기
await d.touch("text", "네트워크 및 인터넷");
console.log(await d.current()); // { package: 'com.android.settings', activity: ... }curl -s -X POST localhost:8780/devices/_/launch \
-H 'content-type: application/json' -d '{"package":"com.android.settings"}'
curl -s -X POST localhost:8780/devices/_/touch \
-H 'content-type: application/json' -d '{"by":"text","value":"네트워크 및 인터넷"}'
curl -s -X POST localhost:8780/devices/_/current -H 'content-type: application/json'Python 예제는 first.py로 저장해 python first.py로 실행하고, Node.js 예제는 first.mjs로 저장해 node first.mjs로 실행합니다. 확장자 .mjs는 이 파일이 import를 쓴다는 것을 Node.js에 알려 줍니다.
5. 화면에 무엇이 있는지 보기
화면을 조작하려면 Droidline이 그 화면을 어떻게 보는지 알아야 합니다. dump는 화면을 요소 트리로 저장하고, screenshot은 이미지로 저장합니다.
droidline dump screen.json
droidline screenshot screen.pngd.dump("screen.json")
d.screenshot("screen.png")await d.dump("screen.json");
await d.screenshot("screen.png");curl -s -X POST localhost:8780/devices/_/dump -H 'content-type: application/json' > screen.json
curl -s localhost:8780/devices/_/screenshot.png -o screen.pngscreen.json을 열고 폰에 보이는 글자를 검색해 보세요. 각 요소에는 text, id, desc가 있고, 이 값들을 touch에 넘깁니다. 셋 중 무엇을 고를지는 요소 찾기에서 설명합니다.