This page describes the Google Play Core Library and how to import it into your project.
What is Play Core?
The Play Core Library is your app’s runtime interface with the Google Play Store. Some of the things you can do with Play Core include the following:
- Download additional language resources
- Manage delivery of feature modules
- Manage delivery of asset packs
- Trigger in-app updates
- Request in-app reviews
The Play Core Library is available in Java, native, and Unity. For more information about the latest Play Core Library release, see the Release notes.
Import the Play Core Library into your project
Before you can start using the Play Core Library, you need to first import it into your app project. The steps you need to take depend on whether you're developing in Java, Kotlin, native, or are using Unity.
Java or Kotlin
If you’re developing your project using Java or Kotlin, you can import the Play Core Library into your Android project as a Gradle dependency, as shown below:
// In your app’s build.gradle file: ... dependencies { // This dependency is downloaded from the Google’s Maven repository. // So, make sure you also include that repository in your project's build.gradle file. implementation 'com.google.android.play:core:1.9.0' // For Kotlin users also import the Kotlin extensions library for Play Core: implementation 'com.google.android.play:core-ktx:1.8.1' ... }
The Play Core KTX library is optional and provides Kotlin coroutines versions for the asynchronous method calls in the regular Play Core Library, as well as other useful extensions that make using the APIs more idiomatic from Kotlin.
Native
The Play Core Native SDK provides a C/C++ API interface for Play Asset Delivery. The SDK is designed for building ARM and x86 native libraries with CMake and for using Gradle to generate Android App Bundles and APKs.
Set up your development environment
Do either of the following:
- Install Android Studio version 4.0 or higher. Use the SDK Manager UI to install Android SDK Platform version 10.0 (API level 29).
- Install the Android SDK command-line tools
and use
sdkmanager
to install Android SDK Platform version 10.0 (API level 29).
Prepare Android Studio for native development by using the SDK Manager to install the latest CMake and Android Native Development Kit (NDK). For more information on creating or importing native projects, see Getting Started with the NDK.
Download the zip file and extract it alongside your project.
Download Link Size SHA-256 Checksum 55.4 MB b7d21a5311e24d0095e10f471786d4caff7f66af89b79dbcff9e3e41cfae0065 Update your app’s
build.gradle
file as shown below:// App build.gradle apply plugin: 'com.android.application' // Define a path to the extracted Play Core SDK files. // If using a relative path, wrap it with file() since CMake requires absolute paths. def playcoreDir = file('../path/to/playcore-native-sdk') android { defaultConfig { ... externalNativeBuild { cmake { // Define the PLAYCORE_LOCATION directive. arguments "-DANDROID_STL=c++_static", "-DPLAYCORE_LOCATION=$playcoreDir" } } ndk { // Skip deprecated ABIs. Only required when using NDK 16 or earlier. abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } } buildTypes { release { // Include Play Core Library proguard config files to strip unused code while retaining the Java symbols needed for JNI. proguardFile "$playcoreDir/proguard/common.pgcfg" proguardFile "$playcoreDir/proguard/per-feature-proguard-files" ... } debug { ... } } externalNativeBuild { cmake { path 'src/main/CMakeLists.txt' } } } dependencies { // Use the Play Core AAR included with the SDK. implementation files("$playcoreDir/playcore.aar") ... }
Update your app’s
CMakeLists.txt
files as shown below:cmake_minimum_required(VERSION 3.6) ... # Add a static library called “playcore” built with the c++_static STL. include(${PLAYCORE_LOCATION}/playcore.cmake) add_playcore_static_library() // In this example “main” is your native code library, i.e. libmain.so. add_library(main SHARED ...) target_include_directories(main PRIVATE ${PLAYCORE_LOCATION}/include ...) target_link_libraries(main android playcore ...)
Unity
Unity plugins are available for select Play Core APIs, including Play Asset Delivery. Download the latest release from Google Play Plugins for Unity releases. This is a single package that includes Play Core plugins as well as other Play plugins, such as Play In-app Billing and Play Instant.
Download Play Core Native SDK
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
Last modified: September 24, 2020- By using the Play Core Software Development Kit, you agree to these terms in addition to the Google APIs Terms of Service ("API ToS"). If these terms are ever in conflict, these terms will take precedence over the API ToS. Please read these terms and the API ToS carefully.
- For purposes of these terms, "APIs" means Google's APIs, other developer services, and associated software, including any Redistributable Code.
- “Redistributable Code” means Google-provided object code or header files that call the APIs.
- Subject to these terms and the terms of the API ToS, you may copy and distribute Redistributable Code solely for inclusion as part of your API Client. Google and its licensors own all right, title and interest, including any and all intellectual property and other proprietary rights, in and to Redistributable Code. You will not modify, translate, or create derivative works of Redistributable Code.
- Google may make changes to these terms at any time with notice and the opportunity to decline further use of the Play Core Software Development Kit. Google will post notice of modifications to the terms at https://developer.android.com/guide/playcore/license. Changes will not be retroactive.