2017-03-12 9 views
1

내 랩톱에서 하나의 avd를 사용하지만 여러 config.ini 파일을 사용하여 내 안드로이드 앱을 테스트하여 avd 자체의 구성을 변경하는 아이디어가 있습니다.여러 에뮬레이터에서 안드로이드 애플 리케이션을 실행하는 야심 찬 시도 - 에뮬레이터를 멈출 수 없다

여러 개의 avds 파일을 만들고 config.ini 파일을 별도의 폴더에 복사했습니다. 나는 또한 내 config.ini 파일 파일

  • 을 통해

    • 루프에 bash는 스크립트를 작성했습니다

      는 (마지막 덮어 쓰기)를 AVD 폴더 한 번에 그들을 막을 수

    • 시도 하나를 복사 모든 현재 실행중인 에뮬레이터 (이것은 내 큰 문제이다)
    • 는 scre 걸릴
    • 가 내 테스트를 실행 에뮬레이터를 (시작
    • enshots)
    • ADB는

    그래서 나는이 작업의 대부분을 가지고 다음 INI 파일

  • 시작 다시 폴더로 스크린 샷을 해내,하지만 난 내 인생은 시작/중지 할 수 없습니다에 대한/avd를 다시 시작하십시오.

    가 나는 등 다양한 SO 질문에서 여러 가지를 시도했지만 에뮤는

  • ADB 쉘은
  • pgrep을 에뮬레이터 -f를 중지
  • 텔넷 죽이고 죽이고

    • ADB에 국한되지했습니다 (찾을 수 pid) 그런 다음 kill -9를 사용하여 중지하십시오.

    아무 것도 제대로 작동하지 않거나, 정기적으로 스크립트를 잠그지 않고, 또는 lea 일부 파일을 남겨두면 에뮬레이터를 다시 시작할 수 없습니다.

    이것은 여러 장치 에뮬레이터에서 한번에 실행할 필요없이 내 응용 프로그램을 실행하는 데 매우 쉽고 좋은 방법 인 것 같습니다. 내 랩톱에서 결코 처리 할 수없는 것입니다 (아마 3 개를 할 수 있습니다. 한 번에)

  • +1

    'any_shell_command &'를 실행 한 다음'echo $!'당신은 비동기 명령이나 bg 내장 명령을 사용하여 실행되었는지에 관계없이 가장 최근에 백그라운드에 배치 된 작업의 프로세스 ID를 얻을 수 있습니다. 따라서 에뮬레이터를'&'로 시작하면 어딘가에 pid를 저장하고 나중에 kill 할 수 있습니다 그것 – pskink

    +0

    @ pskink - 내가 죽일 때마다, 그것은 자주 그 에뮬레이터를 다시 시작할 수 없다는 것을 의미하는 avd 폴더에 .lock 파일로 날 이끌 수 있습니다 –

    +0

    다른 신호를 시도? (kill -l) – pskink

    답변

    1

    는 (리눅스) 쉘에서이 작업을 수행 :

    adb shell su -c 'svc power shutdown' && echo "target has shut down"

    그것은 것이다 종료 대상 (제대로 에뮬레이션 내부의 "시스템 파워 다운"창을 보여줍니다) 다음 또한 에뮬레이터 창을 닫습니다. 부실 잠금 파일이 남아 있지 않습니다.

    물론 대상을 실행 한 후 대상이 올바르게 부팅되고 해당 adb 셸 명령을 수락 할 때까지 기다려야합니다.

    에뮬레이트 된 타겟 Android API 19 (kitkat)에서 테스트했습니다. 멋지게 작동했습니다.

    여러 대상의 원격 스크립팅에 대한 귀하의 아이디어를 해결하기를 바랍니다.

    +0

    고마워요. 테스트 할 기회가 없었지만, 곧 시도 할 것입니다. –

    +0

    그냥 시도해 보았습니다. 그것은 정확하게 작동하지 않았습니다. 어떤 이유로 저는 su -c를 사용할 수 없었습니다. 그러나,'adb root && adb shell 'svc power shutdown'&& echo "target has shut down"을 실행하면 완벽하게 작동합니다. 감사 –