Legacy Documentation: Version 2018.1 (Go to current version)
Single-Pass Stereo Rendering for Android
Android 2D Textures Overrides
Other Versions

Android Player Settings

This page details the Player Settings specific to Android. For a description of the general Player Settings, see documentation on PlayerSettings.

Icon

The Icon section of the Android PlayerSettings window
The Icon section of the Android PlayerSettings window
Property: Function:
Adaptive Set up textures for the Android Adaptive icons in your app.
Round Set up textures for the Android Round icons in your app.
Legacy Set up textures for the Android Legacy icons in your app.
Enable Android Banner Enables a custom banner for Android TV builds.

Resolution And Presentation

The Resolution and Presentation section of the Android PlayerSettings window
The Resolution and Presentation section of the Android PlayerSettings window
Property: Function:
Resolution and Presentation
Preserve framebuffer alpha Enable Unity to render on top of native Android UI. The camera’s Clear Flags have to be set to Solid color with an alpha less than 1 for this to have any effect. (OpenGL ES only).
Resolution Scaling
Resolution Scaling Mode This option can be used to render the scene on the target device at a resolution lower than screen resolution.
    Disabled Render at full screen resolution.
    Fixed DPI Render at resolution potentially lower than screen resolution.
Target DPI When Resolution Scaling Mode is set to Fixed DPI, this setting determines how much lower the target rendering resolution is going to be. The scale is calculated as min(Target DPI * Factor / Screen DPI, 1). Factor is controlled by Quality Settings.
Blit Type Controls whether a blit is used to present the final image to the screen.
    Always (Always blit) Make Unity render to an offscreen buffer and then copy to the system framebuffer. This is compatible with most devices, but is usually slower than Never blitting.
    Never (Never blit) Make Unity render to the framebuffer provided by the OS. If a condition arises during application run time that causes this to fail, the application will print a one-time warning to the device log. Never blitting is usually faster than Always blitting, but it’s not compatible with all devices.
    Auto Make Unity render to the framebuffer provided by the OS, if possible. If a condition is met that prevents your application from rendering to the system framebuffer, the application switches to offscreen rendering and issues a warning to the device console.
Support Aspect Ratio
Aspect Ratio Mode The aspect ratio for the device. Choose from: Legacy Wide Screen (1.86), Super Wide Screen (2.1) and Custom. When you select Custom, an Up To field appears. Use this to set a maximum screen width.
Orientation
Default Orientation Set the application’s screen orientation.
    Portrait Orient the screen so that the device’s Home button is at the bottom.
    Portrait Upside Down Orient the screen so that the device’s Home button is at the top.
    Landscape Left Orient the screen so that the device’s Home button is on the right-hand side.
    Landscape right Orient the screen so that the device’s Home button is on the left-hand side.
Allowed Orientations for Auto Rotation
(Only visible when Default Orientation is set to Auto Rotation)
Portrait Allow portrait orientation.
Portrait Upside Down Allow portrait upside-down orientation.
Landscape Right Allow landscape right orientation (home button is on the left side).
Landscape Left Allow landscape left orientation (home button is on the right side).
Other
Use 32-bit Display Buffer Specifies if the Display Buffer should be created to hold 32-bit color values (16-bit by default). Use it if you see banding, or need alpha in your post-processed effects, because they create Render Textures in the same format as the Display Buffer.
Disable Depth and Stencil Tick this checkbox to disable the depth and stencil buffers.
Show Loading Indicator The type of loading progress indicator that should be shown. Options are Don’t Show, Large, Inversed Large, Small and Inversed Small.

Splash Image

Property: Function:
Virtual Reality Splash Screen Specify the texture that should be used for the Android splash screen on a Virtual Reality application.
Android Splash Screen Specify the texture that should be used for the Android splash screen. The standard size for the splash screen image is 320x480.
Splash Scaling Specify how the splash image is scaled to fit the device’s screen. The options are Center (only scale down), Scale to Fit (letter-boxed) and Scale to Fill (cropped).

See also Unity Splash Screen settings.

Other Settings

Rendering

The Rendering section of the Android PlayerSettings window
The Rendering section of the Android PlayerSettings window
Property: Function:
Color Space The Color Space used for your application. See Linear Lighting for more information.
Auto Graphics API Check this to make Unity auto-select a graphics API from the Open Graphics Library (OpenGL). When checked, Unity will try GLES3.1, and fall back to GLES3 or GLES2 if the device does not support GLES3.1. When unchecked, you can manually pick and reorder the graphics APIs. If only GLES3 is in the list, two additional checkboxes; Require ES3.1 and Require ES3.1+AEP appear, allowing you to force the corresponding graphics API.

Important: GLES3/GLES3.1/AEP requirement is added to your Android manifest only if GLES2 is not in the list, and Minimum API Level is set to JellyBean (API level 18) or higher. In this case only, your application won’t show up on unsupported devices in Google Play Store.
Multithreaded Rendering Check this box to move graphics API calls from Unity’s main thread to a separate worker thread. This can help to improve performance in applications that have high CPU usage on the main thread.
Static Batching Check this box to use Static batching on your build (enabled by default).
Dynamic Batching Check this box to use Dynamic Batching on your build (enabled by default).
GPU Skinning Check this box to enable OpenGL ES 3 GPU skinning. To learn more about GPU skinning, see the Wikipedia page on skeletal animation.

Note that this property only supports VR apps, and only works if the Virtual Reality Supported checkbox is ticked.
Graphics Jobs (Experimental) Check this box to instruct Unity to offload graphics tasks (render loops) to worker threads running on other CPU cores. This is intended to reduce the time spent in camera.render on the main thread. This feature is experimental. it may not deliver a performance improvement for your project, and may cause instabilities.

Graphics Jobs are currently only supported when using Vulkan and the checkbox has no effect when using OpenGL ES.
Virtual Reality Supported Enable this if your application is a virtual reality application, then add the required VR SDKs to the list.
Protect Graphics Memory Check this box to force the graphics buffer to be displayed only through a hardware-protected path. Works only on devices which support it.

Identification

The Identification section of the Android PlayerSettings window
The Identification section of the Android PlayerSettings window
Property: Function:
Package Name The unique application ID, used to uniquely identify your app on the device and in Google Play Store. (Shared between iOS and Android.)
Version Specifies the build version number of the bundle, which identifies an iteration (released or unreleased) of the bundle. The version is specified in the common format of a string containing numbers separated by dots (eg, 4.3.2). (Shared between iOS and Android.)
Bundle Version Code An internal version number. This number is used only to determine whether one version is more recent than another, with higher numbers indicating more recent versions. This is not the version number shown to users; that number is set by the versionName attribute. The value must be set as an integer, such as “100”. You can define it however you want, as long as each successive version has a higher number.

For example, it could be a build number. Or you could translate a version number in “x.y” format to an integer by encoding the “x” and “y” separately in the lower and upper 16 bits. Or you could simply increase the number by one each time a new version is released.
Minimum API Level Minimum Android version (API level) required to run the application.
Target API Level Target Android version (API level) against which to compile the application.

Configuration

The Configuration section of the Android PlayerSettings window
The Configuration section of the Android PlayerSettings window
Property: Function:
Scripting Runtime Version Choose which .NET runtime to use in your project. For more details, see Microsoft’s .NET documentation.
     .NET 3.5 Equivalent A .NET runtime which implements the .NET 3.5 API. This is the default scripting runtime.
     .NET 4.x Equivalent A .NET runtime which implements the .NET 4 API. This API is newer than .NET 3.5, and as such, it offers access to more APIs, is compatible with more external libraries, and supports C# 6.
Scripting Backend Select your scripting backend. There are two options: IL2CPP or Mono2x. The default is Mono2x.
    IL2CPP Choose this to set ILC2PP as your scripting backend. See Unity documentation on IL2CPP for more information.
    Mono2x Choose this to set Mono2x as your scripting backend. This is the default option. See Mono’s documentation for more information.
API Compatibility Level Specifies active .NET API profile. See below.

.Net 2.0:NET 2.0 libraries. Maximum .NET compatibility, biggest file sizes

.Net 2.0 Subset: Subset of full .NET compatibility, smaller file sizes
Mute Other Audio Sources) Stops or allows audio from other applications to play in the background while your Unity application is running. Enable this and your Unity application stops audio from background applications, disable this and audio from background applications continue to play alongside your Unity application.
Disable HW Statistics By default, Unity Android applications send anonymous HW statistics to Unity. This provides you with aggregated information to help you make decisions as a developer. Find these statistics at http://stats.unity3d.com/. Check this option to stop Unity sending these statistics.
Target Architectures Allows the application to run on the specified CPUs. Note: Running Android apps in a 64-bit environment has performance benefits and 64-bit apps can address more than 4 GB of memory space.
Install Location Specifies application install location on the device (for detailed information, refer to Android Developer documentation on install locations.
    Automatic Let the operating system decide. User will be able to move the app back and forth.
    Prefer External Install the application to external storage (SD card) if possible. The operating system does not guarantee it; if not possible, the app will be installed to internal memory.
    Force Internal Force the application to be installed to internal memory. The user will be unable to move the app to external storage.
Internet Access When set to Require, this adds the networking (INTERNET) permission to the Android manifest, even if you are not using any networking APIs. This is enabled by default for development builds.
Write Access When set to External(SDCard) , enables write access to the external storage such as the SD card and add a corresponding permission to the Android manifest. Enabled by default for development builds.
Sustained Performance Mode Set a predictable and consistent level of device performance over longer periods of time, without thermal throttling. Overall, performance might be lower when this setting is enabled. Based on the Android Sustained Performance API.
Android TV Compatibility Check this box to mark the application as Android TV compatible.
Android Game Android TV - Check this box to mark the output package (APK) will as a game rather than a regular application.
Android Gamepad Support Level Android TV - This option allows you to define the level of support your application offers for a gamepad. The options are Works with D-Pad, Supports Gamepad and Requires Gamepad.
Scripting Define Symbols Custom compilation flags (see the platform dependent compilation page for details).

Optimization

The Optimization section of the Android PlayerSettings window
The Optimization section of the Android PlayerSettings window
Property: Function:
Prebake Collision Meshes Check this box to add collision data to meshes at build time.
Keep Loaded Shaders Alive Check this box to prevent shaders from being unloaded.
Preloaded Assets An array of assets to be loaded when the application starts up.
Stripping Level Options to strip out scripting features to reduce the output package (APK) size (This setting is shared between iOS and Android platforms, and is available with the Mono scripting backend only.)
Disabled No reduction is done.
Strip Assemblies Level 1 size reduction.
Strip ByteCode (iOS only) Level 2 size reduction (includes reductions from Level 1).
Use micro mscorlib Level 3 size reduction (includes reductions from Levels 1 and 2).
Strip Engine Code Enable code stripping. (This setting is only available with the IL2CPP scripting backend.)
Enable Internal profiler Check this box if you want to get the profiler data from your device in the Android SDK’s adblogcat output while testing your projects (only available in development builds).
Vertex Compression Select which vertex channels should be compressed. Compression can save memory and bandwidth but precision will be lower.
Optimize Mesh Data Remove any data from meshes that is not required by the material applied to them (tangents, normals, colors, UV).
Logging Enable different logging types (see the StackTraceLogType page for details).

API Compatibility Level

You can choose your Mono API compatibility level for all targets. Sometimes a 3rd party .NET DLL uses the APIs that are not included into the .NET compatibility level you would like to use. In order to investigate such cases, get a reflection tool like ILSpy on Windows, and check the dependencies of the DLLs.

Publishing Settings

Property: Function:
Keystore
Use Existing Keystore / Create New Keystore Use this to choose whether to create a new Keystore or use an existing one. You can use the Browse Keystore button to select a Keystore from the filesystem.
Keystore password Create a password for the Keystore.
Confirm password Enter the same password you did in Keystore password (only enabled if the Create New Keystore option is selected).
Key
Alias Key alias.
Password Password for key alias.
Split Application Binary Enable this option to split your output package into main (APK) and expansion (OBB) packages. This is required to publish applications larger than 100 MBytes to Goolge Play Store.

Note that for security reasons, Unity does not save the Keystore password or the Key password. Also, note that the signing must be done from Unity’s Playersettings, jarsigner does not work. The unsigned debug keystore is located by default at ~/.android/debug.keystore on MacOS and %USERPROFILE%.android\debug.keystore on Windows.

XR settings

Property: Function:
XR Settings
Virtual Reality Supported Enable native VR support for the Unity Editor and your game builds.
ARCore Enable use of Google’s ARCore platform.
XR Support Installers
Vuforia Augmented Reality Supported Enable use of the Vuforia Software Development Kit. You must have a Vuforia Software License and agree to the terms of that license before the property becomes enabled.

Details

Bundle Identifier

The Bundle Identifier string is the unique name of your application when published to Google Play Store and installed on the device. The basic structure of the identifier is com.CompanyName.GameName, and can be chosen arbitrarily. In Unity this field is shared with the iOS Player Settings for convenience.

Stripping Level

Most games don’t use all the functionality of the DLLs included by default. With this option, you can strip out unused parts to reduce the size of the output package (APK).


  • 2018–06–06 Page amended with limited editorial review

  • Updated features in 5.5

  • Sustained Performance Mode added in 2017.3

  • .NET 4.x runtime added in 2018.1

  • Android Multiple APK features added in 2018.2

Did you find this page useful? Please give it a rating:

Single-Pass Stereo Rendering for Android
Android 2D Textures Overrides