69 lines
3.1 KiB
Markdown
69 lines
3.1 KiB
Markdown
# Moonlight Android
|
||
|
||
[](https://ci.appveyor.com/project/cgutman/moonlight-android/branch/master)
|
||
[](https://hosted.weblate.org/projects/moonlight/moonlight-android/)
|
||
|
||
[Moonlight for Android](https://moonlight-stream.org) is an open source client for NVIDIA GameStream and [Sunshine](https://github.com/LizardByte/Sunshine).
|
||
|
||
Moonlight for Android will allow you to stream your full collection of games from your Windows PC to your Android device,
|
||
whether in your own home or over the internet.
|
||
|
||
Moonlight also has a [PC client](https://github.com/moonlight-stream/moonlight-qt) and [iOS/tvOS client](https://github.com/moonlight-stream/moonlight-ios).
|
||
|
||
You can follow development on our [Discord server](https://moonlight-stream.org/discord) and help translate Moonlight into your language on [Weblate](https://hosted.weblate.org/projects/moonlight/moonlight-android/).
|
||
|
||
## Downloads
|
||
|
||
* [Google Play Store](https://play.google.com/store/apps/details?id=com.limelight)
|
||
* [Amazon App Store](https://www.amazon.com/gp/product/B00JK4MFN2)
|
||
* [F-Droid](https://f-droid.org/packages/com.limelight)
|
||
* [APK](https://github.com/moonlight-stream/moonlight-android/releases)
|
||
|
||
## Building
|
||
|
||
* Install Android Studio and the Android NDK
|
||
* Run ‘git submodule update --init --recursive’ from within moonlight-android/
|
||
* In moonlight-android/, create a file called ‘local.properties’. Add an ‘ndk.dir=’ property to the local.properties file and set it equal to your NDK directory.
|
||
* Build the APK using Android Studio or gradle
|
||
|
||
## Building with Nix
|
||
|
||
A `flake.nix` provides a reproducible dev environment and a fully hermetic
|
||
debug-APK build (Android SDK 34, NDK 27.0.12077973, Gradle, JDK 17). All
|
||
commands need `?submodules=1` so the `moonlight-common-c` + `enet` submodule
|
||
sources are included in the build.
|
||
|
||
```sh
|
||
# Dev shell: ANDROID_HOME / ANDROID_NDK_ROOT / JAVA_HOME + gradle, then build by hand
|
||
nix develop '.?submodules=1'
|
||
./gradlew assembleNonRootDebug
|
||
|
||
# Hermetic, offline build of the nonRoot debug APK (output in ./result/)
|
||
nix build '.?submodules=1#moonlight-android'
|
||
ls result/app-nonRoot-debug.apk
|
||
```
|
||
|
||
Maven dependencies are pinned in `deps.json` (a Nixpkgs Gradle mitm-cache
|
||
lockfile). Regenerate it after changing dependencies:
|
||
|
||
```sh
|
||
nix build '.?submodules=1#moonlight-android.mitmCache.updateScript' && ./result
|
||
```
|
||
|
||
Notes:
|
||
|
||
* If your Nix is configured to offload to a remote builder, add `--builders ""`
|
||
to build locally instead of copying the multi-GB SDK closure to the remote.
|
||
* The build targets the `nonRoot` `debug` variant; it is signed with the
|
||
generated Android debug keystore (not a release key).
|
||
|
||
## Authors
|
||
|
||
* [Cameron Gutman](https://github.com/cgutman)
|
||
* [Diego Waxemberg](https://github.com/dwaxemberg)
|
||
* [Aaron Neyer](https://github.com/Aaronneyer)
|
||
* [Andrew Hennessy](https://github.com/yetanothername)
|
||
|
||
Moonlight is the work of students at [Case Western](http://case.edu) and was
|
||
started as a project at [MHacks](http://mhacks.org).
|