UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AndroidRuntimeSettings.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "UObject/Object.h"
10
11#include "AndroidRuntimeSettings.generated.h"
12
13#define UE_API ANDROIDRUNTIMESETTINGS_API
14
16
17UENUM()
19{
20 // IF THIS CHANGES, MAKE SURE TO UPDATE UEDeployAndroid.cs, ConvertOrientationIniValue()!
21
48}
49
51UENUM()
62
64UENUM()
66{
67 // IF THIS CHANGES, MAKE SURE TO UPDATE UEDeployAndroid.cs, ConvertDepthBufferIniValue()!
68
69 enum Type : int
70 {
71 Default = 0 UMETA(DisplayName = "Default"),
72 Bits16 = 16 UMETA(DisplayName = "16-bit"),
73 Bits24 = 24 UMETA(DisplayName = "24-bit"),
74 Bits32 = 32 UMETA(DisplayName = "32-bit"),
75 };
76}
77
79UENUM()
92
94UENUM()
96{
97 enum Type : int
98 {
99 // 0 was the deprecated OculusGo
100
102 Quest = 1 UMETA(DisplayName = "Oculus Quest"),
103
105 Quest2 = 2 UMETA(DisplayName = "Oculus Quest 2"),
106 };
107}
108
110UENUM()
120
122UENUM()
132
134UENUM()
145
149USTRUCT()
151{
153
154
155 UPROPERTY(EditAnywhere, Category = GooglePlayServices)
156 FString Name;
157
159 UPROPERTY(EditAnywhere, Category = GooglePlayServices)
160 FString AchievementID;
161};
162
166USTRUCT()
168{
170
171
172 UPROPERTY(EditAnywhere, Category = GooglePlayServices)
173 FString Name;
174
176 UPROPERTY(EditAnywhere, Category = GooglePlayServices)
177 FString LeaderboardID;
178};
179
180UENUM()
182{
183 enum UE_DEPRECATED(5.5, "Please don't use") Type : int
184 {
185 Default = 0 UMETA(DisplayName = "Default", ToolTip = "This option selects the default encoder."),
186 OGG = 1 UMETA(DisplayName = "Ogg Vorbis", ToolTip = "Selects Ogg Vorbis encoding."),
187 ADPCM = 2 UMETA(DisplayName = "ADPCM", ToolTip = "This option selects ADPCM lossless encoding.")
188 };
189}
190
191UENUM()
193{
194 enum Type : int
195 {
196 None = 0 UMETA(DisplayName = "None"),
197 Mali = 1 UMETA(DisplayName = "Mali Graphics Debugger", ToolTip = "Configure for Mali Graphics Debugger."),
198 Adreno = 2 UMETA(DisplayName = "Adreno Profiler", ToolTip = "Configure for Adreno Profiler."),
199 };
200}
201
202
206UCLASS(MinimalAPI, config=Engine, defaultconfig)
208{
209public:
211
212 // The official name of the product (same as the name you use on the Play Store web site). Note: Must have at least 2 sections separated by a period and be unique!
213 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Android Package Name ('com.Company.Project', [PROJECT] is replaced with project name)"))
214 FString PackageName;
215
216 // The version number used to indicate newer versions in the Store
217 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Store Version (1-2147483647)", ClampMin="1", ClampMax="2147483647"))
219
220 // Offset to add to store version for APKs generated for arm64
221 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", meta = (DisplayName = "Store Version offset (arm64)"))
223
224 // Offset to add to store version for APKs generated for x86_64
225 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", meta = (DisplayName = "Store Version offset (x86_64)"))
227
228 // The visual application name displayed for end users
229 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Application Display Name (app_name), project name if blank"))
231
232 // The visual version displayed for end users
233 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Version Display Name (usually x.y)"))
234 FString VersionDisplayName;
235
236 // What OS version the app is allowed to be installed on (do not set this lower than 26)
237 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Minimum SDK Version (26=8.0.0, 27=8.1.0, 28=9, 29=10, 30=11, 31=12)"))
239
240 // What OS version the app is expected to run on (do not set this lower than 26)
241 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Target SDK Version (26=8.0.0, 27=8.1.0, 28=9, 29=10, 30=11, 31=12)"))
242 int32 TargetSDKVersion;
243
244 // Preferred install location for the application
245 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging")
246 TEnumAsByte<EAndroidInstallLocation::Type> InstallLocation;
247
248 // Enable -Xlint:unchecked and -Xlint:depreciation for Java compiling (Gradle only)
249 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Enable Lint depreciation checks"))
250 bool bEnableLint;
251
252 // Should the data be placed into the .apk file instead of a separate .obb file. Amazon requires this to be enabled, but Google Play Store will not allow .apk files larger than 100MB, so only small games will work with this enabled.
253 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Package game data inside .apk?"))
254 bool bPackageDataInsideApk;
255
256 // If checked, both batch (.bat) files and shell script (.command) files will be generated, otherwise only done for the current system (default)
257 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Generate install files for all platforms"))
258 bool bCreateAllPlatformsInstall;
259
260 // Disable the verification of an OBB file when it is downloaded or on first start when in a distribution build.
261 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Disable verify OBB on first start/update."))
262 bool bDisableVerifyOBBOnStartUp;
263
264 // If checked, OBB is limited to 1 GiB.
265 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Force small OBB files."))
266 bool bForceSmallOBBFiles;
267
268 // If checked, OBB is not limited to 2 GiB allowed by Google Play Store (still limited to 4 GiB ZIP limit).
269 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Allow large OBB files."))
270 bool bAllowLargeOBBFiles;
271
272 // If checked, a patch OBB is generated for files not fitting in the main OBB (requires using multiple PAK files so split up content by chunk id).
273 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Allow patch OBB file."))
274 bool bAllowPatchOBBFile;
275
276 // If checked, up to two additional overflow OBB files are generated for files not fitting in the patch OBB (requires using multiple PAK files so split up content by chunk id).
277 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Allow overflow OBB files."))
278 bool bAllowOverflowOBBFiles;
279
280 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Don't bundle libraries into .apk for quicker iteration [Experimental]"))
281 bool bDontBundleLibrariesInAPK;
282
283 // If checked, UnrealGame files will be placed in ExternalFilesDir which is removed on uninstall.
284 // You should also check this if you need to save you game progress without requesting runtime WRITE_EXTERNAL_STORAGE permission in android api 23+
285 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Use ExternalFilesDir for UnrealGame files?"))
286 bool bUseExternalFilesDir;
287
288 // If checked, log files will always be placed in a publicly available directory (either /sdcard/Android or /sdcard/UnrealGame).
289 // You may require WRITE_EXTERNAL_STORAGE permission if you do not use ExternalFilesDir checkbox in android api 23+
290 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Make log files always publicly accessible?"))
291 bool bPublicLogFiles;
292
293 // The permitted orientation of the application on the device
294 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging")
296
297 // Minimum supported aspect ratio (width / height). Android will automatically letterbox application on devices with smaller aspect ratio
298 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Minimum supported aspect ratio."))
299 float MinAspectRatio;
300
301 // Maximum supported aspect ratio (width / height). Android will automatically letterbox application on devices with bigger aspect ratio
302 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Maximum supported aspect ratio."))
303 float MaxAspectRatio;
304
305 // Enables use of the display cutout area on Android 9+
306 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Use display cutout region?"))
307 bool bUseDisplayCutout;
308
309 // Enables limiting safe zone away from rounded edges on Android 12+
310 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Limit safe zone to screen rounded edges."))
312
313 // Allow resizing of the window on Android devices with splitscreen
314 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Allow splitscreen resizing?"))
315 bool bAllowResizing;
316
317 // Allow support for size change when foldable and flip devices change screen or layout on Android 10+
318 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Allow fold/flip size changes?"))
319 bool bSupportSizeChanges;
320
321 // Should we restore scheduled local notifications on reboot? This will add a receiver for boot complete and a permission to the manifest.
322 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Restore scheduled notifications on reboot"))
323 bool bRestoreNotificationsOnReboot;
324
325 // Should the software navigation buttons be hidden or not
326 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Enable FullScreen Immersive on KitKat and above devices."))
327 bool bFullScreen;
328
329 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = ( DisplayName = "Enable improved virtual keyboard"))
330 bool bEnableNewKeyboard;
331
332 // The preferred depth buffer bitcount for Android
333 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Preferred Depth Buffer format"))
334 TEnumAsByte<EAndroidDepthBufferPreference::Type> DepthBufferPreference;
335
336 // Verifies the device supports at least one of the cooked texture formats at runtime
337 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Validate texture formats"))
338 bool bValidateTextureFormats;
339
340 // When building for MinSDKVersion >= 23 gradle will leave native libs uncompressed in the apk. This flag might be helpful for builds that are not intended to be distributed via Google Play
341 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Force Gradle to compress native libs irregardless of MinSDKVersion setting"))
342 bool bForceCompressNativeLibs;
343
344 // Generates Android binary with RELR and APS2 relocation tables when building for MinSDKVersion >= 28 or just APS2 when building for MinSDKVersion >= 23
345 UPROPERTY(GlobalConfig, EditAnywhere, Category = "APK Packaging", Meta = (DisplayName = "Enable compression of relocation tables (and more). Depends on MinSDKVersion setting"))
347
348 // Enables generating AAB bundle
349 UPROPERTY(GlobalConfig, EditAnywhere, Category = "App Bundles", Meta = (DisplayName = "Generate bundle (AAB)"))
350 bool bEnableBundle;
351
352 // Enables generating universal APK from bundle
353 UPROPERTY(GlobalConfig, EditAnywhere, Category = "App Bundles", Meta = (DisplayName = "Generate universal APK from bundle", EditCondition = "bEnableBundle"))
354 bool bEnableUniversalAPK;
355
356 // Separate ABIs into their own APK in bundle
357 UPROPERTY(GlobalConfig, EditAnywhere, Category = "App Bundles", Meta = (DisplayName = "Enable ABI split", EditCondition = "bEnableBundle"))
358 bool bBundleABISplit;
359
360 // Separate resources by language into their own APK in bundle
361 UPROPERTY(GlobalConfig, EditAnywhere, Category = "App Bundles", Meta = (DisplayName = "Enable language split", EditCondition = "bEnableBundle"))
362 bool bBundleLanguageSplit;
363
364 // Separate resources by density into their own APK in bundle
365 UPROPERTY(GlobalConfig, EditAnywhere, Category = "App Bundles", Meta = (DisplayName = "Enable density split", EditCondition = "bEnableBundle"))
366 bool bBundleDensitySplit;
367
368 // Any extra tags for the <manifest> node
369 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Extra Tags for <manifest> node"))
370 TArray<FString> ExtraManifestNodeTags;
371
372 // Any extra tags for the <application> node
373 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Extra Tags for <application> node"))
374 TArray<FString> ExtraApplicationNodeTags;
375
376 // Any extra tags for the com.epicgames.unreal.GameActivity <activity> node
377 // Any extra settings for the <application> section (an optional file <Project>/Build/Android/ManifestApplicationAdditions.txt will also be included)
378 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Extra Settings for <application> section (\\n to separate lines)"))
380
381 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Extra Tags for com.epicgames.unreal.GameActivity <activity> node"))
382 TArray<FString> ExtraActivityNodeTags;
383
384 // Any extra settings for the main <activity> section (an optional file <Project>/Build/Android/ManifestApplicationActivtyAdditions.txt will also be included)
385 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Extra Settings for <activity> section (\\n to separate lines)"))
386 FString ExtraActivitySettings;
387
388 // Any extra permissions your app needs (an optional file <Project>/Build/Android/ManifestRequirementsAdditions.txt will also be included,
389 // or an optional file <Project>/Build/Android/ManifestRequirementsOverride.txt will replace the entire <!-- Requirements --> section)
390 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Extra Permissions (e.g. 'android.permission.INTERNET')"))
391 TArray<FString> ExtraPermissions;
392
393 // Add required permission to support Voice chat
394 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Add permissions to support Voice chat (RECORD_AUDIO)"))
396
397 // Request permission at startup (SplashActivity) for Voice chat (RECORD_AUDIO)
398 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Request permission at startup for Voice chat (RECORD_AUDIO)", EditCondition = "bAndroidVoiceEnabled"))
400
401 // Add required permission and support to allow multicast/broadcast Wi-Fi traffic through network interface
402 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Add support for multicast Wi-Fi traffic (CHANGE_WIFI_MULTICAST_STATE)"))
404
405 // Package for an Oculus Mobile device
406 UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage = "Use the \"Package for Meta Quest devices\" checkbox instead"))
407 TArray<TEnumAsByte<EOculusMobileDevice::Type>> PackageForOculusMobile;
408
409 // Package for Oculus Mobile devices. When enabled, it will enable build support for arm64 and vulkan, and disable build support for x86_64, Vulkan Desktop, and OpenGL.
410 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Package for Meta Quest devices."))
411 bool bPackageForMetaQuest;
412
413 // Removes Oculus Signature Files (osig) from APK if Quest/Go APK signed for distribution and enables entitlement checker
414 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Advanced APK Packaging", Meta = (DisplayName = "Remove Oculus Signature Files from Distribution APK"))
415 bool bRemoveOSIG;
416
417 // This is the file that keytool outputs, specified with the -keystore parameter (file should be in <Project>/Build/Android)
418 UPROPERTY(GlobalConfig, EditAnywhere, Category = DistributionSigning, Meta = (DisplayName = "Key Store (output of keytool, placed in <Project>/Build/Android)"))
419 FString KeyStore;
420
421 // This is the name of the key that you specified with the -alias parameter to keytool
422 UPROPERTY(GlobalConfig, EditAnywhere, Category = DistributionSigning, Meta = (DisplayName = "Key Alias (-alias parameter to keytool)"))
423 FString KeyAlias;
424
425 // This is the password that you specified FOR THE KEYSTORE NOT THE KEY, when running keytool (either with -storepass or by typing it in).
426 UPROPERTY(GlobalConfig, EditAnywhere, Category = DistributionSigning, Meta = (DisplayName = "Key Store Password (-storepass parameter to keytool)"))
427 FString KeyStorePassword;
428
429 // This is the password for the key that you may have specified with keytool, if it's different from the keystore password. Leave blank to use same as Keystore
430 UPROPERTY(GlobalConfig, EditAnywhere, Category = DistributionSigning, Meta = (DisplayName = "Key Password (leave blank to use Key Store Password)"))
431 FString KeyPassword;
432
433 // This is the file that keytool outputs, specified with the -keystore parameter (file should be in <Project>/Build/Android)
434 UPROPERTY(GlobalConfig, EditAnywhere, Category = DebugSigning, Meta = (DisplayName = "Debug Key Store (output of keytool, placed in <Project>/Build/Android)"))
435 FString DebugKeyStore;
436
437 // This is the name of the key that you specified with the -alias parameter to keytool
438 UPROPERTY(GlobalConfig, EditAnywhere, Category = DebugSigning, Meta = (DisplayName = "Debug Key Alias (-alias parameter to keytool)"))
439 FString DebugKeyAlias;
440
441 // This is the password that you specified FOR THE KEYSTORE NOT THE KEY, when running keytool (either with -storepass or by typing it in).
442 UPROPERTY(GlobalConfig, EditAnywhere, Category = DebugSigning, Meta = (DisplayName = "Debug Key Store Password (-storepass parameter to keytool)"))
443 FString DebugKeyStorePassword;
444
445 // This is the password for the key that you may have specified with keytool, if it's different from the keystore password. Leave blank to use same as Debug Keystore
446 UPROPERTY(GlobalConfig, EditAnywhere, Category = DebugSigning, Meta = (DisplayName = "Debug Key Password (leave blank to use Debug Key Store Password)"))
447 FString DebugKeyPassword;
448
449 // Enable Arm64 support?
450 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Support arm64 [aka arm64-v8a]"))
451 bool bBuildForArm64;
452
453 // Enable x86-64 support? [CURRENTLY FOR FULL SOURCE GAMES ONLY]
454 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Support x86_64 [aka x64]", EditCondition = "!bPackageForMetaQuest"))
455 bool bBuildForX8664;
456
457 // Include shaders for devices supporting OpenGL ES 3.2 and above (default)
458 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Support OpenGL ES3.2", EditCondition = "!bPackageForMetaQuest"))
459 bool bBuildForES31;
460
461 // Support the Vulkan RHI and include Vulkan shaders
462 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Support Vulkan"))
463 bool bSupportsVulkan;
464
465 // Enable Vulkan SM5 rendering support
466 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Support Vulkan Desktop [Experimental]", EditCondition = "!bPackageForMetaQuest"))
467 bool bSupportsVulkanSM5;
468
470 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Debug Vulkan Layer Directory"))
471 FDirectoryPath DebugVulkanLayerDirectory;
472
474 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Debug Vulkan Device Layers"))
475 TArray<FString> DebugVulkanDeviceLayers;
476
478 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Debug Vulkan Instance Layers"))
479 TArray<FString> DebugVulkanInstanceLayers;
480
481 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Support Backbuffer Sampling on OpenGL",
484
485 UPROPERTY(GlobalConfig, EditAnywhere, Category = Build, meta = (DisplayName = "Force Emulator profile selection in non-shipping builds"))
486 bool bForceEmulatorProfileSelectionInNonShippingBuilds;
487
488 // Whether to detect Vulkan device support by default, if the project is packaged with Vulkan support. If unchecked, the -detectvulkan commandline will enable Vulkan detection.
489 UPROPERTY(GlobalConfig, EditAnywhere, AdvancedDisplay, Category = Build, meta = (DisplayName = "Detect Vulkan device support", EditCondition = "bSupportsVulkan"))
490 bool bDetectVulkanByDefault;
491
492 // Build the shipping config with hidden visibility by default. Results in smaller .so file but will also removes symbols used to display callstack dumps.
493 UPROPERTY(GlobalConfig, EditAnywhere, Category = AdvancedBuild, meta = (DisplayName = "Build with hidden symbol visibility in shipping config."))
494 bool bBuildWithHiddenSymbolVisibility;
495
496 UPROPERTY(GlobalConfig, EditAnywhere, Category = AdvancedBuild, meta = (DisplayName = "Enable compression of debug symbols"))
497 bool bCompressDebugSymbols;
498
499 // Disables extra checks for buffer overflows, comes with perf improvement, but might make tracing stack corruptions in production harder. Note that _FORTIFY_SOURCE=2 is still enabled by the toolchain providing lightweight stack checks
500 UPROPERTY(GlobalConfig, EditAnywhere, Category = AdvancedBuild, meta = (DisplayName = "Disable extra checks for buffer overflows"))
501 bool bDisableStackProtector;
502
503 // Disable libc++_shared dependency validation in all .so files linked with libUnreal.so
504 UPROPERTY(GlobalConfig, EditAnywhere, Category = AdvancedBuild, meta = (DisplayName = "Disable libc++_shared dependency validation in all dependencies"))
505 bool bDisableLibCppSharedDependencyValidation;
506
507 // Always save .so file with symbols allowing use of addr2line on raw callstack addresses.
508 UPROPERTY(GlobalConfig, EditAnywhere, Category = AdvancedBuild, meta = (DisplayName = "Always save a copy of the libUnreal.so with symbols. [Experimental]"))
509 bool bSaveSymbols;
510
511 // Strip shader reflection information under Android to avoid issues on older drivers
512 UPROPERTY(config, EditAnywhere, Category = AdvancedBuild, meta = (
513 DisplayName = "Strip shader reflection information",
517
518 // If selected, the checked architectures will be split into separate .apk files [CURRENTLY FOR FULL SOURCE GAMES ONLY]
519 // @todo android fat binary: Currently, there isn't much utility in merging multiple .so's into a single .apk except for debugging,
520 // but we can't properly handle multiple GPU architectures in a single .apk, so we are disabling the feature for now
521 // The user will need to manually select the apk to run in their Visual Studio debugger settings (see Override APK in TADP, for instance)
522// UPROPERTY(GlobalConfig, EditAnywhere, Category = Build)
523// bool bSplitIntoSeparateApks;
524
525 // Should Google Play support be enabled?
526 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices)
527 bool bEnableGooglePlaySupport;
528
529 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "Request code for showing GooglePlay Games activities"), meta = (ToolTip = "This request code is reported in onActivityResult when Achievements or Leaderboards UIs are closed"))
531
532 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "GooglePlay Games Oauth Client ID registered for game server"), meta = (ToolTip = "No auth code will be requested on login if empty. Setting up Server-side API Access (see https://developers.google.com/games/services/android/offline-access)"))
533 FString PlayGamesClientId;
534
535 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "Enable GooglePlay Games offline access"), meta = (ToolTip = "Include refresh token when Auth code is exchanged. Setting up Server-side API Access (see https://developers.google.com/games/services/android/offline-access)"))
537
538 // The app id obtained from the Google Play Developer Console
539 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices)
540 FString GamesAppID;
541
542 // Mapping of game achievement names to IDs generated by Google Play.
543 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices)
545
546 // Mapping of game leaderboard names to IDs generated by Google Play.
547 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices)
549
550 // Enabling this includes the AdMob SDK and will be detected by Google Play Console on upload of APK. Disable if you do not need ads to remove this warning.
551 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "Include AdMob support for ads"))
552 bool bSupportAdMob;
553
554 // AdMob Application ID
555 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "AdMob App ID"), meta = (EditCondition = "bSupportAdMob"), meta = (ToolTip = "AdMob Application ID (see https://support.google.com/admob/answer/7356431)"))
556 FString AdMobAppID;
557
558 // Admob TagForChildDirectedTreatment (see https://developers.google.com/admob/android/targeting)
559 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "AdMob Tag For Child-Directed Treatment"), meta = (EditCondition = "bSupportAdMob"), meta = (ToolTip = "Admob TagForChildDirectedTreatment (see https://developers.google.com/admob/android/targeting)"))
561
562 // Admob TagForUnderAgeOfConsent (see https://developers.google.com/admob/android/targeting)
563 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "AdMob Tag For Under Age Of Consent"), meta = (EditCondition = "bSupportAdMob"), meta = (ToolTip = "Admob TagForUnderAgeOfConsent (see https://developers.google.com/admob/android/targeting)"))
565
566 // Admob MaxAdContentRating (see https://developers.google.com/admob/android/targeting)
567 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "AdMob Max ad content rating"), meta = (EditCondition = "bSupportAdMob"), meta = (ToolTip = "Admob MaxAdContentRating (see https://developers.google.com/admob/android/targeting)"))
569
570 // The unique identifier for the ad obtained from AdMob.
571 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices)
572 FString AdMobAdUnitID;
573
574 // Identifiers for ads obtained from AdMob
575 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices)
576 TArray<FString> AdMobAdUnitIDs;
577
578 // The unique identifier for this application (needed for IAP)
579 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices)
580 FString GooglePlayLicenseKey;
581
582 // The sender id obtained from Firebase Console, leave blank to disable (associate this with your app in Google Player Developer Console).
583 UPROPERTY(GlobalConfig, EditAnywhere, Category = GooglePlayServices, meta = (DisplayName = "Google Cloud Messaging Sender ID"))
584 FString GCMClientSenderID;
585
587 UPROPERTY(GlobalConfig, EditAnywhere, Category = LaunchImages, meta = (DisplayName = "Show launch image"))
588 bool bShowLaunchImage;
589
591 UPROPERTY(GlobalConfig, EditAnywhere, Category = Input, meta = (DisplayName = "Allow IMU Sampling"))
592 bool bAllowIMU;
593
594 // If checked, Bluetooth connected controllers will send input
595 UPROPERTY(GlobalConfig, EditAnywhere, Category = Input, meta = (DisplayName = "Allow Bluetooth controllers"))
596 bool bAllowControllers;
597
598 // If checked, controllers will not send Android_Back and Android_Menu events that might cause unnecce
599 UPROPERTY(GlobalConfig, EditAnywhere, Category = Input, meta = (DisplayName = "Block Android system keys being sent from controllers"))
600 bool bBlockAndroidKeysOnControllers;
601
602 // Block force feedback on the device when controllers are attached.
603 UPROPERTY(GlobalConfig, EditAnywhere, Category = Input, meta = (DisplayName = "Block force feedback on the device when controllers are attached"))
604 bool bControllersBlockDeviceFeedback;
605
607 UPROPERTY(config, EditAnywhere, Category = "Audio", Meta = (DisplayName = "Audio Mixer Sample Rate"))
608 int32 AudioSampleRate;
609
611 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = "512", ClampMax = "4096", DisplayName = "Callback Buffer Size"))
612 int32 AudioCallbackBufferFrameSize;
613
615 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = "2", UIMin = "2", DisplayName = "Number of Buffers To Enqueue"))
616 int32 AudioNumBuffersToEnqueue;
617
619 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = "0", UIMin = "0", DisplayName = "Max Channels"))
620 int32 AudioMaxChannels;
621
623 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = "0", UIMin = "0", DisplayName = "Number of Source Workers"))
624 int32 AudioNumSourceWorkers;
625
627 UPROPERTY(config, EditAnywhere, Category = "Audio")
628 FString SpatializationPlugin;
629
631 UPROPERTY(config, EditAnywhere, Category = "Audio")
632 FString SourceDataOverridePlugin;
633
635 UPROPERTY(config, EditAnywhere, Category = "Audio")
636 FString ReverbPlugin;
637
639 UPROPERTY(config, EditAnywhere, Category = "Audio")
640 FString OcclusionPlugin;
641
643 UPROPERTY(config, EditAnywhere, Category = "Audio")
645
647 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Audio|CookOverrides|Stream Caching", meta = (DisplayName = "Max Cache Size (KB)"))
648 int32 CacheSizeKB;
649
651 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Audio|CookOverrides|Stream Caching", meta = (DisplayName = "Max Chunk Size Override (KB)"))
652 int32 MaxChunkSizeOverrideKB;
653
654 UPROPERTY(config, EditAnywhere, Category = "Audio|CookOverrides")
655 bool bResampleForDevice;
656
658 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Audio|CookOverrides", meta = (DisplayName = "Sound Cue Cook Quality"))
659 int32 SoundCueCookQualityIndex = INDEX_NONE;
660
661 // Mapping of which sample rates are used for each sample rate quality for a specific platform.
662
663 UPROPERTY(config, EditAnywhere, Category = "Audio|CookOverrides|ResamplingQuality", meta = (DisplayName = "Max"))
664 float MaxSampleRate;
665
666 UPROPERTY(config, EditAnywhere, Category = "Audio|CookOverrides|ResamplingQuality", meta = (DisplayName = "High"))
667 float HighSampleRate;
668
669 UPROPERTY(config, EditAnywhere, Category = "Audio|CookOverrides|ResamplingQuality", meta = (DisplayName = "Medium"))
670 float MedSampleRate;
671
672 UPROPERTY(config, EditAnywhere, Category = "Audio|CookOverrides|ResamplingQuality", meta = (DisplayName = "Low"))
673 float LowSampleRate;
674
675 UPROPERTY(config, EditAnywhere, Category = "Audio|CookOverrides|ResamplingQuality", meta = (DisplayName = "Min"))
676 float MinSampleRate;
677
678 // Scales all compression qualities when cooking to this platform. For example, 0.5 will halve all compression qualities, and 1.0 will leave them unchanged.
679 UPROPERTY(config, EditAnywhere, Category = "Audio|CookOverrides")
680 float CompressionQualityModifier;
681
682 // When set to anything beyond 0, this will ensure any SoundWaves longer than this value, in seconds, to stream directly off of the disk.
683 UPROPERTY(GlobalConfig)
684 float AutoStreamingThreshold;
685
686 // Several Android graphics debuggers require configuration changes to be made to your application in order to operate. Choosing an option from this menu will configure your project to work with that graphics debugger.
687 UPROPERTY(GlobalConfig, EditAnywhere, Category = GraphicsDebugger)
688 TEnumAsByte<EAndroidGraphicsDebugger::Type> AndroidGraphicsDebugger;
689
691 UPROPERTY(GlobalConfig, EditAnywhere, Category = GraphicsDebugger)
692 FDirectoryPath MaliGraphicsDebuggerPath;
693
694 // If checked, this will disable the security.perf_harden flag on the Android device when launching or installing your app via the generated batch file.
695 // Disabling security.perf_harden is necessary for HWCPipe to be able to report performance counters on Mali devices.
696 UPROPERTY(GlobalConfig, EditAnywhere, Category = GraphicsDebugger)
697 bool bEnableMaliPerfCounters;
698
700 UPROPERTY(GlobalConfig, EditAnywhere, Category = MultiTextureFormats, meta = (DisplayName = "Include ETC2 textures"))
701 bool bMultiTargetFormat_ETC2;
702
704 UPROPERTY(GlobalConfig, EditAnywhere, Category = MultiTextureFormats, meta = (DisplayName = "Include DXT textures"))
705 bool bMultiTargetFormat_DXT;
706
708 UPROPERTY(GlobalConfig, EditAnywhere, Category = MultiTextureFormats, meta = (DisplayName = "Include ASTC textures"))
709 bool bMultiTargetFormat_ASTC;
710
712 UPROPERTY(GlobalConfig, EditAnywhere, Category = TextureFormatPriorities, meta = (DisplayName = "ETC2 texture format priority"))
713 float TextureFormatPriority_ETC2;
714
716 UPROPERTY(GlobalConfig, EditAnywhere, Category = TextureFormatPriorities, meta = (DisplayName = "DXT texture format priority"))
717 float TextureFormatPriority_DXT;
718
720 UPROPERTY(GlobalConfig, EditAnywhere, Category = TextureFormatPriorities, meta = (DisplayName = "ASTC texture format priority"))
721 float TextureFormatPriority_ASTC;
722
726 UPROPERTY(Config, EditAnywhere, Category = MultiTextureFormats, meta = (DisplayName = "Enable ASTC RDO", ConfigHierarchyEditable))
727 bool bASTCUseRDO; // This name must match for all ASTC platforms so it's the same string in the ini
728
729 // Which SDK to package and compile Java with (a specific version or (without quotes) 'latest' for latest version on disk, or 'matchndk' to match the NDK API Level)
730 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Project SDK Override", Meta = (DisplayName = "SDK API Level (specific version, 'latest', or 'matchndk' - see tooltip)"))
731 FString SDKAPILevelOverride;
732
733 // Which NDK to compile with (a specific version or (without quotes) 'latest' for latest version on disk). Note that choosing android-21 or later won't run on pre-5.0 devices.
734 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Project SDK Override", Meta = (DisplayName = "NDK API Level (specific version or 'latest' - see tooltip)"))
735 FString NDKAPILevelOverride;
736
737 // Which build-tools to package with (a specific version or (without quotes) 'latest' for latest version on disk).
738 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Project SDK Override", Meta = (DisplayName = "Build-Tools Version (specific version or 'latest')"))
739 FString BuildToolsOverride;
740
742 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Misc", Meta = (DisplayName = "Stream landscape visual mesh LODs"))
743 bool bStreamLandscapeMeshLODs;
744
745 // Enables WebViews to use DOM storage API
746 UPROPERTY(GlobalConfig, EditAnywhere, Category = "Misc", Meta = (DisplayName = "Enable DOM storage for WebViews"))
747 bool bEnableDomStorage;
748
749 UE_API virtual void PostReloadConfig(class FProperty* PropertyThatWasLoaded) override;
750
751
752#if WITH_EDITOR
755 FPropertyChanged OnPropertyChanged;
756
757private:
758 // UObject interface
759 UE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
760 UE_API virtual void PostInitProperties() override;
764
765 // End of UObject interface
767#endif
768};
769
770#undef UE_API
OODEFFUNC typedef const char * file
Definition oodle2.h:678
OodleLZ_Profile profile
Definition oodle2.h:279
OODEFFUNC typedef void OO_U64 * dependencies
Definition oodle2.h:588
EGLSurface surface
Definition AndroidOpenGLFunctions.h:9
GLenum GLuint texture
Definition AndroidOpenGLFunctions.h:46
#define UE_API
Definition AndroidRuntimeSettings.h:13
#define verify(expr)
Definition AssertionMacros.h:319
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
return true
Definition ExternalRpcRegistry.cpp:601
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UMETA(...)
Definition ObjectMacros.h:747
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
const void OO_SINTa void OodleLZ_CompressionLevel selection
Definition OodleDataCompressionFormat.cpp:93
int compress(int elen, const REAL *e, REAL *h)
Definition Predicates.inl:1299
uint32 Size
Definition VulkanMemory.cpp:4034
if(Failed) console_printf("Failed.\n")
Definition Engine.Build.cs:7
Definition UnrealType.h:3087
Definition UnrealType.h:174
Definition Landscape.Build.cs:7
Definition Array.h:670
Definition EnumAsByte.h:22
Definition AndroidRuntimeSettings.h:208
Definition UMG.Build.cs:6
Definition Object.h:95
Definition UnrealGame.Build.cs:6
Definition Voice.Build.cs:7
#define KB
Definition lz4.cpp:242
Definition Adpcm.cpp:7
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Definition AndroidRuntimeSettings.h:182
Definition AndroidRuntimeSettings.h:66
Type
Definition AndroidRuntimeSettings.h:70
@ Bits16
Definition AndroidRuntimeSettings.h:72
@ Bits32
Definition AndroidRuntimeSettings.h:74
@ Bits24
Definition AndroidRuntimeSettings.h:73
Definition AndroidRuntimeSettings.h:193
Type
Definition AndroidRuntimeSettings.h:195
Definition AndroidRuntimeSettings.h:81
Type
Definition AndroidRuntimeSettings.h:83
@ PreferExternal
Definition AndroidRuntimeSettings.h:87
@ InternalOnly
Definition AndroidRuntimeSettings.h:85
Definition AndroidRuntimeSettings.h:53
Type
Definition AndroidRuntimeSettings.h:55
Definition AndroidRuntimeSettings.h:19
Type
Definition AndroidRuntimeSettings.h:23
@ Sensor
Definition AndroidRuntimeSettings.h:43
@ SensorLandscape
Definition AndroidRuntimeSettings.h:40
@ SensorPortrait
Definition AndroidRuntimeSettings.h:31
@ ReverseLandscape
Definition AndroidRuntimeSettings.h:37
@ ReversePortrait
Definition AndroidRuntimeSettings.h:28
Definition AndroidRuntimeSettings.h:136
Type
Definition AndroidRuntimeSettings.h:138
@ MAX_AD_CONTENT_RATING_MA
Definition AndroidRuntimeSettings.h:142
@ MAX_AD_CONTENT_RATING_T
Definition AndroidRuntimeSettings.h:141
@ MAX_AD_CONTENT_RATING_G
Definition AndroidRuntimeSettings.h:139
@ MAX_AD_CONTENT_RATING_PG
Definition AndroidRuntimeSettings.h:140
Definition AndroidRuntimeSettings.h:96
Type
Definition AndroidRuntimeSettings.h:98
@ Quest
Definition AndroidRuntimeSettings.h:102
@ Quest2
Definition AndroidRuntimeSettings.h:105
Definition AndroidRuntimeSettings.h:112
Type
Definition AndroidRuntimeSettings.h:114
@ TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED
Definition AndroidRuntimeSettings.h:115
@ TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE
Definition AndroidRuntimeSettings.h:117
@ TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE
Definition AndroidRuntimeSettings.h:116
Definition AndroidRuntimeSettings.h:124
Type
Definition AndroidRuntimeSettings.h:126
@ TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED
Definition AndroidRuntimeSettings.h:127
@ TAG_FOR_UNDER_AGE_OF_CONSENT_FALSE
Definition AndroidRuntimeSettings.h:129
@ TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE
Definition AndroidRuntimeSettings.h:128
Definition RobinHoodHashTable.h:18
Definition SoftObjectPath.h:767
Definition AndroidRuntimeSettings.h:151
Definition AndroidRuntimeSettings.h:168
Definition AudioCompressionSettings.h:113
Definition UnrealType.h:6865
Definition ResourceArray.h:31