appsok/agent-roadmap/phase/usable-mvp/milestones/usb-install.md

2.5 KiB

Milestone: USB 설치와 device 선택

위치

  • Roadmap: agent-roadmap/ROADMAP.md
  • Phase: agent-roadmap/phase/usable-mvp/PHASE.md

목표

USB로 연결된 Android device를 표시하고, 선택한 단일 APK를 adb install -r로 설치한다. 사용자는 폰 네트워크나 VPN 상태와 무관하게 Mac에서 내려받은 APK를 바로 밀어 넣을 수 있어야 한다.

상태

[계획]

승격 조건

  • 없음

구현 잠금

  • 상태: 해제
  • 결정 필요: 없음

범위

  • adb devices -l 기반 device 목록
  • unauthorized/offline/device 상태 표시
  • 설치 대상 device 선택
  • adb install -r 실행, stdout/stderr 표시
  • install success/failure 결과 기록

기능

Epic: [device-list] device 탐색

연결된 Android device를 사용자가 이해할 수 있는 형태로 보여준다.

  • [adb-path] 설정된 adb path 또는 PATH의 adb 실행 가능 여부를 확인한다.
  • [parse-devices] adb devices -l 결과를 serial/state/model/product로 parsing한다. 검증: device, unauthorized, offline fixture test가 통과한다.
  • [device-state] USB debugging 승인 필요, offline, ready 상태를 UI에서 구분한다.
  • [refresh] 사용자가 device 목록을 새로고침할 수 있다.

Epic: [install] APK 설치

선택한 device에 단일 APK를 설치하고 결과를 확인한다.

  • [install-run] 선택한 APK와 device serial로 adb install -r를 실행한다.
  • [install-output] stdout/stderr와 exit code를 UI에 표시한다.
  • [install-guard] APK가 선택되지 않았거나 device가 ready가 아니면 설치 버튼을 비활성화한다.
  • [install-result] 성공/실패 결과를 이후 이력 milestone에서 재사용할 수 있는 구조로 남긴다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증 충족 후 기록한다.
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 없음

범위 제외

  • adb install-multiple
  • AAB를 APK로 변환하는 bundletool
  • 무선 ADB pairing

작업 컨텍스트

  • 관련 경로: lib/src/features/devices/, lib/src/models/adb_device.dart, lib/src/services/adb_service.dart
  • 표준선(선택): 화면 코드에서 Process를 직접 호출하지 않고 AdbService를 통해 실행한다.
  • 선행 작업: Artifact 탐색과 다운로드
  • 후속 작업: ADB 콘솔과 logcat
  • 확인 필요: 없음