Swappy: post next callback while waiting

Always post a Choreographer callbacks while waiting for a target frame
to prevent a deadlock when running slower than ~5FPS.

Change-Id: I852562071908b65f5d52f07f9365b62382d70c28
Test: bouncyball running at 2fps
2 files changed
tree: 2ea6722a677715e72b06a7bcbdde327fb7e2149a
  1. gradle/
  2. hooks/
  3. include/
  4. samples/
  5. src/
  6. test/
  7. third_party/
  8. .gitignore
  9. ab_info.py
  10. build.gradle
  11. gradle.properties
  12. gradlew
  13. gradlew.bat
  14. OWNERS
  15. PREUPLOAD.cfg
  16. README.md
  17. settings.gradle
README.md

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 https://android.googlesource.com/platform/manifest -b android-games-sdk
# Or for Googlers:
# repo init -u persistent-https://googleplex-android.git.corp.google.com/platform/manifest -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).

Samples

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).