Skip to content

xSAVIKx/AndroidScreencast

Repository files navigation

AndroidScreencast

Build Status GitHub Actions  Codacy Badge  Join the chat at https://gitter.im/AndroidScreencast/Lobby  Apache License

Description

AndroidScreencast was developed to view and control your android device from a PC.

This project gives the opportunity to use your phone even with a broken screen.

Features

  • No client needed
  • Support for Tap and Swipe gestures
  • Write messages using PC keyboard
  • Support for landscape mode
  • Browse your phone files on PC
  • Record video of your phone screen while browsing

Small wiki of project

Configuration

There are 2 ways to run application:

  1. Run ADB server on your own.
  2. Provide a correct app.properties file.

Run ADB server on your own

In order to run server on your own you have to run already installed (or one from our OS-specific bundle) adb with following command:

adb start-server

Note:

If app.properties will have adb.path filled, AndroidScreencast will shutdown the ADB server on application termination.

Additionally, in order to use for example remote ADB server with ssh forwarding you should not use app.properties or adb.path property should be commented.

Provide correct app.properties file

Right now to successfully run application you should create app.properties file in the same folder as AndroidScreencast's jar and provide at least one property - adb.path which should point to the adb executable file within your OS, for example such location could be configured for Windows OS:

adb.path=adb/windows/adb.exe

Both absolute and relative paths are supported.

Example of valid app.properties could be find here.

Also, we have got some valid OS-specific examples:

They are actually the same, just adb.path is OS-specific. Files listed above are automatically included into OS-specific bundles.

Additional properties

Here is the full list of available properties for application configuration. Properties should be places in the app.properties file in the same folder as AndroidScreencast's jar file.

#relative or absolute path to ADB
adb.path=./adb
#maximum time to wait for device (in seconds)
adb.device.timeout=30
#maximum time to execute adb command (in seconds)
adb.command.timeout=5
#initial application window width (in pixels)
app.window.width=1024
#initial application window height (in pixels)
app.window.height=768
#Defines whether application should look 'natively' to OS. Possible values: true/false
app.native.look=false

JNLP

Application is available using Java web start technology via androidscreencast.jnlp.

Java security configuration

Due to Java security restriction policy, that was updated in java 7 and is restricted even more in java 8, we're now not able to run JNLP without some security "hacks".

To use JNLP, please follow this article: How can I configure the Exception Site List?

Building and running from source

This project requires at least Java 8.

After cloning the project, run mvnw install.

The resulting artifacts will be created in the target subdirectory.

You can run the executable jar via java -jar target/androidscreencast-VERSION-executable.jar, replacing VERSION with the current version.

For example, java -jar target/androidscreencast-0.0.10s-executable.jar.

Additionally, OS-packages would be created with ADB executables bundled:

  • androidscreencast-VERSION-windows.zip
  • androidscreencast-VERSION-linux.tar.gz
  • androidscreencast-VERSION-macosx.tar.gz

In order to provide correct configuration see configuration section.

Requirements

Currently, AndroidScreencast works directly with adb input program through ddmlib and uses the functionality of:

  • adb input key
  • adb input tap
  • adb input swipe

Regarding this point, to use AndroidScreencast you need Smartphone running on Android with specific input program version. adb input tap and adb input swipe were introduced in Android 4.1.1.

So, right now AndroidScreencast support all Android versions equal or greater than Android 4.1.1.

Also, to run AndroidScreencast you will need adb installed (or you can use bundled in OS bundles adb).

Similar Projects

  • Seven Square - QT implementation of Android Screencast (actively developed)
  • Droid@Screen - implementation of Android Screencast in Java (fancy one, last release in 2013)
  • Android Screen Monitor - implementation of Android Screencast in Java (latest release in 2013)