안녕하세요.
자바 개발자라서 자바로 직접 매크로 제작 중입니다.
오늘 처음 시작했는데요. 실행 중인 adb 검색 및 명렁어 실행을 시험삼아 해봤습니다.
이 중에서 매크로 제작에 가장 중요한 스크린캡쳐 관련해서 구글링을 해 보면 대부분 두 가지 방법이 나오더군요.
- 캡쳐한 이미지를 앱플레이어 내부에 파일로 저장하고, 내 컴퓨터로 복사하기
- 캡쳐한 이미지를 내 컴퓨에 바로 저장하기
단순 1회성으로 이미지 서치하고 끝낼 건데 어디가 되었든 파일로 저장되는 단계가 불필요하다 생각 했습니다.
그래서 자바 기준으로 InputStream을 얻어오면 바로 메모리 상에서 이미지 프로세싱이 가능해져 파일 저장이 필요 없을 것 같았는데요. 실제로 해보니 되더군요.
방법은 그냥 screen -p 명렁어 까지만 입력하는 것 입니다.
자바의 경우 명령어 실행 후 InputStream을 얻어 올 수 있는데, 명령어를 위와 같이 screen -p 까지만 입력하니
순수하게 캡쳐된 데이터를 InputStream으로 얻어 올 수 있었습니다. 이것을 파일로 기록 하니 이미지가 보였고,
BufferedImange나 opencv같은 이미지 프로세싱 라이브러리를 이용해서 이미지 검사를 진행하면 될 것 같네요.
오토핫키는 안써봤지만 비슷한 개념으로 접근 가능하지 않을까 싶습니다.
여기서 궁금한점...
screen -p 까지만 명령어 실행하면 정말로 앱플레이어 내부에 그 어떤 파일도 안생겨나는게 맞긴 맞는걸까요?
혹시나 템프 파일로 어딘가에 생성된다거나..
오토핫키로도 가능은 합니다. 예전에 매크로 만든다고 테스트 해본적 있는데 파이프 생성하고 프로세스 생성후에 screen -p 파라미터 사용해서 이미지만 받아와서 써본적이 있습니다. 단지 ADB를 이용하니 너무 느려서 폐기했지만요. 그리고 앱플레이어 내부에 파일은 생기지 않는것으로 압니다만 장담은 못하겠습니다.