The Unreal Engine developer documentation contains most of what you'll need to
use Unreal Engine to target Android devices.

## Getting started

The [Android Quick Start](https://docs.unrealengine.com/SharingAndReleasing/Mobile/Android/GettingStarted/)
guide covers most of what you'll need to begin Android development, including:

- Creating a mobile project
- Configuring the project to target Android
- Setting up the editor for mobile renderer previews
- Launching on an Android target device
- Packaging your Android build into an APK for testing

If you're using Windows as your development platform, Unreal integrates with the
[Android Game Development Extension](https://developer.android.com/games/agde) for Visual Studio.

## Packaging your project

The [Packaging Android Projects](https://docs.unrealengine.com/SharingAndReleasing/Mobile/Android/PackagingAndroidProject/)
guide not only covers packaging your Android build into an APK file, it also
covers getting your build ready for distribution using [Android App Bundle](https://developer.android.com/platform/technology/app-bundle).

## Play Asset Delivery

The [Google Play Asset Delivery](https://docs.unrealengine.com/SharingAndReleasing/Mobile/Android/Distribution/GooglePlayAssetDeliveryReference/)
reference covers how to enable [Play Asset Delivery](https://developer.android.com/guide/playcore/asset-delivery) in your project, how to
designate rules to create asset chunks that will become asset packs in the
Android App Bundle, and how to take advantage of install-time, fast-follow, and
on-demand assets.

## Play Integrity API

Play Integrity API helps you check that your game is unmodified, installed by
Google Play, and running on either a genuine Android-powered device or a genuine
instance of Google Play Games for PC. Your game's backend server can respond
when you detect risky traffic to prevent unauthorized access and cheating. Refer
to the [documentation](https://developer.android.com/google/play/integrity/setup#unreal-engine) and [Runtime API reference](https://developer.android.com/reference/unreal-engine/play/core/group/play-integrity) on how to integrate
this feature with the Unreal Engine plugin.

## Play In-app Updates

Play In-app Updates lets you prompt users to update to the latest version of
your game, when a new version is available, without the user needing to visit
the Play Store. Refer to the [documentation](https://developer.android.com/guide/playcore/in-app-updates/unreal-engine) and [Runtime API reference](https://developer.android.com/reference/unreal-engine/play/core/group/play-in-app-updates)
on how to integrate this feature with the Unreal Engine plugin.

## Play In-app Reviews

Play In-app Reviews lets you prompt users to submit Play Store ratings and
reviews without leaving your game. Refer to the [documentation](https://developer.android.com/guide/playcore/in-app-review/unreal-engine) and [Runtime
API reference](https://developer.android.com/reference/unreal-engine/play/core/group/play-in-app-reviews) on how to integrate this feature with the Unreal Engine
plugin.

## Google Play Billing

The [In-app Purchases](https://docs.unrealengine.com/SharingAndReleasing/Mobile/Android/InAppPurchases/)
guide covers how to configure your game for [Google Play's billing system](https://developer.android.com/google/play/billing),
how to read purchase information, and how to make purchases.

## Vulkan API

[Vulkan](https://developer.android.com/games/develop/use-vulkan) is a cross-platform, high-performance 3D graphics API that has low
overhead compared with OpenGL ES.

To enable the Vulkan graphics API, navigate to
**Project Settings \> Platforms \> Android \> Build** and select
**Support Vulkan** . When you select both **Support Vulkan** and
**Support OpenGL ES3.2**, Unreal uses Vulkan by default. If the device doesn't
support Vulkan, Unreal falls back to OpenGL ES 3.2.
![Support Vulkan and Support OpenGL ES3.2 selected in Project Settings > Platforms > Android > Build](https://developer.android.com/static/images/games/engines/unreal/unreal-vulkan.png) **Figure 1.** Enable Vulkan by default and OpenGL ES 3.2 as a fallback.

## Frame pacing

Unreal 4.25 and higher integrates the [Android Frame Pacing Library](https://developer.android.com/games/sdk/frame-pacing), which
is part of the [Android Game Development Kit](https://developer.android.com/games/agdk). The [Mobile Frame
Pacing](https://docs.unrealengine.com/SharingAndReleasing/Mobile/Rendering/MobileFramePacing/)
article explains how to enable the Android Frame Pacing Library, and how to
control frame pacing from C++ code.

## Rendering optimization

The [Rendering Optimization for Mobile](https://docs.unrealengine.com/SharingAndReleasing/Mobile/Performance/TipsAndTricks/)
guide covers guidelines and best practices for optimizing mobile performance,
including when to use normal maps versus high-vertex meshes. It covers the
basics for reducing draw calls, mesh count and material ID count, as well as
material complexity, optimizing texture resolution, boot time, and package size.

## Best practices

We also have best practice articles around [art assets](https://developer.android.com/games/optimize/geometry), [identity](https://developer.android.com/games/distribute/pgs),
[distribution](https://play.google.com/console/about/), and more that will help you as you navigate the
Android ecosystem with Unreal Engine.

## 16 KB page support

A page is the granularity at which an operating system manages [memory](https://android-developers.googleblog.com/2024/08/adding-16-kb-page-size-to-android.html).
To improve the operating system performance overall and to give device
manufacturers an option to make this trade-off, Android 15 (API level 35)
and higher can run with 4 KB or 16 KB page sizes. Devices configured
with 16 KB page sizes use slightly more memory on average but also gain
various performance improvements.

[Unreal 5.6](https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5-6-release-notes#android-2) and higher support 16 KB page sizes.