From 9d141a7f50a0e81e1df751694f240b9ceac4f9f1 Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Tue, 12 Dec 2017 15:54:33 +0100 Subject: [PATCH] Add README --- README.md | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..28184f7b --- /dev/null +++ b/README.md @@ -0,0 +1,110 @@ +# ScrCpy + +This project displays screens of Android devices plugged on USB in live. + + +## Run + +### Runtime requirements + +This projects requires _FFmpeg_, _LibSDL2_ and _LibSDL2-net_. + +#### Linux + +Install the packages from your package manager. For example, on Debian: + + sudo apt install ffmpeg libsdl2-2.0.0 libsdl2-net-2.0.0 + + +#### Windows + +From [MSYS2]: + + pacman -S mingw-w64-x86_64-SDL2 + pacman -S mingw-w64-x86_64-SDL2_net + pacman -S mingw-w64-x86_64-ffmpeg + +[MSYS2]: http://www.msys2.org/ + + +#### MacOS + +TODO + + +## Build + +The project is divided into two parts: + - the server, running on the device (in `server/`); + - the client, running on the computer (in `app/`). + +The server is a raw Java project requiring Android SDK. It not an Android +project: the target file is a `.jar`, and a `main()` method is executed with +_shell_ rights. + +The client is a C project using [SDL] and [FFmpeg], built with [Meson]/[Ninja]. + +The root directory contains a `Makefile` to build both parts. + +[sdl]: https://www.libsdl.org/ +[ffmpeg]: https://www.ffmpeg.org/ +[meson]: http://mesonbuild.com/ +[ninja]: https://ninja-build.org/ + + +### Build requirements + +Install the [Android SDK], the JDK 8 (`openjdk-8-jdk`), and the packages +described below. + +[Android SDK]: https://developer.android.com/studio/index.html + + +#### Linux + + sudo apt install make gcc openjdk-8-jdk pkg-config meson zip \ + libavcodec-dev libavformat-dev libavutil-dev \ + libsdl2-dev libsdl2-net-dev + + +#### Windows + +Install these packages: + + pacman -S mingw-w64-x86_64-make + pacman -S mingw-w64-x86_64-gcc + pacman -S mingw-w64-x86_64-pkg-config + pacman -S mingw-w64-x86_64-meson + pacman -S zip + +Java 8 is not available in MSYS2, so install it manually and make it available +from the `PATH`: + + export PATH="$JAVA_HOME/bin:$PATH" + +### Generate + +Make sure your `ANDROID_HOME` variable is set to your Android SDK directory: + + export ANDROID_HOME=~/android/sdk + +From the project root directory, execute: + + make release + +This will generate the application in `dist/scrcpy/`. + + +## Run + +Plug a device, and execute: + + ./scrcpy + +If several devices are listed in `adb devices`, you must specify the _serial_: + + ./scrcpy 0123456789abcdef + +To change the default port (useful to launch several `scrcpy` simultaneously): + + ./scrcpy -p 1234