Add build script

This is a mitigation for the fact that changes to the build config in
google3 will not be reflected in presubmits right away.

Bug: 142054548
Test: None
Change-Id: I6812bc9f743441687c9c40ce776c9b7bca603657
1 file changed
tree: c7881733c2705818a80bc0c48547321cbca79a30
  1. .gitignore
  4. PREUPLOAD.cfg
  8. build.gradle
  11. gradle/
  12. gradlew
  13. gradlew.bat
  14. hooks/
  15. include/
  16. samples/
  17. settings.gradle
  18. src/
  19. test/
  20. third_party/

Android Game SDK

Build the Game SDK

In order to build using prebuild NDK versions, this project must be initialized from a custom repo using:

mkdir android-games-sdk
cd android-games-sdk
repo init -u -b android-games-sdk
# Or for Googlers:
# repo init -u persistent- -b android-games-sdk
repo sync -c -j8

Build with prebuilt SDKs

cd gamesdk
ANDROID_HOME=../prebuilts/sdk ./gradlew gamesdkZip

will build static and dynamic libraries for several SDK/NDK pairs.

Build with locally installed SDK/NDK

By default, the gradle script builds target archiveZip.

./gradlew archiveZip # Without Tuning Fork
./gradlew archiveTfZip # With Tuning Fork

This will use a locally installed SDK/NDK pointed to by ANDROID_HOME (and ANDROID_NDK, if the ndk isn't in ANDROID_HOME/ndk-bundle).


./gradlew localUnitTests # Requires a connected ARM64 device to run
./gradlew localDeviceInfoUnitTests # No device required, tests are running on host


Samples are classic Android projects, using CMake to build the native code. They are also all triggering the build of the Game SDK.

Using Grade command line:

cd samples/bouncyball && ./gradlew assemble
cd samples/cube && ./gradlew assemble
cd samples/tuningfork/tftestapp && ./gradlew assemble

The Android SDK/NDK exposed using environment variables (ANDROID_HOME) will be used for building both the sample project and the Game SDK.

Using Android Studio

Open projects using Android Studio:

  • samples/bouncyball
  • samples/cube
  • samples/tuningfork/tftestapp

and run them directly (Shift + F10 on Linux, Control + R on macOS). The local Android SDK/NDK (configured in Android Studio) will be used for building both the sample project and the Game SDK.

Development and debugging

After opening a sample project using Android Studio, uncomment the line containing add_gamesdk_sources(). This will add the Swappy/Tuning Fork sources as part of the project. You can then inspect the source code (with working auto completions) and run the app in debug mode (with working breakpoints and inspectors).