Android 개발 중 입력 시 뮬 레이 션 방법

주요 사고방식 은 adb 셸 input 명령 을 사용 하여 버튼 과 터치 입력 을 시 뮬 레이 션 하 는 것 이다.
그러나 루트 가 필요 하고 화 웨 이 휴대 전 화 는 안전 상의 이유 로 루트 디 코딩 을 중단 했다.그래서 테스트 는 다른 핸드폰 으로 바 꾸 는 것 을 권장 합 니 다.또는 AS 의 시 뮬 레이 터 를 직접 사용 하거나 Google Apis 가 있 는 버 전 을 사용 합 니 다.
input 명령 어
우 리 는 adb 를 열 고 셸 에 들 어가 input 를 입력 하면 명령 의 매개 변수 설명 을 볼 수 있 습 니 다.

그 중에서 source 는 보통 기본 값 으로 무시 할 수 있 습 니 다.우리 가 주목 하 는 것 은 바로 뒤의 command 입 니 다.
  • text:텍스트 입력;keyevent:키보드 버튼;이 두 명령 은 모든 설비 에서 통용 된다.
  • tap:화면 클릭;swipe:화면 슬라이딩;이 두 명령 은 터치 스크린 이 있 는 장치 에 적용 된다.
  • press,roll 은 터치 볼 이 있 는 장치 에 적용 된다.
  • 아 날로 그 입력
    input 명령 을 사용 하기 전에 루트 권한 을 가 져 와 야 합 니 다.
    
    private void execShellCmd(String cmd) { 
     
     try { 
     Process process = Runtime.getRuntime().exec("su"); 
    
     OutputStream outputStream = process.getOutputStream(); 
     DataOutputStream dataOutputStream = new DataOutputStream( 
      outputStream); 
     dataOutputStream.writeBytes(cmd); 
     dataOutputStream.flush(); 
     dataOutputStream.close(); 
     outputStream.close(); 
     } catch (Throwable t) { 
     t.printStackTrace(); 
     } 
    }
    text
    1.입력 하기 전에 초점 을 미리 가 져 와 야 합 니 다.
    2.특별한 의미 가 있 는 특수 문 자 를 입력 하 십시오.keyevent 를 직접 입력 할 수 없습니다.'
    우 리 는 EditText 를 완성 한 후에 text 입력 테스트 를 진행 합 니 다.
    
    execShellCmd("input text 'hello,world'");
    우 리 는 콘 솔 에서 로 그 를 볼 수 있 는 H 가 하나 빠 진 것 을 발견 했다.

    H 를 눌 렀 을 때 EditText 가 초점 을 얻 지 못 한 것 을 볼 수 있 습 니 다.

    페이지 가 초기 화 된 후에 입력 작업 을 시작 할 수 있 습 니 다.이때 editText 는 초점 을 얻 지 못 했 고 초점 을 얻 는 데 시간 이 지연 되 었 을 수 있 습 니 다.그래서 우 리 는 1s 지연 후 입력 을 시도 합 니 다.
    
    private Handler handler = new Handler();
    private Runnable task = new Runnable() {
     public void run() {
     execShellCmd("input text 'hello,world'");
     }
    };
    
    //   1s   
    handler.postDelayed(task,1000);

    keyevent
    
    execShellCmd("input text 'hello,world' 
    input keyevent 68
    input keyevent 21");
    hello,World 를 입력 하고'를 입력 한 다음 커서 를 왼쪽으로 이동 합 니 다.

    흔히 볼 수 있 는 키 코드 는 frameworks/base/core/java/android/view/KeyEvent.java 을 참조 할 수 있 습 니 다.

    tap
    안 드 로 이 드 의 좌 표 는 다음 그림 과 같다.

    우 리 는 핸드폰 의 개발 자 옵션->포인터 위 치 를 켜 서 위 에서 x,y 의 상대 적 인 오프셋 을 볼 수 있 습 니 다.

    화면(100,200)위 치 를 누 르 십시오.
    
    execShellCmd("input tap 100 200");
    swipe
    미끄럼 화면 은 tap 와 비슷 합 니 다.두 좌표 만 들 어가 면 됩 니 다.뒤쪽 에 도 미끄럼 시간(ms)을 설정 할 수 있 으 며,시간 이 짧 을 수록 미 끄 러 지 는 해당 거리 가 길 어 집 니 다.
    화면(100,200)에서(300,400)으로 미 끄 러 집 니 다.
    
    execShellCmd("input swipe 100 200 300 400");
    
    이상 은 안 드 로 이 드 개발 에서 입력 을 어떻게 모 의 하 는 지 에 대한 상세 한 내용 입 니 다.안 드 로 이 드 모 의 입력 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

    좋은 웹페이지 즐겨찾기