AutoJS 기반 앤트포레스트 에너지 강우 자동 수집 스크립트 운영 가이드

자동화 스크립트 아키텍처 및 실행 원리

앤트포레스트(Ant Forest)의 에너지 강우(Energy Rain) 이벤트는 제한 시간 내 다수의 UI 요소를 신속하게 처리해야 하는 특징이 있습니다. 본 가이드는 AutoJS 프레임워크를 활용하여 화면 캡처, 이미지 매칭, 좌표 기반 터치 시뮬레이션을 결합한 자동 수집 로직을 구성하는 방법을 설명합니다.

스크립트는 기본적으로 images.matchTemplate 또는 색상 기반 픽셀 분석을 통해 에너지 구체의 생성 위치를 실시간으로 추적하며, accessibilityService 권한을 통해 시스템 레벨의 터치 이벤트를 주입합니다.

환경 설정 및 파라미터 튜닝

스크립트 실행 전 디바이스 해상도 및 UI 렌더링 특성에 맞춰 인식 영역과 동작 주기를 최적화해야 합니다. 아래는 재구성된 설정 객체 예시입니다.

const rainCollectorConfig = {
  // 화면 인식 및 매칭 설정
  vision: {
    targetRegion: [150, 400, 800, 1200], // [x, y, width, height]
    colorThreshold: 0.85,               // 색상 유사도 허용 오차
    matchAlgorithm: "FAST_TEMPLATE"     // 매칭 알고리즘 선택
  },
  // 터치 시뮬레이션 제어
  interaction: {
    tapIntervalMs: 45,                  // 클릭 간격 (ms)
    sessionDurationSec: 180,            // 단일 세션 최대 실행 시간
    forceMultiTouch: true               // 멀티터치 시뮬레이션 활성화
  },
  // 소셜 및 자동화 옵션
  automation: {
    autoShareChance: true,              // 기회 자동 공유 활성화
    recipientAlias: "friend_account_01",// 공유 대상 식별자
    bypassCaptchaAlert: true            // 보안 검증 시 TTS 알림 활성화
  }
};

위 설정은 기존 단일 파일 기반 구성을 모듈화된 객체 구조로 전환하여 가독성과 유지보수성을 높였습니다. tapIntervalMs는 디바이스 CPU 성능과 네트워크 지연 시간에 따라 30~60ms 사이에서 조정하는 것이 안정적입니다.

실행 모드 및 스케줄링 전략

사용 환경에 따라 세 가지 실행 패턴을 지원합니다. 각 모드는 독립적인 엔트리 포인트로 분리되어 있습니다.

  • 수동 트리거 모드: modules/rain_event_handler.js를 직접 실행. UI가 이미 포그라운드에 노출된 상태에서 즉시 수집 루프를 시작합니다.
  • 예약 자동화 모드: schedulers/auto_rain_trigger.js를 활용. Android의 AlarmManager 또는 AutoJS 내장 타이머를 이용해 특정 시간대에 앱을 백그라운드에서 활성화하고 이벤트를 감지합니다.
  • 멀티 계정 순환 모드: managers/account_rotator.js 실행. 설정된 계정 목록을 순회하며 세션을 초기화하고, 수집 기회를 다음 계정으로 자동 이양하는 로직을 포함합니다.

데이터 로깅 및 성능 분석

스크립트는 실행 중 수집된 에너지 양, 세션 지속 시간, 실패한 터치 시도 횟수를 로컬 JSON 파일 또는 SQLite 데이터베이스에 기록합니다. 이를 통해 시간대별 수집 효율을 분석하고, 네트워크 지터(Jitter)가 높은 시간대를 피해 스케줄을 재조정할 수 있습니다.

// 수집 결과 로깅 예시
function logSessionMetrics(sessionId, collectedAmount, duration) {
  const metrics = {
    id: sessionId,
    yield: collectedAmount,
    runtime: duration,
    timestamp: new Date().toISOString(),
    efficiency: (collectedAmount / duration).toFixed(2)
  };
  files.append("./logs/rain_metrics.json", JSON.stringify(metrics) + "\n");
}

주요 장애 원인 및 해결 방안

증상기술적 원인해결 방안
터치 좌표 이탈해상도 스케일링 불일치 또는 다크모드/블루라이트 필터로 인한 픽셀 값 변조시스템 디스플레이 설정에서 색보정 기능 해제. device.width 기준 좌표 재매핑 실행.
보안 검증(CAPTCHA) 차단비정상적인 터치 패턴 감지 또는 짧은 주기 내 반복 요청automation.bypassCaptchaAlert 활성화로 TTS 경고 출력. 검증 완료 후 events.on("resume") 리스너로 루프 재개.
수집량 저하네트워크 레이턴시 증가로 인한 UI 렌더링 지연 또는 클릭 간격 과다tapIntervalMs 값 점진적 축소. Wi-Fi 환경에서 ping 테스트 후 임계값 조정.
프로세스 강제 종료Android 배터리 최적화 정책 또는 백그라운드 제한시스템 설정에서 AutoJS 앱을 '제한 없음'으로 변경. device.keepScreenOn() 및 WakeLock 권한 요청.

안정적 운영을 위한 시스템 요구사항

  • 화면 모드: 이미지 매칭 정확도 보장을 위해 기본 라이트 모드 및 표준 색재현율 설정 유지.
  • 권한 관리: android.permission.WRITE_SECURE_SETTINGS, 접근성 서비스, 화면 오버레이 권한 필수.
  • 리소스 관리: 장시간 실행 시 메모리 누수 방지를 위해 images.recycle()를 주기적으로 호출하고, 비트맵 캐시를 명시적으로 해제.
  • 설정 백업: storage.put() 또는 외부 파일로 환경 변수 정기적 덤프. 앱 업데이트 시 설정 초기화 대비.

태그: AutoJS AndroidAutomation ImageRecognition TouchSimulation TaskScheduling

9월 26일 08:31에 게시됨