blob: 874aebaca99c49d98873b8a7063fa56a489f2df7 [file] [log] [blame]
Version 2022.2.0
- GameActivity
-Fix issues with missing .aar in maven artifact for release 1.2.0
- Memory Advice Library
-Added getTotalMemory to the memory advice native API
Version 2022.1.0
This release adds new features to the GameActivity library and the AGDK Tunnel sample. It also
includes bug fixes for GameActivity, Tuning Fork and Swappy Libraries.
- GameActivity
-Allow derived classes of GameActivity to handle native library loading.
-Always load the native library in GameActivity.onCreate.
-Fallback to loading library with name "main" if no other library found.
- Android Performance Tuner (Tuning Fork)
-Fixed getpid returning 0 while trying to get memory telemetry.
-Stopped StopLoadingGroup from executing without an active loading group.
- Android Frame Pacing Library (Swappy)
-Fix for swappy not building with ndk <23 and >17.
-Exposed API to retrieve the refresh rates supported by the display.
- AGDK Tunnel sample app
-Added Memory Advice library support
-Added PGS v2 cloud save to AGDK Tunnel
-Integrate PGS sign-in with AGDK Tunnel
-Fixed storage error in AGDK Tunnel
Version 2022.0.0
This major release includes the memory advice library and several fixes for other libraries.
- GameActivity
- Added handling of insets for positioning of game UI around the IME and cutouts.
- Bug fixes to avoid input event losses and prevent consuming all input events.
- Add key and motion event filters.
- Android Performance Tuner (Tuning Fork)
- Fix corrupted API key bug
- Memory reporting is now as time-series rather than histograms.
- Allow programmatically setting upload interval.
- Android Frame Pacing Library (Swappy)
- Improvements to auto-mode
- Add 'uninjectTracer' functions.
- Memory Advice Library
- Initial version. See the header at include/memory_advice/memory_advice.h for more
Version 2021.1.0
This major release includes several new libraries, a rebranding and minor bug fixes in the Android
Frame Pacing and Android Performance Tuner libraries.
- GameActivity is a new component that replaces and improves upon the NDK's NativeActivity.
- GameTextInput is a new component that improves interaction with the Android soft keyboard.
- GameController is a new component that allows easier interaction with and management of external
- Where we used to refer to this product as the Android Game SDK, it is now referred to as
the Android Game Development Kit.
- See the individual libraries and the source code at for details of changes.
For full documentation, see
Version 1.2.4
This release is a bugfix release for APT.
- Fix loading time and duration recording on devices with inconsistent CLOCK_BOOTTIME.
Version 1.2.3
This release adds Oboe to the Game SDK. There are no changes to Android Frame Pacing and
Android Performance Tuner libraries.
- 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.
For more information, see
Version 1.2.2
This release adds new features to APT. There are no new features to Swappy.
- Android Performance Tuner (Tuning Fork) v 1.3.3
- Battery reporting. APT now uploads battery level information as part of its telemetry.
- Low memory event reporting. APT records if a previous crash was caused by a low memory (LMK) event.
- Loading time groups
- New functions TuningFork_startLoadingGroup and TuningFork_stopLoadingGroup enable bracketing
of several loading events into a group, e.g. those associated with game initialization or with
a certain level loading. Only one group can be active at a time.
- Abandoned loading. Loading that is occuring when a player backgrounds the game is logged for
special treatment by the backend.
Version 1.2.1
This release is an internal feature release for APT (v 1.1.7)
When a player backgrounds a game during loading, an event is sent for later analysis of loading
There are no new features to Swappy.
For more information, see
Version 1.2.0
This release includes several bug fixes for Swappy and new features for APT.
- Android Frame Pacing (Swappy) v 1.7
- 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.**
- Auto-mode bug fixes.
- Vulkan bug fixes.
- Android Performance Tuner (Tuning Fork) v 1.1
- Loading time
- New functions: TuningFork_recordLoadingTime, TuningFork_startRecordingLoadingTime,
TuningFork_stopRecordingLoadingTime should be called to record annotated loading time events.
Time from app startup to TuningFork_init and the first tick recorded by TuningFork are
automatically recorded.
- The previous method of setting a loading time annotation will no longer work.
- Memory metrics. More memory metrics are now recorded when TuningFork_enableMemoryRecording(true)
is called.
- Lifecycle events. TuningFork_reportLifecycleEvent should be called upon the appropriate Java
onCreate, etc. being called. This enables detailed crash reporting from within Tuning Fork.
- 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.
Version 1.1.0
- This version features the Android Performance Tuner (AKA Tuning Fork) metric reporting and
quality tuning library.
- Features of Android Performance Tuner
- Integration with the Android Frame Pacing Library to automatically record frame times and other
rendering metrics.
- Frame timing information is recorded in histograms and uploaded periodically.
- Annotation of timing data with the current game state.
- Device characteristics, annotations and quality settings are uploaded with the timing data to
allow cross-sectional analysis.
- 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.
- Ability to record custom timing information (startTrace/endTrace).
- In expert mode, quality settings are remotely setable using the Play console.
- A Unity plugin incorporating the Tuning Fork library is available separately.
- Known Issues:
- Incorrect frame pacing on Android 11 w/ multiple refresh rates. Fixed in version 1.2.0
Version 1.0.2
This release includes bug fixes and changes in the behaviour of auto-mode.
- Bug fixes for swappy destruction and re-initialization.
- 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.
- When auto-mode is enabled, Swappy will decide to switch 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.
Version 1.0.1
- This is primarily a bug fix release.
- Bugs fixed
- Clean up resources at exit in Swappy Vulkan on the SwappyFallback code path.
- SwappyVk_destroySwapchain now doesn't destroy device resources if there is more than one
- The Swappy version is now printed in logcat.
- Fixes to crashing and deadlocking in Swappy_destroy for API<=24
- New features
- Support for custom thread managers (Swappy_setThreadFunctions)
- Support for hooking of Vulkan functions (SwappyVk_setFunctionProvider)
Version 1.0.0
- This initial version of the Android Game SDK features the Android Frame Pacing library.
- Features
- Display buffer synchronization.
- Auto refresh rate mode and pipelining support.
- Collection of frame rendering statistics.
- Graceful selection of behavior at runtime, depending on the presence of the Android, OpenGL,
and Vulkan features needed by Swappy.
- Static and dynamic linking of the library.
- Support for devices with multiple refresh rates.
For more information, see