npm.io
2.0.4 • Published 7 years ago

nata-device

Licence
Version
2.0.4
Deps
3
Size
182 kB
Vulns
0
Weekly
0

nata-device


nata-device is an abstract of android device based on adbkit, which provides high level api such as click ,textinput and much more.

Requirements

  • Nodejs >= 4.3.2
  • adb

Getting started

$ npm install --save nata-device

Example

First make sure that the device with deviceId is connnected to the computer and can access by adb,then

import Device from 'nata-device'

const deviceId = 'xxxxx'
const device = new Device(deviceId)
const component = 'SamplePackage/.sampleActivity'

device.startActivity(component).then(() => {
  console.log('done')
})

Static methods

getOnlineDevices()

  • get online connected devices
  • devices An array of device objects. Device { id , type : enum[emulator, device, offline]}
  • @return {Promise } devices[Device]

isDeviceOnline(deviceId)

  • check if device is online
  • @param deviceId device id
  • @returns {boolean} whether device is online

API

constructor(deviceId)

The constructor of Device class

import Device from 'nata-device'

const deviceId = 'xxxxx'
const device = new Device(deviceId)

sleep(ms)

  • sleep for ms time
  • @param {Integer} ms time in ms
  • @return {Promise}
adbshell(cmd)
  • run adb shell commmand and get the output
  • @param {String} cmd command to run
  • @return {Promise}
clearAppData(pkg)
  • clear app data of pkg
  • @param {String} pkg - pkg to be cleared
  • @return {Promise} wheather success to delete
click(x, y)
  • click (x,y)
  • @param {String} x - coordinate x
  • @param {String} y - coordinate y
  • @return {Promise}
sendKeyEvent(keycode)
back()
  • press back key of the device
  • @return {Promise}
getFocusedPackageAndActivity()
  • get current focused package and activity
  • @return {Promise}
getCurrentPackageName()
  • get current package name
  • @return {Promise}
getCurrentActivity()
  • get current activity
  • @return {Promise}
dumpUI(target)
  • Dump ui xml and pull it to target file(default :local temp file)
  • @return {Promise} resolve the target xml file
startActivity(component)
  • start activity
  • @param {String} component pkg/act
  • @return {Promise}
pullFile(source, target)
  • pull file from device to local file system
  • @param {String} source src file path of the device
  • @param {String} target target file path of the local file system
  • @return {Promise} target file path
getOnlineDevices()
  • get online connected devices
  • devices An array of device objects. Device { id , type : enum[emulator, device, offline]}
  • @return {Promise }
shell(cmd)
  • run shell command and get the output
  • @param {String} cmd to run
  • @return {Promise}
logcat()
getPermissions(pkg)
  • getPermissions pkg
  • @param {String} pkg package of the app
  • @return {Promise} permissions [String]
getGrantedPermissions(pkg)
  • adb shell dumpsys package com.cvicse.zhnt | grep android.permission
  • get granted permissions
  • @param {String} pkg package of the app
  • @return {Promise} permissions [String] granted permissions
getNotGrantedPermissions(pkg)
  • get not granted permissions
  • @param {String} pkg package of the app
  • @return {Promise} notGrantedPermissions [String] not granted permissions
install(apk)
  • install apk
  • @param {String} apk path
  • @return {Promise}
getDeviceInfo()
  • get device info including name,id,version,sdk,cpu,manufactur and resolution
  • @returns {Promise}

DeviceInfo

  • name
  • id
  • verison
  • sdk
  • cpu
  • manufactur
  • resolution