RBM library APIs

High level API for controlling your android phone

The RBM library is an API wrapper of the Robotmon JavaScript APIs.

RBM Config

Using

// Import RBM library
importJS('RBM-0.0.2');

// Initial RBM config
var config = {
  appName: 'com.your.script',
  oriScreenWidth: 1080,
  oriScreenHeight: 1920,
  oriVirtualButtonHeight: 0,
  oriResizeFactor: 0.6,
  eventDelay: 200,
  imageThreshold: 0.85,
  imageQuality: 80,
  resizeFactor: 0.6,
};

// Create RBM instance
var rbm = new RBM(config);

// Important! Calculate the screen size, call it after start pressed!
rbm.init();

// Then using the following APIs of the RBM library

RBM library

rbm.log(args)
  • args any type - if argument is object, it will convert object to JSON string

For general output of logging information.

rbm.currentApp()

Returns Object - The current app in foreground. {packageName: String, activityName: String}

rbm.startApp(packageName, activityName)
  • packageName String

  • activityName String

Launch an app by packageName and activityName.

rbm.stopApp(packageName)
  • packageName String

Close an app by packageName.

rbm.click(position)
  • position Object - {x: Integer, y: Integer}

rbm.tapDown(position)
  • position Object - {x: Integer, y: Integer}

rbm.tapUp(position)
  • position Object - {x: Integer, y: Integer}

rbm.moveTo(position)
  • position Object - {x: Integer, y: Integer}

rbm.swipe(from, to, steps)
  • from Object - {x: Integer, y: Integer}

  • to Object - {x: Integer, y: Integer}

  • steps Integer - Interpolation points between from and to

rbm.keycode(label)
  • label String

rbm.typing(words)
  • words String

rbm.sleep()

Sleep with eventDelay.

rbm.getImagePath()
// /sdcard/Robotmon/scripts/com.your.app/images

Returns String - The path of the image folder. All about images used in this library will load and save within this folder.

rbm.screenshot(filename)
  • filename String

Save the screenshot in rbm.getImagePath().

rbm.oriScreencrop(filename, fromX, fromY, toX, toY)

// Examples:
rbm.oriScreencrop('startButton.png', 100, 200, 200, 300)
  • filename String

  • fromX Integer

  • fromY Integer

  • toX Integer

  • toY Integer

Crop the original screenshot and save it with filename. This function will resize the image with oriResizeFactor and compress with imageQuality.

rbm.screencrop(filename, fromX, fromY, toX, toY)

// Examples:
rbm.screencrop('startButton.png', 100, 200, 200, 300)
  • filename String

  • fromX Integer

  • fromY Integer

  • toX Integer

  • toY Integer

Crop the screenshot and save it with filename. This function will resize the image with resizeFactor and compress with imageQuality.

rbm.findImage(filename, threshold)

// Examples:
rbm.findImage('startButton.png', 0.9)
  • filename String

  • threshold Float

Returns Object - Find the image with filename in screen. {x: Integer, y: Integer, score: Float}

rbm.findImages(filename, threshold, countLimit, allowOverlap, deep)

// Examples:
rbm.findImages('startButton.png', 0.9, 3, false, false)
  • filename String

  • threshold Float

  • countLimit Integer

  • allowOverlap Boolean

  • deep Boolean

Returns Object - Find the image with filename in screen. {x: Integer, y: Integer, score: Float}

rbm.imageExists(filename, threshold)
  • filename String

  • threshold Float

Returns Boolean - Whether the image is exists in screen.

rbm.imageClick(filename, threshold)
  • filename String

  • threshold Float

Click the image if the image is exists in screen.

rbm.imageWaitClick(filename, timeout, threshold)
  • filename String

  • timeout Integer

  • threshold Float

Click the image if the image is exists in screen until timeout (milliseconds).

rbm.imageWaitShow(filename, timeout, threshold)
  • filename String

  • timeout Integer

  • threshold Float

Block until the image is found or timeout

rbm.imageWaitGone(filename, timeout, threshold)
  • filename String

  • timeout Integer

  • threshold Float

Block until the image is gone or timeout

rbm.keepScreenshot()

Keep the screenshot in memory. To avoid to many times screencap.

rbm.screencrop(fromX, fromY, toX, toY)
  • fromX Integer

  • fromY Integer

  • toX Integer

  • toY Integer

Keep the partial screenshot in memory. To avoid to many times screencap.

rbm.releaseScreenshot()

Release the screenshot in memory.

Using keepScreenshot

// Screencap three times
rbm.imageClick('apple.png', 0.9); // screencap, and release
rbm.imageClick('banana.png', 0.9); // screencap, and release
rbm.imageClick('cat.png', 0.9); // screencap, and release

// Screencap only one time (used when the screen has not changed)
rbm.keepScreenshot(); // screencap
rbm.imageClick('apple.png', 0.9); // no screencap, no release
rbm.imageClick('banana.png', 0.9); // no screencap, no release
rbm.imageClick('cat.png', 0.9); // no screencap, no release
rbm.releaseScreenshot(); // release

Last updated