Release notes

This page outline changes for each release of the Android Game Development Kit (AGDK) libraries. This was named as the Android Games SDK up till the v1.2.4 release.

2023.3.0.0 (June 2nd, 2023)

This release includes several bug fixes.

GameActivity

fixed Stability fixes in GameActivityEvents.

Android Memory Advice Library

feature Updated the machine learning model powering the library which can allow improved results for newer phones.

Android Performance Tuner

fixed Fixed a bug where the library crashes if max instrumentation keys are more than histogram count.
feature Updated the telemetry collection features in the library, allowing for more granular reporting of frame rendering times.

2023.2.0.0 (April 27th, 2023)

This release includes several bug fixes.

GameActivity

fixed Fixed early freeing of memory with historicalEventTimes.
fixed Fixed issue with historicalEventTimesNanos overflowing on 32bit systems.

Android Memory Advice Library

fixed Fixed a bug that prevented the static version of the library to be linked properly.
fixed Fixed a bug where the library couldn’t load the required TensorFlow Lite assets properly.

2023.1.0.0 (March 15th, 2023)

This major release has build system updates to build libraries faster from source.

GameActivity

changed Interface for historical event times is changed to overcome the 32 bit limitation.
feature Provided user access to configuration changes.
feature Optimized out most JNI calls in touch event handling.
fixed Fixed default OS handling of touch events, like handling system buttons.

GameController

feature Added ability to detect connection status of hardware keyboards.
feature Added ability to report motion data (accelerometer/gyroscope) from the main device (i.e. handset) as well as controllers.
changed Changed API and format for the controller definition database to reduce memory footprint and support additional features.

Android Frame Pacing library

feature Vulkan Frame Statistics are added.
feature A new API for clearing frame statistics is added.
changed The logs are all silent in release mode, they can be enabled in debug mode.

2022.0.0 (March 15th, 2022)

This major release includes the memory advice library and several fixes for other libraries.

GameActivity

feature Added handling of insets for positioning of game UI around the IME and cutouts.
feature Add key and motion event filters
fixed Fixes to avoid input event losses and prevent consuming all input events

Android Performance Tuner

changed Memory reporting is now as time-series rather than histograms
feature Allow programmatically setting upload interval
fixed Corrupted API key bug fixed

Android Frame Pacing library

feature Improvements to auto-mode
feature Add 'uninjectTracer' functions

Android Memory Advice Library

feature Added Memory Advice Library

2021.1.0 (July 12th, 2021)

Where we used to refer to this product as the Android Game SDK, it is now referred to as the Android Game Development Kit. This major release includes several new libraries along with minor bug fixes in the Android Frame Pacing and Android Performance Tuner libraries.

feature GameActivity is a new component that replaces and improves upon the NDK's NativeActivity.
feature GameTextInput is a new component that improves interaction with the Android soft keyboard.
feature GameController is a new component that allows easier interaction with and management of external controllers.

1.2.4 (April 21st, 2021)

This release is a bug fix release for Android Performance Tuner.

Android Performance Tuner

fixed Fix loading time and duration recording on devices with inconsistent CLOCK_BOOTTIME.

1.2.3 (March 10th, 2021)

This release adds Oboe to the Game SDK. There are no changes to the Android Frame Pacing library and to the Android Performance Tuner.

Oboe is an open-source C++ library for high-performance audio on Android. Oboe provides a single native API that works in Android 4.1 (API level 16) and higher.

1.2.2 (February 12th, 2021)

This release has improvements to the loading times API for Android Performance Tuner and several bug fixes. There are no changes to the Android Frame Pacing library.

Android Performance Tuner

feature Loading events must now be grouped with calls to TuningFork_startLoadingGroup and TuningFork_stopLoadingGroup.
fixed Calling TuningFork_flush immediately uploads data rather than queuing it for later upload.
fixed Intermittent upload failure due to JSON formatting of times.
fixed A problem with uploads on release builds.

1.2.1 (December 16th, 2020)

This release is an internal feature release for Android Performance Tuner and a promotion of the Jetpack libraries from alpha to beta. There are no changes to the Android Frame Pacing or Android Performance Tuner APIs.

Note that the Game SDK libraries must now be referred to individually when linking against them, rather than linking against the generic 'gamesdk' library. See the build settings for Android Frame Pacing: OpenGL, Android Frame Pacing: Vulkan and Android Performance Tuner.

Android Performance Tuner

feature When a player backgrounds a game during loading, an event is sent for later analysis of loading abandonment.

1.2.0 (October 29th, 2020)

The main change in this version is the addition of a mechanism to record loading times. There are also some bug fixes. Note that the Game SDK is now available via the AGDK Libraries Jetpack library.

Android Frame Pacing library

feature Auto-mode refresh rate switching support.
Note that for support of multiple refresh rates in Android 11, whether using auto-mode or not, SwappyGL_setWindow or SwappyVk_setWindow should be called.
fixed Auto-mode bug fixes.
fixed Vulkan bug fixes.

Android Performance Tuner

feature Loading times.
New functions TuningFork_startRecordingLoadingTime and TuningFork_stopRecordingLoadingTime should be called to record annotated loading time events. Time from app startup to TuningFork_init and the first tick are automatically recorded.
changed The previous method of setting a loading time annotation will no longer work.
feature Lifecycle events.
TuningFork_reportLifecycleEvent should be called upon the appropriate Java onCreate, etc. being called. This enables detailed crash reporting from within Android Performance Tuner.
changed More memory metrics are now recorded when TuningFork_enableMemoryRecording(true) is called.
changed Memory model change.
The maximum number of metrics of each type is now specified at start-up, rather than allocating space for all possible annotation combinations. See TuningFork_MetricLimits in tuningfork.h.
fixed No upload on metered connections.

1.1.0 (June 10th, 2020)

This version of the AGDK Libraries features the Android Performance Tuner metric reporting and quality tuning library (also known as Tuning Fork). This library is available for native game engines as well as Unity and has the following features:

feature Integration with the Android Frame Pacing library to automatically record frame times and other rendering metrics.
feature Frame timing information is recorded in histograms and uploaded periodically.
feature Annotation of timing data with the current game state.
feature Device characteristics, annotations, and quality settings are uploaded with the timing data to allow cross-sectional analysis.
feature Special treatment of annotations that signify level-loading time. Frame tick data is not recorded during loading, but the duration of each loading period is.
feature Ability to record custom timing information (using startTrace and endTrace).

1.0.2 (March 30th, 2020)

This version includes bug fixes and changes in the behavior of auto-mode.

fixed Bug fixes for swappy destruction and re-initialization.
changed Pipelining is now on by default. If auto-pipelining is on, Swappy can still decide to switch it off when the workload is very low.
changed When auto-mode is enabled, Swappy will decide to switch the swap interval only after 15% of frames within a 2-second window are either faster or slower than expected. Note that Swappy will never swap slower than the user-specified swap interval.

1.0.1 (February 19th, 2020)

This version is primarily a bug fix release.

fixed Clean up resources at exit on the SwappyFallback code path in Vulkan.
fixed SwappyVk_destroySwapchain no longer destroys device resources if there is more than one swapchain.
fixed The Swappy version is now printed in logcat.
fixed Crashes and deadlocks in Swappy_destroy for API level 24 and lower.
feature Support for custom thread managers (Swappy_setThreadFunctions).
feature Support for hooking of Vulkan functions (SwappyVk_setFunctionProvider).

1.0.0 (December 5th, 2019)

This initial version of the AGDK Libraries features the Android Frame Pacing library.

feature Display buffer synchronization.
feature Auto refresh rate mode and pipelining support.
feature Collection of frame rendering statistics.
feature Graceful selection of behavior at runtime, depending on the presence of the Android, OpenGL, and Vulkan features needed by Swappy.
feature Static and dynamic linking of the library.
feature Support for devices with multiple refresh rates.