# AndroidExternalToolsSettings

> Contains properties to modify Android specific settings in the External Tools window accessible through the Preferences window.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.Android](/engine/6000.3/script-reference/unityeditor/android.md)
* **Assembly:** UnityEditor.Android.Extensions

```csharp
public static class AndroidExternalToolsSettings
```

## Remarks

It allows you to customize Android development tools by defining paths to the Android SDK, NDK, and other dependencies for your project.

## Examples

```csharp
using UnityEngine; 
using UnityEditor;
using UnityEditor.Android;

public class AndroidExternalToolsSettingsSample
{
    [MenuItem("Tools/Set Android External Tools settings")]
    public static void SetAndroidExternalToolsSettings()
    {
        // Set a custom path for the Java Development Kit (JDK).
        // Replace this with the actual path.

        AndroidExternalToolsSettings.jdkRootPath = "/path/to/your/jdk";
        Debug.Log($"Custom JDK Path set to: {AndroidExternalToolsSettings.jdkRootPath}");

        // Set a custom maximum heap size for the JVM (in MB). Example: 1024 MB
        // Ensure the value is at least the minimum allowed (128 MB)
        int customHeapSize = 1024;

        if (customHeapSize >= 128)
        {
            AndroidExternalToolsSettings.maxJvmHeapSize = 1024;
            Debug.Log($"Max JVM Heap Size set to: {AndroidExternalToolsSettings.maxJvmHeapSize} MB");
        }
        else
        {
            Debug.LogError($"Invalid heap size. The value must be at least 128 MB.");
        }
    }
}
```

## Static Properties

| Property                                                                                                                                     | Description                                                                                    |
| -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| [jdkRootPath](/engine/6000.3/script-reference/unityeditor/android/androidexternaltoolssettings/jdkrootpath.md)                               | Path to the Java Development Kit (JDK) used for building Android applications.                 |
| [keystoresDedicatedLocation](/engine/6000.3/script-reference/unityeditor/android/androidexternaltoolssettings/keystoresdedicatedlocation.md) | Path to a location dedicated to keystores for signing Android applications.                    |
| [maxJvmHeapSize](/engine/6000.3/script-reference/unityeditor/android/androidexternaltoolssettings/maxjvmheapsize.md)                         | The maximum java heap size (in megabytes) that will be used for building Android applications. |
| [ndkRootPath](/engine/6000.3/script-reference/unityeditor/android/androidexternaltoolssettings/ndkrootpath.md)                               | Path to the Android Native Development Kit (NDK) used for building Android applications.       |
| [sdkRootPath](/engine/6000.3/script-reference/unityeditor/android/androidexternaltoolssettings/sdkrootpath.md)                               | Path to the Android Software Development Kit (SDK) used for building Android applications.     |

## Classes

| Class                                                                                                                             | Description                                                   |
| --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| [AndroidExternalToolsSettings.Gradle](/engine/6000.3/script-reference/unityeditor/android/androidexternaltoolssettings/gradle.md) | Contains properties to modify Android Gradle specific values. |
