Android Games
For more information about the Android Game SDK, see the SDK documentation and the SDK release notes.
This table lists all the artifacts in the androidx.games
group.
Artifact | Stable Release | Release Candidate | Beta Release | Alpha Release |
---|---|---|---|---|
games-activity | 3.0.5 | - | - | 4.0.0-alpha01 |
games-controller | 2.0.2 | - | - | - |
games-frame-pacing | 2.1.2 | - | - | - |
games-memory-advice | 2.0.1 | - | 2.1.0-beta01 | - |
games-text-input | 3.0.4 | - | - | 4.0.0-alpha01 |
games-performance-tuner | 2.0.0 | - | - | - |
Requirements
games-memory-advice
The MemoryAdvice API requires your application to be built with NDK version r23.* or newer.
Declaring dependencies
To add a dependency on game, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle
file for
your app or module; games-activity
library has integrated the same version of
the game-text-input
library, hence GameActivity
apps can not include the
game-text-input
dependency again:
Groovy
android { ... // To use the Android Frame Pacing or Android Performance Tuner libraries, enable // native dependencies to be imported. Libraries will be made available to your CMake build // as packages named "games-frame-pacing" and "games-performance-tuner". buildFeatures { prefab true } } dependencies { // To use the Android Frame Pacing library implementation "androidx.games:games-frame-pacing:2.1.2" // To use the Android Performance Tuner implementation "androidx.games:games-performance-tuner:2.0.0" // To use the Games Activity library implementation "androidx.games:games-activity:3.0.5" // To use the Games Controller Library implementation "androidx.games:games-controller:2.0.2" // To use the Games Text Input Library // Do not include this if games-activity has been included implementation "androidx.games:games-text-input:3.0.4" }
Kotlin
android { ... // To use the Android Frame Pacing or Android Performance Tuner libraries, enable // native dependencies to be imported. Libraries will be made available to your CMake build // as packages named "games-frame-pacing" and "games-performance-tuner". buildFeatures { prefab = true } } dependencies { // To use the Android Frame Pacing library implementation("androidx.games:games-frame-pacing:2.1.2") // To use the Android Performance Tuner implementation("androidx.games:games-performance-tuner:2.0.0") // To use the Games Activity library implementation("androidx.games:games-activity:3.0.5") // To use the Games Controller Library implementation("androidx.games:games-controller:2.0.2") // To use the Games Text Input Library // Do not include this if games-activity has been included implementation("androidx.games:games-text-input:3.0.4") } }
For more information about dependencies, see Add build dependencies.
Add Gradle properties
You may need to add properties to the gradle.properties
file located in the
same directory as your app's (or module's) build.gradle
file. If the
gradle.properties
file does not exist, then create this file.
If you are using Android Studio 4.0, make sure gradle.properties
contains the
following lines:
# Enables experimental Prefab
android.enablePrefab=true
# Tell Android Studio we are using AndroidX
android.useAndroidX=true
If you are using Android Studio 4.1 or later, make sure gradle.properties
contains the following lines:
# Tell Android Studio we are using AndroidX
android.useAndroidX=true
Add packages with CMake
To make the imported Game SDK packages available, add the following to
your main app's CMakeLists.txt
file:
# Add the packages from the Android Game SDK
find_package(games-frame-pacing REQUIRED CONFIG)
find_package(games-performance-tuner REQUIRED CONFIG)
This will allow you to include header files from the Android Game SDK in your game code:
#include "swappy/swappyGL.h"
#include "tuningfork/tuningfork.h"
In your main app's CMakeLists.txt
file, find target_link_libraries
for the
main shared library. Add the references to the Android Game SDK static libraries
to include them in your shared library:
target_link_libraries(...
games-frame-pacing::swappy_static
games-performance-tuner::tuningfork_static
...)
Feedback
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
Games-Memory-Advice version 2.1
Version 2.1.0-beta01
November 29, 2023
androidx.games:games-memory-advice:2.1.0-beta01
is released. Version 2.1.0-beta01 contains these commits.
Version 2.1.0-alpha01
November 15, 2023
androidx.games:games-memory-advice:2.1.0-alpha01
is released. Version 2.1.0-alpha01 contains these commits.
New Features
- Updated the memory model of the library for better predictions.
API Changes
- Added a new API
getAvailableMemory()
that returns an estimate for the amount of memory that can safely be allocated, in bytes.
Version 2.1.0-alpha01
July 26, 2023
androidx.games:games-memory-advice:2.1.0-alpha01
is released. Version 2.1.0-alpha01 contains these commits.
API Changes
- Add
GetAvailableMemory
function
Bug Fixes
- Update Memory Advice model
- Fix shared
memory_advice
build target
Games-Memory-Advice version 2.0
Version 2.0.1
September 20, 2023
androidx.games:games-memory-advice:2.0.1
is released. Version 2.0.1 contains these commits.
Bug Fixes
- Fix the crash happening in the state watcher thread due to the thread not being attached to the JVM.
Version 2.0.0
September 6, 2023
androidx.games:games-memory-advice:2.0.0
is released. Version 2.0.0 contains these commits.
Major features of 2.0.0
- A new ML model has been trained and released in this version.
- An API to predict the amount of free memory is implemented.
Version 2.0.0-rc01
July 26, 2023
androidx.games:games-memory-advice:2.0.0-rc01
is released. Version 2.0.0-rc01 contains these commits.
New Features
- Included a new model to better predict remaining memory.
Bug Fixes
- Fixed Memory Advice not working with a shared STL.
Version 2.0.0-beta04
May 24, 2023
androidx.games:games-memory-advice:2.0.0-beta04
is released. Version 2.0.0-beta04 contains these commits.
New Features
- Updated the machine learning model powering the library which’ll allow improved results for newer phones
Version 2.0.0-beta03
April 5, 2023
androidx.games:games-memory-advice:2.0.0-beta03
is released. Version 2.0.0-beta03 contains these commits.
Bug Fixes
- Fixed a bug where the library couldn’t load the required tensorflow lite assets properly
Version 2.0.0-beta02
March 22, 2023
androidx.games:games-memory-advice:2.0.0-beta02
is released. Version 2.0.0-beta02 contains these commits.
Bug Fixes
- Fixed a bug that prevented the static version of the library to be linked properly
Version 2.0.0-beta01
February 22, 2023
androidx.games:games-memory-advice:2.0.0-beta01
is released. Version 2.0.0-beta01 contains these commits.
New Features
- No new changes
Version 2.0.0-alpha01
February 8, 2023
androidx.games:games-memory-advice:2.0.0-alpha01
is released. Version 2.0.0-alpha01 contains these commits.
API Changes
- Major version increase due to build files refactoring.
Bug Fixes
- Incorrect configuration of library assets now gives an error instead of crashing.
Games-Memory-Advice version 1.0.0
Version 1.0.0-beta03
November 9, 2022
androidx.games:games-memory-advice:1.0.0-beta03
is released. Version 1.0.0-beta03 contains these commits.
New Features
- No new changes
Version 1.0.0-beta01
March 9, 2022
androidx.games:games-memory-advice:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
- No changes since 1.0.0-alpha01.
Version 1.0.0-alpha01
February 23, 2022
androidx.games:games-memory-advice:1.0.0-alpha01
is released. Version 1.0.0-alpha01 contains these commits.
New Features
- This C library gives the facility to query and receive callbacks for changes in the memory state of a device which is running a game.
API Changes
- This is the initial release of the memory advice library. See the header at include/memory_advice/memory_advice.h for the full API.
External Contribution
- The library depends on tensorflow, whose license and those of transitive dependencies can be found at https://github.com/tensorflow/tensorflow.
Games-Text-Input Version 3.0
Version 3.0.4
August 7, 2024
androidx.games:games-text-input:3.0.4
is released. Version 3.0.4 contains these commits.
Bug Fixes
- Fixed functionality of deletion with and without text selection.
Games-Activity Version 4.0
Version 4.0.0-alpha01
October 16, 2024
androidx.games:games-activity:4.0.0-alpha01
and androidx.games:games-text-input:4.0.0-alpha01
are released. Version 4.0.0-alpha01 contains these commits.
New Features
GameTextInput
now supports Left/Right keys.
API Changes
- Obsolete Java interfaces of
GameTextInput
have been removed. - Prefabs for both
GameActivity
andGameTextInput
now include all source files.#include <GameActivity.cpp>
is not recommended anymore. Please link to a proper static or dynamic library instead, likegame-activity::game-activity_static
inCMake
. These libraries are shipped in the AAR file.
Bug Fixes
- Numerous fixes in
GameTextInput
have been made. Typing and removing functionality has been fixed. - Compatibility with most popular software keyboards have been improved.
- Fixed handling of special characters on hardware keyboards.
- Fixed a rare null pointer access in
GameActivity
.
Games-Activity Version 3.0
Version 3.0.5
August 7, 2024
androidx.games:games-activity:3.0.5
is released. Version 3.0.5 contains these commits.
Bug Fixes
- New release of
GameActivity
to match the 3.0.4 release ofGameTextInput
(fixed functionality of text deletion in inputs).
Version 3.0.4
July 10, 2024
androidx.games:games-activity:3.0.4
is released. Version 3.0.4 contains these commits.
Bug Fixes
- Fixed handling of null pointers.
- Fixed missing state updates for some states in
onConfiguration()
callback.
Version 3.0.3
April 17, 2024
androidx.games:games-activity:3.0.3
and androidx.games:games-text-input:3.0.3
are released. Version 3.0.3 contains these commits.
Bug Fixes
- Fixed compatibility issues with some software keyboards.
Version 3.0.2
April 3, 2024
androidx.games:games-activity:3.0.2
and androidx.games:games-text-input:3.0.2
are released. Version 3.0.2 contains these commits.
Bug Fixes
- We made several fixes to
GamesTextInput
which are aimed to improve software and hardware keyboards support. Also a bug has been fixed that was preventingGameTextInput
from being used withoutGameActivity
.
Version 3.0.1
March 20, 2024
androidx.games:games-activity:3.0.1
and androidx.games:games-text-input:3.0.1
are released. Version 3.0.1 contains these commits.
Bug Fixes
- Fixed a problem with special characters being typed and displayed.
Version 3.0.0
March 6, 2024
androidx.games:games-activity:3.0.0
and androidx.games:games-text-input:3.0.0
are released. Version 3.0.0 contains these commits.
Major features of 3.0.0
GameTextInput
has been reworked to be ready to use in games.- Some interfaces in both libraries have been changed with respect to version 2.0.0.
Bug Fixes
- Fixed compatibility issues with old NDKs
- Fixed Windows build problems
Version 3.0.0-rc01
February 21, 2024
androidx.games:games-activity:3.0.0-rc01
and androidx.games:games-text-input:3.0.0-rc01
are released. Version 3.0.0-rc01 contains these commits.
Bug Fixes
- Fixed the freeze where keyboard events were not properly handled by the looper.
Version 3.0.0-beta01
November 29, 2023
androidx.games:games-activity:3.0.0-beta01
and androidx.games:games-text-input:3.0.0-beta01
are released. Version 3.0.0-beta01 contains these commits.
Version 3.0.0-alpha01
November 15, 2023
androidx.games:games-activity:3.0.0-alpha01
and androidx.games:games-text-input:3.0.0-alpha01
are released. Version 3.0.0-alpha01 contains these commits.
API Changes
GameActivityMotionEvent
andGameActivityCallbacks
structures changed their sizes.onEditorAction
changes its return type from boolean to void.setImeEditorInfo
now expects enum parameters, not integers.- internal functions of
GameActivityEvents
are moved intoGameActivityEvents_internal.h
. GameTextInput
’s input types are also enumerations, not integers.
Games-Activity Version 2.1
Version 2.1.0-alpha02
September 6, 2023
androidx.games:games-activity:2.1.0-alpha02
and androidx.games:games-text-input:2.1.0-alpha02
are released. Version 2.1.0-alpha02 contains these commits.
Bug Fixes
- 32 bit devices compatibility has been improved.
Version 2.1.0-alpha01
July 26, 2023
androidx.games:games-activity:2.1.0-alpha01
is released. Version 2.1.0-alpha01 contains these commits.
New Features
- Provide an ability to override the creation of the
SurfaceView
instance - Add SDK version reporting
API Changes
- Use
int64_t
instead oflong
forhistoricalEventTimes
to avoid overruning on 32bit systems - Add
GameActivity_restartInput
method - Add a native callback to handle software keyboard visibility change
Bug Fixes
- Optimize touch event handling
- Correct destruction of a
GameActivityMotionEven
- Fix
GameActivityMotionEvent_getHistoricalAxisValue
index calculation - Fix bitmasks for the motion filter
Games-Activity Version 2.0
Version 2.0.2
May 24, 2023
androidx.games:games-activity:2.0.2
is released. Version 2.0.2 contains these commits.
Bug Fixes
- Stability fixes in
GameActivityEvents
(b/278017467)
Version 2.0.1
April 5, 2023
androidx.games:games-activity:2.0.1
is released. Version 2.0.1 contains these commits.
Bug Fixes
- Fixed early freeing of memory with
historicalEventTimes
. - Fixed issue with
historicalEventTimesNanos
overflowing on 32bit systems
Version 2.0.0
March 8, 2023
androidx.games:games-activity:2.0.0
is released. Version 2.0.0 contains these commits.
Major features of 2.0.0
- Changed interface for historical event times to overcome the 32 bit limit.
- Provided user access to configuration changes, like orientation.
- Provided up-to-date information in the
contentRect
structure. - Provided an easier way to customize default
SurfaceView
. - Fixed default OS handling of touch events, like handling system buttons.
- Optimized out most JNI calls in touch event handling; this used to affect performance.
Version 2.0.0-rc01
February 22, 2023
androidx.games:games-activity:2.0.0-rc01
is released. Version 2.0.0-rc01 contains these commits.
Version 2.0.0-beta01
February 8, 2023
androidx.games:games-activity:2.0.0-beta01
is released. Version 2.0.0-beta01 contains these commits.
Bug Fixes
- Fixed system buttons handling. (2a103e)
Version 2.0.0-alpha01
January 11, 2023
androidx.games:games-activity:2.0.0-alpha01
is released with no changes. Version 2.0.0-alpha01 contains these commits.
Games-Activity Version 1.2
Version 1.2.2
December 7, 2022
androidx.games:games-activity:1.2.2
is released. Version 1.2.2 contains these commits.
Bug Fixes
- The maximum number of motion events can now be set at runtime.
Version 1.2.2-alpha01
November 9, 2022
androidx.games:games-activity:1.2.2-alpha01
is released. Version 1.2.2-alpha01 contains these commits.
API Changes
- API now also contains version information in the form of
GAMEACTIVITY_PACKED_VERSION
. (I287e6) - Added
onContentRectChanged
callback which is called when the rectangle in the window where the content should be placed has changed. (I81396)
Bug Fixes
- Fixed events buffer overflow. Both
inputBuffer
->keyEvents
andmotionEvents
are now dynamically-allocated buffers. (Ic00f6) - Fails gracefully if out of memory. Added handling of
realloc()
errors during buffers resizing.
Version 1.2.1
July 13, 2022
androidx.games:games-activity:1.2.1
is released. Version 1.2.1 contains these commits.
Bug Fixes
- Fixed issues with missing .aar file in previous release.
Version 1.2.0
June 15, 2022
androidx.games:games-activity:1.2.0
is released. Version 1.2.0 contains these commits.
Important changes since 1.1.0
- 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.
Games-Activity Version 1.1
Version 1.1.0
February 23, 2022
androidx.games:games-activity:1.1.0
and androidx.games:games-controller:1.1.0
are released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
Games Activity:
- WindowInsets listening and querying for notch and IME response
- Add key and motion event filters
- Bug fixes:
- Add missing messages for compatibility with NativeActivity
- Fix signature of onNativeWindowResized
- Fix input event losses
Version 1.1.0-rc01
February 9, 2022
androidx.games:games-activity:1.1.0-rc01
and androidx.games:games-controller:1.1.0-rc01
are released. Version 1.1.0-rc01 contains these commits.
Version 1.1.0-beta03
January 26, 2022
androidx.games:games-activity:1.1.0-beta03
is released. Version 1.1.0-beta03 contains these commits.
Bug Fixes
- Fix signature of
onNativeWindowResized
- Maintain handle to native window in
onSurfaceChanged
Version 1.1.0-beta02
December 15, 2021
androidx.games:games-activity:1.1.0-beta02
is released. Version 1.1.0-beta02 contains these commits.
Bug Fixes
- Fix race condition in event filter setting.
Version 1.1.0-beta01
November 17, 2021
androidx.games:games-activity:1.1.0-beta01
is released. Version 1.1.0-beta01 contains these commits.
New Features
- Added support for querying window insets and listening for inset changes. This allows games to react to the IME popping-up and to deal with waterfall and camera cutout insets.
API Changes
void GameActivity_getWindowInsets(GameActivity* activity, enum GameCommonInsetsType type, GameCommonInsets* insets);
Bug Fixes
- Avoid consuming all key events: volume, camera, etc. are now passed through to the system.
Version 1.1.0-alpha01
September 29, 2021
androidx.games:games-activity:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
API Changes
onContentRectChanged
callback added toGameActivityCallbacks
Bug Fixes
- Missing messages added to android_native_app_glue.h:
APP_CMD_CONTENT_RECT_CHANGED
APP_CMD_WINDOW_REDRAW_NEEDED
Games Performance Tuner 2.0
Version 2.0.0
August 7, 2024
androidx.games:games-performance-tuner:2.0.0
is released. Version 2.0.0 contains these commits.
Major features of 2.0.0
- No major changes since 2.0.0beta01, we’re just marking this release as stable.
Version 2.0.0-beta01
January 10, 2024
androidx.games:games-performance-tuner:2.0.0-beta01
is released with no changes from the last alpha release. Version 2.0.0-beta01 contains these commits.
Version 2.0.0-alpha07
November 29, 2023
androidx.games:games-performance-tuner:2.0.0-alpha07
is released. Version 2.0.0-alpha07 contains these commits.
Bug Fixes
- Fixed memory telemetry reporting sometimes reporting wrong values
Version 2.0.0-alpha06
November 1, 2023
androidx.games:games-performance-tuner:2.0.0-alpha06
is released. Version 2.0.0-alpha06 contains these commits.
Version 2.0.0-alpha05
August 23, 2023
androidx.games:games-performance-tuner:2.0.0-alpha05
is released. Version 2.0.0-alpha05 contains these commits.
New Features
- Migrated Protobuf library to Protobuf lite.
Bug Fixes
- Fixed issues with dangling pointer.
Version 2.0.0-alpha04
April 19, 2023
androidx.games:games-performance-tuner:2.0.0-alpha04
is released. Version 2.0.0-alpha04 contains these commits.
New Features
- Updated the telemetry collection features in the library, allowing for more granular reporting of frame rendering times.
Bug Fixes
- Fixed a bug where the library crashes if max instrumentation keys are more than histogram count.
Version 2.0.0-alpha03
February 22, 2023
androidx.games:games-performance-tuner:2.0.0-alpha03
is released. Version 2.0.0-alpha03 contains these commits.
Bug Fixes
- Games-Performance-Tuner has been moved to a new release process. There should be no behavior changes.
Version 2.0.0-alpha02
February 8, 2023
androidx.games:games-performance-tuner:2.0.0-alpha02
is released. Version 2.0.0-alpha02 contains these commits.
API Changes
TuningFork_predictQualityLevels
API added; which will help predict the correct quality level/fidelity parameters to use.
Games Performance Tuner 1.6
Version 1.6.1-alpha01
November 9, 2022
androidx.games:games-performance-tuner:1.6.1-alpha01
is released. Version 1.6.1-alpha01 contains these commits.
New Features
- No new changes
Version 1.6.0
June 15, 2022
androidx.games:games-performance-tuner:1.6.0
is released. Version 1.6.0 contains these commits.
Important changes since 1.5.0
- Fixed getpid returning 0 while trying to get memory telemetry.
- Stopped StopLoadingGroup from executing without an active loading group.
Games Performance Tuner 1.5.0
Version 1.5.0
February 9, 2022
androidx.games:games-performance-tuner:1.5.0
is released. Version 1.5.0 contains these commits.
Important changes since 1.4.0
- Programmatically change the interval between uploads, rather than it being hard-coded in the initial settings.
- Added function:
TuningFork_setAggregationStrategyInterval
- Added function:
- Fix for memory corruption in API key on
API<=23
Version 1.5.0-rc01
January 26, 2022
androidx.games:games-performance-tuner:1.5.0-rc01
is released. Version 1.5.0-rc01 contains these commits.
Bug Fixes
- Fix for memory corruption in API key on API<=23
Version 1.5.0-beta02
December 15, 2021
androidx.games:games-performance-tuner:1.5.0-beta02
is released. Version 1.5.0-beta02 contains these commits.
API Changes
- Remove ABI-breaking change from
TuningFork_Settings
.
Version 1.5.0-beta01
September 29, 2021
androidx.games:games-performance-tuner:1.5.0-beta01
is released. Version 1.5.0-beta01 contains these commits.
New Features
- No changes from alpha release. That release had:
- Programmatically change the interval between uploads, rather than it being hard-coded in the initial settings.
API Changes
- No changes from alpha release. That release had:
- New function:
TuningFork_setAggregationStrategyInterval
- New field in
TuningFork_Settings: aggregation_strategy_intervalms_or_count
- New function:
Version 1.5.0-alpha01
August 18, 2021
androidx.games:games-performance-tuner:1.5.0-alpha01
is released. Version 1.5.0-alpha01 contains these commits.
New Features
- It is now possible to set the interval between APT uploads programmatically, rather than using the settings file.
API Changes
- Added function:
TuningFork_setAggregationStrategyInterval
- Added field to TuningFork_Settings struct:
aggregation_strategy_intervalms_or_count
Games-Activity Version 1.0.0
Version 1.0.0
August 4, 2021
androidx.games:games-activity:1.0.0
, androidx.games:games-controller:1.0.0
, and androidx.games:games-text-input:1.0.0
are released. Version 1.0.0 contains these commits.
Major features of 1.0.0
This is the initial release to stable of Games-Activity, Games-Controller and Games-Text-Input. See the AGDK Home Page for more information.
Version 1.0.0-rc01
July 12, 2021
androidx.games:games-activity:1.0.0-rc01
is released. Version 1.0.0-rc01 contains these commits.
Bug Fixes
- Fix return type of
GameActivityCallbacks::onSaveInstanceState
Version 1.0.0-beta01
June 30, 2021
androidx.games:games-activity:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
API Changes
- Rename
GameActivityInputInfo
toGameActivityPointerAxes
. onNativeWindowResized
callback now gives width and height of window.onContentRectChanged
callback has been removed.onLowMemory
was renamed toonTrimMemory
.GameActivity_setWindowFormat
removed.- Improved ownership model for
GameActivityMotionEvents
andGameActivityMotionEvent
pointers. - Improved ownership model of user state in
onSaveInstanceState
callback.
Version 1.0.0-alpha01
June 16, 2021
androidx.games:games-activity:1.0.0-alpha01
is released.
New Features
- Games-Activity is a new library that replaces NativeActivity as the recommended way to integrate a C/C++ game with Android.
Games-Controller Version 2.0
Version 2.0.2
June 12, 2024
androidx.games:games-controller:2.0.2
is released. Version 2.0.2 contains these commits.
Bug Fixes
- Fixed issue where controller connected callbacks were not firing for controllers already connected before
Paddleboat_init
. - Fixed issue where game controller touchpads were not registering touchpad presses in
Paddleboat_processGameActivityMotionInputEvent
without manually enabling the pressure axis. - Fixed issue where game controller touchpad events were not being marked as consumed by
Paddleboat_processGameActivityMotionInputEvent
.
Version 2.0.1
September 20, 2023
`androidx.games:games-controller:2.0.1 ' is released. Version 2.0.1 contains these commits.
Games Controller Bug fixes:
- Fix rare
NullReferenceException
condition inonInputDeviceChanged
handler. - Fix to prevent certain USB keyboards from improperly registering as game controllers.
Version 2.0.0
March 8, 2023
androidx.games:games-controller:2.0.0
is released. Version 2.0.0 contains these commits.
Major features of 2.0.0
- Added ability to detect connection status of hardware keyboards.
- Added ability to report motion data (accelerometer/gyroscope) from the main device (i.e. handset) as well as controllers.
- Changed API and format for the controller definition database to reduce memory footprint and support additional features.
Version 2.0.0-alpha01
January 11, 2023
androidx.games:games-controller:2.0.0-alpha01
is released. Version 2.0.0-alpha01 contains these commits.
New Features
- Hardware keyboard detection
- Integrated sensor motion data reporting support (i.e. receiving gyroscope and accelerometer data from the phone itself)
- New optimized controller mapping data format
API Changes
- New API calls for hardware keyboard:
Paddleboat_getPhysicalKeyboardStatus
andPaddleboat_setPhysicalKeyboardStatusCallback
- New API calls for integrated sensor motion data reporting:
Paddleboat_getIntegratedMotionSensorFlags
andPaddleboat_setMotionDataCallbackWithIntegratedFlags
- New API calls for revised controller mapping data format:
Paddleboat_addControllerRemapDataFromFd
,Paddleboat_addControllerRemapDataFromFileBuffer
- Deprecated old mapping API calls:
Paddleboat_addControllerRemapData
andPaddleboat_getControllerRemapTableData
Bug Fixes
- Fixed compatibility issue with motion events from GameActivity 1.2.2 and higher
Games-Controller Version 1.1.0
Version 1.1.0
February 23, 2022
androidx.games:games-activity:1.1.0
and androidx.games:games-controller:1.1.0
are released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
Games Activity:
- WindowInsets listening and querying for notch and IME response
- Add key and motion event filters
- Bug fixes:
- Add missing messages for compatibility with NativeActivity
- Fix signature of onNativeWindowResized
- Fix input event losses
Version 1.1.0-rc01
February 9, 2022
androidx.games:games-controller:1.1.0-rc01
is released. Version 1.1.0-rc01 contains these commits.
Version 1.1.0-beta01
January 26, 2022
androidx.games:games-controller:1.1.0-beta01
is released with no changes since 1.1.0-alpha01
. Version 1.1.0-beta01 contains these commits.
Version 1.1.0-alpha01
December 15, 2021
androidx.games:games-controller:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
New Features
Added support for battery status, dual-motor vibration, light control and motion axis reporting on supported controllers when running on Android S or higher.
API Changes
- Added
Paddleboat_setMotionDataCallback
function for registering controller motion data callbacks - Added
Paddleboat_setControllerLight
function for changing controller light settings. - Added
Paddleboat_Controller_Battery
structure toPaddleboat_Controller_Data
- New structures:
Paddleboat_Controller_Battery
Paddleboat_Motion_Data
- New enums:
Paddleboat_BatteryStatus
Paddleboat_LightType
Paddleboat_Motion_Type
- New controller flags:
PADDLEBOAT_CONTROLLER_FLAG_ACCELEROMETER
PADDLEBOAT_CONTROLLER_FLAG_GYROSCOPE
PADDLEBOAT_CONTROLLER_FLAG_LIGHT_PLAYER
PADDLEBOAT_CONTROLLER_FLAG_LIGHT_RGB
PADDLEBOAT_CONTROLLER_FLAG_BATTERY
Bug Fixes
- Added alternate deviceId database entry for PS4 controller
- Added API >=31 database entry for PS5 controller
Games-Controller Version 1.0.0
Version 1.0.0
August 4, 2021
androidx.games:games-activity:1.0.0
, androidx.games:games-controller:1.0.0
, and androidx.games:games-text-input:1.0.0
are released. Version 1.0.0 contains these commits.
Major features of 1.0.0
This is the initial release to stable of Games-Activity, Games-Controller and Games-Text-Input. See the AGDK Home Page for more information.
Version 1.0.0-rc02
July 21, 2021
androidx.games:games-controller:1.0.0-rc02
is released. Version 1.0.0-rc02 contains these commits.
Bug Fixes
- Fixed packaging error that caused Prefab import to fail on empty, unused architecture/version permutations.
Version 1.0.0-rc01
July 12, 2021
androidx.games:games-controller:1.0.0-rc01
is released. Version 1.0.0-rc01 contains these commits.
Bug Fixes
- Fixed an incompatibility issue with the latest
GameActivity
Version 1.0.0-beta01
June 30, 2021
androidx.games:games-controller:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
API Changes
- Functions which returned a boolean for success or failure now return a
Paddleboat_Error_Code
enum. Paddleboat_onPause
renamed toPaddleboat_onStop
Paddleboat_onResume
renamed toPaddleboat_onStart
- Paddleboat_processGameActivityEvent split into two functions:
Paddleboat_processGameActivityKeyInputEvent
andPaddleboat_processGameActivityMotionInputEvent
- Removed extended controller features that required building against a preview Android S SDK
- Added
Paddleboat_getBackButtonConsumed
function - Controller and mouse status callbacks now have an optional parameter of a pointer to user defined data
- Moved controller name string out of device info structure, now accessed via
Paddleboat_getControllerName
function
Bug Fixes
- Fixed an issue where a controller that doesn’t initially report itself as a controller, but later on does via an onInputDeviceChanged message, wasn’t being properly detected as a controller connection.
Version 1.0.0-alpha01
June 16, 2021
androidx.games:games-controller:1.0.0-alpha01
is released.
New Features
- Games-Controller is a new library that provides a C API for detecting, reading input from, and interacting with game controller devices.
Games-Text-Input 2.1
Version 2.1.0-alpha01
July 26, 2023
androidx.games:games-text-input:2.1.0-alpha01
is released. Version 2.1.0-alpha01 contains these commits.
New Features
- Add a support of multi-line and single-line modes
API Changes
- Add
isSoftwareKeyboardVisible
function - Add bitfield definitions for
GameActivity_setImeEditorInfo
- Add
onEditorAction
callback
Bug Fixes
- Fix for hardware and software keyboards being out of sync
- Clear focus when soft keyboard is hidden
Games-Text-Input 2.0
Version 2.0.0
March 8, 2023
androidx.games:games-text-input:2.0.0
is released. Version 2.0.0 contains these commits.
Important changes since 1.1.1
- Major version update due to the changes to the build system, there are no updates to the library/API itself.
Games-Text-Input Version 1.1
Version 1.1.2-alpha01
November 9, 2022
androidx.games:games-text-input:1.1.2-alpha01
is released. Version 1.1.2-alpha01 contains these commits.
New Features
- No new changes
Version 1.1.1
July 13, 2022
androidx.games:games-text-input:1.1.1
is released. Version 1.1.1 contains these commits.
Bug Fixes
- Fixed issues with missing .aar file in previous release.
Version 1.1.0
February 9, 2022
androidx.games:games-text-input:1.1.0
is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
- Added WindowInsets listening and querying functionality to GameTextInput
- Add missing gamecommon.h
header
Version 1.1.0-rc01
January 26, 2022
androidx.games:games-text-input:1.1.0-rc01
is released. Version 1.1.0-rc01 contains these commits.
Version 1.1.0-beta01
December 15, 2021
androidx.games:games-text-input:1.1.0-beta01
is released. Version 1.1.0-beta01 contains these commits.
Bug Fixes
- Fix waterfall and IME insets
- Add missing gamecommon.h header
Version 1.1.0-alpha01
October 13, 2021
androidx.games:games-text-input:1.1.0-alpha01
is released. Version 1.1.0-alpha01 contains these commits.
API Changes
- Added IME insets functionality to GameTextInput
Games-Text-Input Version 1.0
Version 1.0.0
August 4, 2021
androidx.games:games-activity:1.0.0
, androidx.games:games-controller:1.0.0
, and androidx.games:games-text-input:1.0.0
are released. Version 1.0.0 contains these commits.
Major features of 1.0.0
This is the initial release to stable of Games-Activity, Games-Controller and Games-Text-Input. See the AGDK Home Page for more information.
Version 1.0.0-rc01
July 12, 2021
androidx.games:games-text-input:1.0.0-rc01
is released with no changes. Version 1.0.0-rc01 contains these commits.
Version 1.0.0-beta01
June 30, 2021
androidx.games:games-text-input:1.0.0-beta01
is released. Version 1.0.0-beta01 contains these commits.
API Changes
- Improved ownership model of GameTextInputState objects.
- Tidying of types to be consistent with NDK.
Version 1.0.0-alpha01
June 16, 2021
androidx.games:games-text-input:1.0.0-alpha01
is released.
New Features
- Games-Text-Input is a new library to help game developers use Android soft keyboard input from C/C++.
Games Frame Pacing Version 2.1
Version 2.1.2
July 24, 2024
androidx.games:games-frame-pacing:2.1.2
is released. Version 2.1.2 contains these commits.
Bug Fixes
- Swappy now uses
AChoreographer_postVsyncCallback
from API 33 to calculate the presentation time more accurately. This fixes a bug on 120hz devices where frames are dropped.
Version 2.1.1
July 10, 2024
androidx.games:games-frame-pacing:2.1.1
is released. Version 2.1.1 contains these commits.
Bug Fixes
- Properly unregister display listener from swappy to avoid a hang.
- Fix a crash in
ChoreographerFilter::onSettingsChanged
using destroyed mutex.
Version 2.1.0
November 15, 2023
androidx.games:games-frame-pacing:2.1.0
is released. Version 2.1.0 contains these commits.
Version 2.1.0-rc01
September 20, 2023
androidx.games:games-frame-pacing:2.1.0-rc01
is released. Version 2.1.0-rc01 contains these commits.
Version 2.1.0-beta01
May 24, 2023
androidx.games:games-frame-pacing:2.1.0-beta01
is released. Version 2.1.0-beta01 contains these commits.
Bug Fixes
- Timeout in case
NDKChoreographer
initialization fails (ef466d) - When using
SwappyGL_getSupportedRefreshPeriodsNS
query refresh rates explicitly from the system (c85235)
Version 2.1.0-alpha01
April 5, 2023
androidx.games:games-frame-pacing:2.1.0-alpha01
is released. Version 2.1.0-alpha01 contains these commits.
New Features
- New API to reset the frame-pacing state.
- New API to disable swappy’s frame-pacing impact while still observing the CPU & GPU times.
API Changes
SwappyGL_resetFramePacing/SwappyVk_resetFramePacing
can now be used to reset the internal frame-pacing state. The frame pacing will now only consider data from the point when the reset API is called.SwappyGL_enableFramePacing/SwappyVk_enableFramePacing
can now be used to enable/disable swappy’s frame pacing. When disabled,SwappyGL_enableBlockingWait/SwappyVk_enableBlockingWait
can be used to control whether a blocking wait of the last frame’s GPU work happens when frame-pacing is disabled.
Bug Fixes
- Performance improvements are made for GPU bound cases when using Swappy GL API.
Games Frame Pacing Version 2.0
Version 2.0.0
March 8, 2023
androidx.games:games-frame-pacing:2.0.0
is released. Version 2.0.0 contains these commits.
Important changes since 1.10.1
- The build system went through major changes leading to only one library generated instead of multiple per SDK/NDK version.
- Vulkan Frame Statistics are added.
- A new API for clearing frame statistics is added.
- The logs are all silent in release mode, they can be enabled in debug mode.
Version 2.0.0-rc01
February 22, 2023
androidx.games:games-frame-pacing:2.0.0-rc01
is released. Version 2.0.0-rc01 contains these commits.
New Features
- Logging is now hidden behind a compile flag. By default release build of the library has no logging, and debug release of the library has all the logging turned on.
Version 2.0.0-beta01
February 8, 2023
androidx.games:games-frame-pacing:2.0.0-beta01
is released. Version 2.0.0-beta01 contains these commits.
New Features
- New API introduced to clear frame statistics.
API Changes
- Added
SwappyGL_clearStats
andSwappyGL_clearStats
APIs.
Version 2.0.0-alpha01
January 11, 2023
androidx.games:games-frame-pacing:2.0.0-alpha01
is released. Version 2.0.0-alpha01 contains these commits.
New Features
- Added vulkan frame statistics
API Changes
- Major version increase due to build files refactoring
- Added 3 new APIs :
SwappyVk_enableStats
,SwappyVk_recordFrameStart
, andSwappyVk_getStats
Bug Fixes
- Apply threshold only in auto swap mode (Ic0786)
Games Frame Pacing 1.10
Version 1.10.2-alpha01
November 9, 2022
androidx.games:games-frame-pacing:1.10.2-alpha01
is released. Version 1.10.2-alpha01 contains these commits.
New Features
- No new changes
Version 1.10.1
June 15, 2022
androidx.games:games-frame-pacing:1.10.1
is released. Version 1.10.1 contains these commits.
Bug Fixes
- Fix for swappy not building with ndk <23 and >17.
- Exposed API to retrieve the refresh rates supported by the display.
Version 1.10.0
February 23, 2022
androidx.games:games-frame-pacing:1.10.0
is released. Version 1.10.0 contains these commits.
Important changes since 1.9.0
- Ignore polluting choreographer filter inputs and smooth more to prevent freezes on emulator
- Add *_uninjectTracer functions.
Version 1.10.0-rc01
February 9, 2022
androidx.games:games-frame-pacing:1.10.0-rc01
is released. Version 1.10.0-rc01 contains these commits.
Version 1.10.0-beta01
January 26, 2022
androidx.games:games-frame-pacing:1.10.0-beta01
is released. Version 1.10.0-beta01 contains these commits.
Version 1.10.0-alpha01
December 15, 2021
androidx.games:games-frame-pacing:1.10.0-alpha01
is released. Version 1.10.0-alpha01 contains these commits.
New Features
- Addition of
SwappyGL_uninjectTracer
function.
API Changes
- Remove callbacks that were previously added using
SwappyGL_injectTracer
by usingSwappyGL_uninjectTracer(const SwappyTracer *t)
API.
Games Frame Pacing 1.9
Version 1.9.1
October 13, 2021
androidx.games:games-frame-pacing:1.9.1
is released. Version 1.9.1 contains these commits.
Bug Fixes
- Fixed b/199487756
Version 1.9.0
July 12, 2021
androidx.games:games-frame-pacing:1.9.0
is released. Version 1.9.0 contains these commits.
Important changes since 1.7.0
- Updated to match internal versioning scheme.
Games Frame Pacing 1.7.0
Version 1.7.0
June 30, 2021
androidx.games:games-frame-pacing:1.7.0
is released. Version 1.7.0 contains these commits.
Version 1.7.0-rc01
June 2, 2021
androidx.games:games-frame-pacing:1.7.0-rc01
is released. Version 1.7.0-rc01 contains these commits.
Version 1.7.0-beta02
February 24, 2021
androidx.games:games-frame-pacing:1.7.0-beta02
is released.
Version 1.7.0-beta01
December 16, 2020
androidx.games:games-frame-pacing:1.7.0-beta01
is released.
Games Performance Tuner 1.4.3
Version 2.0.0-rc01
July 24, 2024
androidx.games:games-performance-tuner:2.0.0-rc01
is released. Version 2.0.0-rc01 contains these commits.
Version 1.4.3
July 12, 2021
androidx.games:games-performance-tuner:1.4.3
is released. Version 1.4.3 contains these commits.
Important changes since 1.1.0
- Updated to match internal versioning scheme.
Games Performance Tuner 1.1.0
Version 1.1.0
June 30, 2021
androidx.games:games-performance-tuner:1.1.0
is released. Version 1.1.0 contains these commits.
Version 1.1.0-rc01
June 2, 2021
androidx.games:games-performance-tuner:1.1.0-rc01
is released. Version 1.1.0-rc01 contains these commits.
Version 1.1.0-beta03
April 21, 2021
androidx.games:games-performance-tuner:1.1.0-beta03
is released.
Version 1.1.0-beta02
February 24, 2021
androidx.games:games-performance-tuner:1.1.0-beta02
is released.
Version 1.1.0-beta01
December 16, 2020
androidx.games:games-performance-tuner:1.1.0-beta01
is released.
Version 1.1.0-alpha01
androidx.games:games-performance-tuner:1.1.0-alpha01 is released.
Version 1.0.0
Version 1.0.0-alpha02
August 12, 2020
The Android Gaming library was renamed to the Android Games library.
androidx.gaming -> androidx.games
Version 1.0.0-alpha01
June 10, 2020
androidx.games:1.0.0-alpha01 is released.