Customizing an Android Splash Screen
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.

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:
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.

Icon

The Icon section of the Android PlayerSettings window
The Icon section of the Android PlayerSettings window
Property: Function:
Override for Android Check to override the default icon with a custom one for Android. Drag the various sizes of icon images into the appropriate squares.
Enable Android Banner Enables a custom banner for Android TV builds.

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

The Rendering section of the Android PlayerSettings window
The Rendering section of the Android PlayerSettings window
Property: Function:
Rendering
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.
The Identification section of the Android PlayerSettings window
The Identification section of the Android PlayerSettings window
Identification
Bundle Identifier 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 The target Android version (API level) of the application. This value must be higher than or equal to minimum Android version.
The Configuration section of the Android PlayerSettings window
The Configuration section of the Android PlayerSettings window
Configuration
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.
Device Filter Allows the application to run on specified CPUs.
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.
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).
The Optimization section of the Android PlayerSettings window
The Optimization section of the Android PlayerSettings window
Optimization
Prebake Collision Meshes Should collision data be added to meshes at build time?
Keep Loaded Shaders Alive|Check this box to prevent shaders from being unloaded.| |Preload Shaders|Should shaders be loaded when the application starts up? | |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.

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).


Customizing an Android Splash Screen
Android 2D Textures Overrides