diff --git a/www/docs/en/11.x/core/features/splashscreen/index.md b/www/docs/en/11.x/core/features/splashscreen/index.md
index 0c1d1c6..bbc9c8f 100644
--- a/www/docs/en/11.x/core/features/splashscreen/index.md
+++ b/www/docs/en/11.x/core/features/splashscreen/index.md
@@ -21,34 +21,47 @@
 toc_title: Splash Screen
 ---
 
+# Splash Screen
+
 This core feature gives the ability to configure and control the platform's splash screen while your web application is launching.
 
-- [Supported Platforms](#supported-platforms)
-- [Platform Splash Screen Image Configuration](#platform-splash-screen-image-configuration)
-  - [Example Configuration](#example-configuration)
-  - [iOS-specific Information](#ios-specific-information)
-    - [Launch Storyboard Images](#launch-storyboard-images)
-      - [Designing Launch Storyboard Images](#designing-launch-storyboard-images)
-      - [Scale](#scale)
-      - [Idioms](#idioms)
-      - [Size classes](#size-classes)
-      - [Single-image launch screen](#single-image-launch-screen)
-      - [Multi-image launch screen](#multi-image-launch-screen)
-      - [Dark Mode](#dark-mode)
-- [config.xml Preferences](#configxml-preferences)
-  - [`AutoHideSplashScreen`](#autohidesplashscreen)
-  - [`FadeSplashScreen`](#fadesplashscreen)
-  - [`FadeSplashScreenDuration`](#fadesplashscreenduration)
-  - [`ShowSplashScreenSpinner`](#showsplashscreenspinner)
-  - [`SplashScreenDelay`](#splashscreendelay)
-- [JavaScript Public APIs](#javascript-public-apis)
-  - [`navigator.splashscreen.hide`](#navigatorsplashscreenhide)
-  - [`navigator.splashscreen.show`](#navigatorsplashscreenshow)
-- [Quirks & Known Issues](#quirks--known-issues)
-  - [iOS](#ios)
+- [Splash Screen](#splash-screen)
+  - [Supported Platforms](#supported-platforms)
+  - [Platform Splash Screen Image Configuration](#platform-splash-screen-image-configuration)
+    - [Example Configuration](#example-configuration)
+    - [Android-specific Information](#android-specific-information)
+      - [Example Android Configuration](#example-android-configuration)
+    - [iOS-specific Information](#ios-specific-information)
+      - [Launch Storyboard Images](#launch-storyboard-images)
+        - [Designing Launch Storyboard Images](#designing-launch-storyboard-images)
+        - [Scale](#scale)
+        - [Idioms](#idioms)
+        - [Size classes](#size-classes)
+        - [Single-image launch screen](#single-image-launch-screen)
+        - [Multi-image launch screen](#multi-image-launch-screen)
+        - [Dark Mode](#dark-mode)
+  - [config.xml Preferences](#configxml-preferences)
+    - [`AutoHideSplashScreen`](#autohidesplashscreen)
+    - [`FadeSplashScreen`](#fadesplashscreen)
+    - [`FadeSplashScreenDuration`](#fadesplashscreenduration)
+    - [`ShowSplashScreenSpinner`](#showsplashscreenspinner)
+    - [`SplashScreenDelay`](#splashscreendelay)
+    - [`AndroidPostSplashScreenTheme`](#androidpostsplashscreentheme)
+    - [`AndroidWindowSplashScreenAnimatedIcon`](#androidwindowsplashscreenanimatedicon)
+    - [`AndroidWindowSplashScreenAnimationDuration`](#androidwindowsplashscreenanimationduration)
+    - [`AndroidWindowSplashScreenBackground`](#androidwindowsplashscreenbackground)
+    - [`AndroidWindowSplashScreenBrandingImage`](#androidwindowsplashscreenbrandingimage)
+    - [`AndroidWindowSplashScreenIconBackgroundColor`](#androidwindowsplashscreeniconbackgroundcolor)
+  - [JavaScript Public APIs](#javascript-public-apis)
+    - [`navigator.splashscreen.hide`](#navigatorsplashscreenhide)
+    - [`navigator.splashscreen.show`](#navigatorsplashscreenshow)
+  - [Quirks & Known Issues](#quirks--known-issues)
+    - [iOS](#ios)
+    - [Android](#android)
 
 ## Supported Platforms
 
+- Android
 - iOS
 
 For other platforms, check the `cordova-plugin-splashscreen` for support.
@@ -70,12 +83,17 @@
     www
     res
         screen
+            android
             ios
 ```
 
 **Config.xml:**
 
 ```xml
+<platform name="android">
+    <preference name="AndroidWindowSplashScreenAnimatedIcon" value="res/screen/android/splashscreen.xml" />
+</platform>
+
 <!--
   Storyboard (supports all devices):
   Note: images are determined by scale, idiom, and size traits. The following
@@ -91,6 +109,26 @@
 </platform>
 ```
 
+### Android-specific Information
+
+Starting in Android 12, Google has implemented a new SplashScreen API to controls the app launch animation which runs on a device with Android 12 and higher. For backwards compatability, Cordova has included the `core-splashscreen` compatability library which extends this features back to Android API 21 and higher.
+
+To effectively create your own Android SplashScreen assets, it is important to understand the requirements of an Adaptive Icon.
+
+**Resource:**
+
+- [Splash Screen dimensions](https://developer.android.com/guide/topics/ui/splash-screen#splash_screen_dimensions)
+- [Adaptive icons](https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive)
+
+#### Example Android Configuration
+
+```xml
+<platform name="android">
+    <!-- Default -->
+    <preference name="AndroidWindowSplashScreenAnimatedIcon" value="res/screen/android/splashscreen.xml" />
+</platform>
+```
+
 ### iOS-specific Information
 
 Launch storyboard images are sized based on scale, idiom, and size classes. It supports all devices, and can be used with split-screen/slide-over multitasking.
@@ -262,6 +300,7 @@
 
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Data Type:** `Boolean`
@@ -278,8 +317,11 @@
 
 Controlls the ability of the fade in and out of the splash screen.
 
+For Android, it controlls only the fade out.
+
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Data Type:** `Boolean`
@@ -298,6 +340,7 @@
 
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Data Type:** `Float`, in milliseconds
@@ -351,14 +394,18 @@
 
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Data Type:** `Number`, in milliseconds
 
 **Default Value:** `true`
 
+- Android
+  `-1`: The splash screen will automatically hide when the `onPageFinished` has been triggered.
+
 - iOS
-  `3000`: The splash screen will automatticly hide in 3 seconds.
+  `3000`: The splash screen will automatically hide in 3 seconds.
 
 **Usage Example:**
 
@@ -366,6 +413,120 @@
 <preference name="SplashScreenDelay" value="3000" />
 ```
 
+### `AndroidPostSplashScreenTheme`
+
+Sets the post-theme of the activity after splash screen hides.
+
+_Note:_ This setting is available but use at your own risk.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`
+
+**Default Value:** `@style/Theme.AppCompat.NoActionBar`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidPostSplashScreenTheme" value="@style/Theme.AppCompat.NoActionBar"/>
+```
+
+### `AndroidWindowSplashScreenAnimatedIcon`
+
+The splash screen image. This preference is used for both animated and non-animated icons. The current acceptable asset files can either be an XML Vector Drwable or PNG.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`, file path to the asset file
+
+**Default Value:** If not supplied, the Cordova's default asset is used.
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenAnimatedIcon" value="res/screen/android/splashscreen.xml" />
+```
+
+### `AndroidWindowSplashScreenAnimationDuration`
+
+Defines the duration of the icon's animation if an Animated Vector Drwable is supplied as the splash screen image.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `Number`, in milliseconds
+
+**Default Value:** `undefined`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenAnimationDuration" value="3000"/>
+```
+
+### `AndroidWindowSplashScreenBackground`
+
+The splash screen background color.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`, color hex code value.
+
+**Default Value:** `#ffffff`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenBackground" value="#ffffff" />
+```
+
+### `AndroidWindowSplashScreenBrandingImage`
+
+> :warning: this setting is currently unsupported by the Android's Splash Screen compatability library. [See Google Android Issue Tracker](https://issuetracker.google.com/issues/194301890)
+
+<!--
+The splash screen's branding image.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`, file path to the asset file
+
+**Default Value:** `undefined`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenBrandingImage" value="res/screen/android/splashscreen_branding.xml" />
+```
+-->
+
+### `AndroidWindowSplashScreenIconBackgroundColor`
+
+The splash screen's icons background color. Useful to seperate increase the contrast seperation between the background and icon.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`, color hex code value.
+
+**Default Value:** `undefined`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenIconBackgroundColor" value="#c0c0c0" />
+```
+
 ## JavaScript Public APIs
 
 ### `navigator.splashscreen.hide`
@@ -374,6 +535,7 @@
 
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Usage Example:**
@@ -429,3 +591,8 @@
 
 4. **`anyany` must be provided for other variations to be used**
    If you don't provide an `anyany` version of the launch image for a specific scale and idiom, the other variations (like `anycom`, `comany`, and `comcom`) will ignored.
+
+### Android
+
+1. **Simulator does not show the splash screen when launching the application from Android Studio or Cordova CLI.**
+   This is a known Android simulator issue. After uploading the app to the simulator, exiting and opening the app will display show the Splash Screen. If changes are not showen, try also performing a clean build.
diff --git a/www/docs/en/dev/core/features/splashscreen/index.md b/www/docs/en/dev/core/features/splashscreen/index.md
index 0c1d1c6..be35ddc 100644
--- a/www/docs/en/dev/core/features/splashscreen/index.md
+++ b/www/docs/en/dev/core/features/splashscreen/index.md
@@ -21,34 +21,47 @@
 toc_title: Splash Screen
 ---
 
+# Splash Screen
+
 This core feature gives the ability to configure and control the platform's splash screen while your web application is launching.
 
-- [Supported Platforms](#supported-platforms)
-- [Platform Splash Screen Image Configuration](#platform-splash-screen-image-configuration)
-  - [Example Configuration](#example-configuration)
-  - [iOS-specific Information](#ios-specific-information)
-    - [Launch Storyboard Images](#launch-storyboard-images)
-      - [Designing Launch Storyboard Images](#designing-launch-storyboard-images)
-      - [Scale](#scale)
-      - [Idioms](#idioms)
-      - [Size classes](#size-classes)
-      - [Single-image launch screen](#single-image-launch-screen)
-      - [Multi-image launch screen](#multi-image-launch-screen)
-      - [Dark Mode](#dark-mode)
-- [config.xml Preferences](#configxml-preferences)
-  - [`AutoHideSplashScreen`](#autohidesplashscreen)
-  - [`FadeSplashScreen`](#fadesplashscreen)
-  - [`FadeSplashScreenDuration`](#fadesplashscreenduration)
-  - [`ShowSplashScreenSpinner`](#showsplashscreenspinner)
-  - [`SplashScreenDelay`](#splashscreendelay)
-- [JavaScript Public APIs](#javascript-public-apis)
-  - [`navigator.splashscreen.hide`](#navigatorsplashscreenhide)
-  - [`navigator.splashscreen.show`](#navigatorsplashscreenshow)
-- [Quirks & Known Issues](#quirks--known-issues)
-  - [iOS](#ios)
+- [Splash Screen](#splash-screen)
+  - [Supported Platforms](#supported-platforms)
+  - [Platform Splash Screen Image Configuration](#platform-splash-screen-image-configuration)
+    - [Example Configuration](#example-configuration)
+    - [Android-specific Information](#android-specific-information)
+      - [Example Android Configuration](#example-android-configuration)
+    - [iOS-specific Information](#ios-specific-information)
+      - [Launch Storyboard Images](#launch-storyboard-images)
+        - [Designing Launch Storyboard Images](#designing-launch-storyboard-images)
+        - [Scale](#scale)
+        - [Idioms](#idioms)
+        - [Size classes](#size-classes)
+        - [Single-image launch screen](#single-image-launch-screen)
+        - [Multi-image launch screen](#multi-image-launch-screen)
+        - [Dark Mode](#dark-mode)
+  - [config.xml Preferences](#configxml-preferences)
+    - [`AutoHideSplashScreen`](#autohidesplashscreen)
+    - [`FadeSplashScreen`](#fadesplashscreen)
+    - [`FadeSplashScreenDuration`](#fadesplashscreenduration)
+    - [`ShowSplashScreenSpinner`](#showsplashscreenspinner)
+    - [`SplashScreenDelay`](#splashscreendelay)
+    - [`AndroidPostSplashScreenTheme`](#androidpostsplashscreentheme)
+    - [`AndroidWindowSplashScreenAnimatedIcon`](#androidwindowsplashscreenanimatedicon)
+    - [`AndroidWindowSplashScreenAnimationDuration`](#androidwindowsplashscreenanimationduration)
+    - [`AndroidWindowSplashScreenBackground`](#androidwindowsplashscreenbackground)
+    - [`AndroidWindowSplashScreenBrandingImage`](#androidwindowsplashscreenbrandingimage)
+    - [`AndroidWindowSplashScreenIconBackgroundColor`](#androidwindowsplashscreeniconbackgroundcolor)
+  - [JavaScript Public APIs](#javascript-public-apis)
+    - [`navigator.splashscreen.hide`](#navigatorsplashscreenhide)
+    - [`navigator.splashscreen.show`](#navigatorsplashscreenshow)
+  - [Quirks & Known Issues](#quirks--known-issues)
+    - [iOS](#ios)
+    - [Android](#android)
 
 ## Supported Platforms
 
+- Android
 - iOS
 
 For other platforms, check the `cordova-plugin-splashscreen` for support.
@@ -70,12 +83,17 @@
     www
     res
         screen
+            android
             ios
 ```
 
 **Config.xml:**
 
 ```xml
+<platform name="android">
+    <preference name="AndroidWindowSplashScreenAnimatedIcon" value="res/screen/android/splashscreen.xml" />
+</platform>
+
 <!--
   Storyboard (supports all devices):
   Note: images are determined by scale, idiom, and size traits. The following
@@ -91,6 +109,26 @@
 </platform>
 ```
 
+### Android-specific Information
+
+Starting in Android 12, Google has implemented a new SplashScreen API to controls the app launch animation which runs on a device with Android 12 and higher. For backwards compatibility, Cordova has included the `core-splashscreen` compatibility library which extends this features back to Android API 21 and higher.
+
+To effectively create your own Android SplashScreen assets, it is important to understand the requirements of an Adaptive Icon.
+
+**Resource:**
+
+- [Splash Screen dimensions](https://developer.android.com/guide/topics/ui/splash-screen#splash_screen_dimensions)
+- [Adaptive icons](https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive)
+
+#### Example Android Configuration
+
+```xml
+<platform name="android">
+    <!-- Default -->
+    <preference name="AndroidWindowSplashScreenAnimatedIcon" value="res/screen/android/splashscreen.xml" />
+</platform>
+```
+
 ### iOS-specific Information
 
 Launch storyboard images are sized based on scale, idiom, and size classes. It supports all devices, and can be used with split-screen/slide-over multitasking.
@@ -262,6 +300,7 @@
 
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Data Type:** `Boolean`
@@ -278,8 +317,11 @@
 
 Controlls the ability of the fade in and out of the splash screen.
 
+For Android, it controlls only the fade out.
+
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Data Type:** `Boolean`
@@ -298,6 +340,7 @@
 
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Data Type:** `Float`, in milliseconds
@@ -351,14 +394,18 @@
 
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Data Type:** `Number`, in milliseconds
 
 **Default Value:** `true`
 
+- Android
+  `-1`: The splash screen will automatically hide when the `onPageFinished` has been triggered.
+
 - iOS
-  `3000`: The splash screen will automatticly hide in 3 seconds.
+  `3000`: The splash screen will automatically hide in 3 seconds.
 
 **Usage Example:**
 
@@ -366,6 +413,120 @@
 <preference name="SplashScreenDelay" value="3000" />
 ```
 
+### `AndroidPostSplashScreenTheme`
+
+Sets the post-theme of the activity after splash screen hides.
+
+_Note:_ This setting is available but use at your own risk.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`
+
+**Default Value:** `@style/Theme.AppCompat.NoActionBar`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidPostSplashScreenTheme" value="@style/Theme.AppCompat.NoActionBar"/>
+```
+
+### `AndroidWindowSplashScreenAnimatedIcon`
+
+The splash screen image. This preference is used for both animated and non-animated icons. The current acceptable asset files can either be a XML Vector Drawable or PNG.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`, file path to the asset file
+
+**Default Value:** If not supplied, the Cordova's default asset is used.
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenAnimatedIcon" value="res/screen/android/splashscreen.xml" />
+```
+
+### `AndroidWindowSplashScreenAnimationDuration`
+
+Defines the duration of the icon's animation if an Animated Vector Drawable is supplied as the splash screen image.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `Number`, in milliseconds
+
+**Default Value:** `undefined`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenAnimationDuration" value="3000"/>
+```
+
+### `AndroidWindowSplashScreenBackground`
+
+The splash screen background color.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`, color hex code value.
+
+**Default Value:** `#ffffff`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenBackground" value="#ffffff" />
+```
+
+### `AndroidWindowSplashScreenBrandingImage`
+
+> :warning: this setting is currently unsupported. The core-splashscreen compatibility library, that Cordova Android relies on for providing backwards support, has not implemented this functionality. [See Google Android Issue Tracker](https://issuetracker.google.com/issues/194301890)
+
+<!--
+The splash screen's branding image.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`, file path to the asset file
+
+**Default Value:** `undefined`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenBrandingImage" value="res/screen/android/splashscreen_branding.xml" />
+```
+-->
+
+### `AndroidWindowSplashScreenIconBackgroundColor`
+
+The splash screen's icons background color. Useful to seperate increase the contrast seperation between the background and icon.
+
+**Supported Platforms:**
+
+- Android
+
+**Data Type:** `String`, color hex code value.
+
+**Default Value:** `undefined`
+
+**Usage Example:**
+
+```xml
+<preference name="AndroidWindowSplashScreenIconBackgroundColor" value="#c0c0c0" />
+```
+
 ## JavaScript Public APIs
 
 ### `navigator.splashscreen.hide`
@@ -374,6 +535,7 @@
 
 **Supported Platforms:**
 
+- Android
 - iOS
 
 **Usage Example:**
@@ -429,3 +591,8 @@
 
 4. **`anyany` must be provided for other variations to be used**
    If you don't provide an `anyany` version of the launch image for a specific scale and idiom, the other variations (like `anycom`, `comany`, and `comcom`) will ignored.
+
+### Android
+
+1. **Simulator does not show the splash screen when launching the application from Android Studio or Cordova CLI.**
+   This is a known Android simulator issue. After uploading the app to the simulator, exiting and opening the app will display show the Splash Screen. If changes are not shown, try also performing a clean build.
