All Projects → appetizerio → Replaykit

appetizerio / Replaykit

Licence: apache-2.0
[DEPRECATED] Command line tools for recording, replaying and mirroring touchscreen events for Android

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Replaykit

replaykit.py
Python SDK for using Appetizer replaykit
Stars: ✭ 18 (-91.47%)
Mutual labels:  replay, touchscreen
Marlin 2 0 X Anycubic I3 Mega S
Marlin 2.0.x Version for Anycubic i3 MEGA M/S/X with Anycubic TFT or the "new" DGUS Clone TFT - Now also with BLTouch!
Stars: ✭ 171 (-18.96%)
Mutual labels:  touchscreen
Adblib
Java ADB library
Stars: ✭ 145 (-31.28%)
Mutual labels:  adb
Noel
A universal, human-centric, replayable javascript event emitter.
Stars: ✭ 158 (-25.12%)
Mutual labels:  replay
Adb shell
A Python implementation of ADB with shell and FileSync functionality.
Stars: ✭ 148 (-29.86%)
Mutual labels:  adb
Dingdingautoplaycard
钉钉自动上下班打卡辅助,基于Python,adb,实现,打卡后自动发送邮件提醒。flask搭建web页面自动生成配置
Stars: ✭ 162 (-23.22%)
Mutual labels:  adb
Timecat
A Magical Web Recorder & Player 🖥
Stars: ✭ 1,955 (+826.54%)
Mutual labels:  replay
Adb Join Wifi
Helper app to allow joining a wifi AP directly from ADB
Stars: ✭ 183 (-13.27%)
Mutual labels:  adb
Fgo Py
全自动FGO脚本.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下?绝赞持续更新中
Stars: ✭ 167 (-20.85%)
Mutual labels:  adb
Scrcpy Gui
👻 A simple & beautiful GUI application for scrcpy. QQ群:734330215
Stars: ✭ 2,402 (+1038.39%)
Mutual labels:  adb
Workloadtools
A collection of tools to collect, analyze and replay SQL Server workloads, on premises and in the cloud
Stars: ✭ 154 (-27.01%)
Mutual labels:  replay
Adbsploit
A python based tool for exploiting and managing Android devices via ADB
Stars: ✭ 147 (-30.33%)
Mutual labels:  adb
Mobile Toolkit
📱 Shell scripts for Android and iOS device management
Stars: ✭ 161 (-23.7%)
Mutual labels:  adb
Android Otp Extractor
Extracts OTP tokens from rooted Android devices
Stars: ✭ 147 (-30.33%)
Mutual labels:  adb
Adb For Test
通过adb命令实现简单的点击、滑动、长按等效果,可通过比例定位元素、通过元素定位(需要Android版本高于4.0),用于Android Test,拥有monkeyrunner的绝大部分功能
Stars: ✭ 176 (-16.59%)
Mutual labels:  adb
Littlebee
关于帧同步和ECS的实现
Stars: ✭ 145 (-31.28%)
Mutual labels:  replay
Gapid
GAPID is a collection of tools that allows you to inspect, tweak and replay calls from an application to a graphics driver.
Stars: ✭ 1,975 (+836.02%)
Mutual labels:  replay
Linux Second Screen
Scripts to repurpose old android device as second monitor on linux
Stars: ✭ 160 (-24.17%)
Mutual labels:  adb
Adebar
Android DEvice Backup And Report, using Bash and ADB. Moved to https://codeberg.org/izzy/Adebar -- this is only a mirror now.
Stars: ✭ 192 (-9%)
Mutual labels:  adb
Xiaomiadbfastboottools
A simple tool for managing Xiaomi devices on desktop using ADB and Fastboot
Stars: ✭ 2,810 (+1231.75%)
Mutual labels:  adb

replaykit Build Status Windows Build

中文说明

replaykit is a command line tool intended for mobile continuous integration, which provides the ability to:

  • record touchscreen events from one device and replay to many (aspect ratios must be the same)
  • control multiple devices concurrently (e.g., run a shell command, install an app, etc.)
  • mirror the touchscreen events from one device to many in real time (aspect ratios must be the same)

replaykit can work on Windows 7+, MacOS Mavericks+ and Linux, available for Android API 9-27(9.0 aka. P), emulators, VMs (like Genymotion) and real devices. To integrate replaykit with existing CI infrastructure, consider the Python wrapper.

Please submit issues for bug reports, enhancements and feature requests. Pull requests for documentation improvement are welcomed too.

Installation

The executable file can be found in the darwin/ for MacOS, win32/ for Windows and linux/ for Ubuntu, Fedora and CentOS. You might want to add to PATH to use the tool globally. Linux and MacOS build are both 64-bit and Windows build is 32-bit (compatible with 64-bit as WOW). replaykit requires adb to be present in PATH. You can install the Android SDK and ensure <sdk>/platform-tools is in your PATH.

Control Multiple Devices

Suppose you have several devices attached to the development machine via USB and you want them to perform the same action.

First, make sure replaykit recognizes all of them devices:

./darwin/replaykit devices list

You should see a JSON output. Note the serialno field, which is the same as the adb devices output. A serialno uniquely identifies a connected device.

Next, you can try these:

DEVICE=serialno1,serialno2 # device serialnos, comma separated, no whitespace!
replaykit devices control $DEVICE uninstall com.helloworld # uninstall an app on those devices
replaykit devices control $DEVICE install hellworld.apk # install an app
replaykit devices control $DEVICE kill_all # kill all background apps
replaykit devices control $DEVICE launch_pkg com.helloworld # launch an app
replaykit devices control $DEVICE shell input keyevent KEYCODE_HOME # simulate the home button
replaykit devices control $DEVICE shell pm grant com.helloworld android.permission.SOME_PERMISSION  # grant a permission to an app 
replaykit devices control $DEVICE shell "input keyboard text 'Paste%stext%son%sAndroid%sDevice'"  # input text (pre Android 6)
replaykit devices control $DEVICE shell "input keyboard text 'Paste text on Android Device'"  # input text (Android 6+)
replaykit devices control $DEVICE shell screenrecord /sdcard/demo.mp4  # record screen into a video(Android 4.4+)

Basically everything you did with adb shell can now be replaced with replaykit devices control serialno1,serialno2 shell to perform that on multiple devices simultaneously.

And, just in case you need them:

Record and Replay touchscreen events

Replaykit can record touchscreen events from one device and replay back to many to automate stuff.

replaykit trace record --device serailno mytrace.trace

Now find the device and start touching. The touchsceen events will be captured and saved to mytrace.trace. If you are done, type in exit to stop. You are all set if seeing "Recorder stopped, trace saved to mytrace.trace". Try not to use Ctrl+C.

Check if the trace is good:

replaykit trace info mytrace.trace

Again, it shows a JSON about the recorded trace, showing the screen resolution, time length, how many fingers, etc. To modify the description of this trace, use replaykit trace describe mytrace.trace "the description to be added".

Next replay the trace back to see how it goes:

replaykit trace replay mytrace.trace serialno

You will see something like the video below:

Record and replay

If you want to replay to more than one devices, simply replace serialno with a comma-separated serialno list like serialno1, serialno2.

Mirror Touchscreen Events

With replaykit, you can mirror the touchscreen events from one device to other devices in real time.

replaykit devices mirror <from_device> <to_device>

The <from_device> is a single serialno while <to_device> can be a comma-separated list of device serialnos. Make sure all involving devices have the same aspect ratio. Otherwise the command will fail. For devices with the same aspect ratio, the touchscreen events will automatically scale to adapt to the screen resolution.

Here is a demo:

mirroring

ADB related

Finally, replaykit provides some commands to check the ADB environment.

replaykit adb start-server  # start the ADB server
replaykit adb kill-server  # kill the ADB server
replaykit adb detectadb  # this tells where the adb binary locates. If not found, tune your PATH
replaykit adb check-server  # check if the adb server is running properly now

License

Apache License v2

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].