Clean up plugins post v2 Android embedding (#2778)

diff --git a/packages/camera/CHANGELOG.md b/packages/camera/CHANGELOG.md
index 379e03d..d59cb71 100644
--- a/packages/camera/CHANGELOG.md
+++ b/packages/camera/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.8+2
+
+* Post-v2 embedding cleanups.
+
 ## 0.5.8+1
 
 * Update lower bound of dart dependency to 2.1.0.
diff --git a/packages/camera/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/FlutterActivityTest.java b/packages/camera/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/FlutterActivityTest.java
new file mode 100644
index 0000000..474e3b7
--- /dev/null
+++ b/packages/camera/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/FlutterActivityTest.java
@@ -0,0 +1,13 @@
+package io.flutter.plugins.cameraexample;
+
+import androidx.test.rule.ActivityTestRule;
+import dev.flutter.plugins.e2e.FlutterRunner;
+import io.flutter.embedding.android.FlutterActivity;
+import org.junit.Rule;
+import org.junit.runner.RunWith;
+
+@RunWith(FlutterRunner.class)
+public class FlutterActivityTest {
+  @Rule
+  public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
+}
diff --git a/packages/camera/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/MainActivityTest.java b/packages/camera/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/MainActivityTest.java
deleted file mode 100644
index 5d1b955..0000000
--- a/packages/camera/example/android/app/src/androidTestDebug/java/io/flutter/plugins/cameraexample/MainActivityTest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package io.flutter.plugins.cameraexample;
-
-import androidx.test.rule.ActivityTestRule;
-import dev.flutter.plugins.e2e.FlutterRunner;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
-
-@RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
-}
diff --git a/packages/camera/example/android/app/src/main/AndroidManifest.xml b/packages/camera/example/android/app/src/main/AndroidManifest.xml
index aad8d98..f37f823 100644
--- a/packages/camera/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/camera/example/android/app/src/main/AndroidManifest.xml
@@ -21,7 +21,7 @@
       android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
       android:hardwareAccelerated="true"
       android:launchMode="singleTop"
-      android:name=".MainActivity"
+      android:name="io.flutter.embedding.android.FlutterActivity"
       android:theme="@style/LaunchTheme"
       android:windowSoftInputMode="adjustResize">
       <intent-filter>
@@ -29,6 +29,7 @@
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>
     </activity>
+    <meta-data android:name="flutterEmbedding" android:value="2"/>
   </application>
 
   <uses-feature
diff --git a/packages/camera/example/android/app/src/main/java/io/flutter/plugins/cameraexample/EmbeddingV1Activity.java b/packages/camera/example/android/app/src/main/java/io/flutter/plugins/cameraexample/EmbeddingV1Activity.java
index 9e86560..76f47c5 100644
--- a/packages/camera/example/android/app/src/main/java/io/flutter/plugins/cameraexample/EmbeddingV1Activity.java
+++ b/packages/camera/example/android/app/src/main/java/io/flutter/plugins/cameraexample/EmbeddingV1Activity.java
@@ -1,13 +1,21 @@
 package io.flutter.plugins.cameraexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.camera.CameraPlugin;
+import io.flutter.plugins.pathprovider.PathProviderPlugin;
+import io.flutter.plugins.videoplayer.VideoPlayerPlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    CameraPlugin.registerWith(registrarFor("io.flutter.plugins.camera.CameraPlugin"));
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    PathProviderPlugin.registerWith(
+        registrarFor("io.flutter.plugins.pathprovider.PathProviderPlugin"));
+    VideoPlayerPlugin.registerWith(
+        registrarFor("io.flutter.plugins.videoplayer.VideoPlayerPlugin"));
   }
 }
diff --git a/packages/camera/example/android/app/src/main/java/io/flutter/plugins/cameraexample/MainActivity.java b/packages/camera/example/android/app/src/main/java/io/flutter/plugins/cameraexample/MainActivity.java
deleted file mode 100644
index bbe9e45..0000000
--- a/packages/camera/example/android/app/src/main/java/io/flutter/plugins/cameraexample/MainActivity.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package io.flutter.plugins.cameraexample;
-
-import androidx.annotation.NonNull;
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry;
-import io.flutter.plugins.camera.CameraPlugin;
-import io.flutter.plugins.pathprovider.PathProviderPlugin;
-import io.flutter.plugins.videoplayer.VideoPlayerPlugin;
-
-public class MainActivity extends FlutterActivity {
-  @Override
-  public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
-    flutterEngine.getPlugins().add(new CameraPlugin());
-
-    ShimPluginRegistry shimPluginRegistry = new ShimPluginRegistry(flutterEngine);
-    PathProviderPlugin.registerWith(
-        shimPluginRegistry.registrarFor("io.flutter.plugins.pathprovider.PathProviderPlugin"));
-    VideoPlayerPlugin.registerWith(
-        shimPluginRegistry.registrarFor("io.flutter.plugins.videoplayer.VideoPlayerPlugin"));
-  }
-}
diff --git a/packages/camera/pubspec.yaml b/packages/camera/pubspec.yaml
index 6d70ed7..6cb5147 100644
--- a/packages/camera/pubspec.yaml
+++ b/packages/camera/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A Flutter plugin for getting information about and controlling the
   camera on Android and iOS. Supports previewing the camera feed, capturing images, capturing video,
   and streaming image buffers to dart.
-version: 0.5.8+1
+version: 0.5.8+2
 
 homepage: https://github.com/flutter/plugins/tree/master/packages/camera
 
diff --git a/packages/e2e/CHANGELOG.md b/packages/e2e/CHANGELOG.md
index 47546f6..fb02e73 100644
--- a/packages/e2e/CHANGELOG.md
+++ b/packages/e2e/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.3+1
+
+* Post-v2 Android embedding cleanup.
+
 ## 0.4.3
 
 * Uses CompletableFuture from android-retrofuture allow compatibility with API < 24.
diff --git a/packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/FlutterActivityTest.java b/packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/FlutterActivityTest.java
new file mode 100644
index 0000000..86d5527
--- /dev/null
+++ b/packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/FlutterActivityTest.java
@@ -0,0 +1,14 @@
+package com.example.e2e_example;
+
+import androidx.test.rule.ActivityTestRule;
+import dev.flutter.plugins.e2e.FlutterTestRunner;
+import io.flutter.embedding.android.FlutterActivity;
+import org.junit.Rule;
+import org.junit.runner.RunWith;
+
+@RunWith(FlutterTestRunner.class)
+public class FlutterActivityTest {
+  @Rule
+  public ActivityTestRule<FlutterActivity> rule =
+      new ActivityTestRule<>(FlutterActivity.class, true, false);
+}
diff --git a/packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/MainActivityTest.java b/packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/MainActivityTest.java
deleted file mode 100644
index 93b1f92..0000000
--- a/packages/e2e/example/android/app/src/androidTest/java/com/example/e2e_example/MainActivityTest.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.example.e2e_example;
-
-import androidx.test.rule.ActivityTestRule;
-import dev.flutter.plugins.e2e.FlutterTestRunner;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
-
-@RunWith(FlutterTestRunner.class)
-public class MainActivityTest {
-  @Rule
-  public ActivityTestRule<MainActivity> rule =
-      new ActivityTestRule<>(MainActivity.class, true, false);
-}
diff --git a/packages/e2e/example/android/app/src/main/AndroidManifest.xml b/packages/e2e/example/android/app/src/main/AndroidManifest.xml
index ae1a11d..4710b79 100644
--- a/packages/e2e/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/e2e/example/android/app/src/main/AndroidManifest.xml
@@ -17,7 +17,7 @@
                   android:windowSoftInputMode="adjustResize">
         </activity>
         <activity
-            android:name=".MainActivity"
+            android:name="io.flutter.embedding.android.FlutterActivity"
             android:theme="@style/LaunchTheme"
             android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
             android:hardwareAccelerated="true"
@@ -27,5 +27,6 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/e2e/example/android/app/src/main/java/com/example/e2e_example/EmbedderV1Activity.java b/packages/e2e/example/android/app/src/main/java/com/example/e2e_example/EmbedderV1Activity.java
index 4056569..d12229d 100644
--- a/packages/e2e/example/android/app/src/main/java/com/example/e2e_example/EmbedderV1Activity.java
+++ b/packages/e2e/example/android/app/src/main/java/com/example/e2e_example/EmbedderV1Activity.java
@@ -5,13 +5,13 @@
 package com.example.e2e_example;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
 
 public class EmbedderV1Activity extends FlutterActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
   }
 }
diff --git a/packages/e2e/example/android/app/src/main/java/com/example/e2e_example/MainActivity.java b/packages/e2e/example/android/app/src/main/java/com/example/e2e_example/MainActivity.java
deleted file mode 100644
index a868db8..0000000
--- a/packages/e2e/example/android/app/src/main/java/com/example/e2e_example/MainActivity.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package com.example.e2e_example;
-
-import dev.flutter.plugins.e2e.E2EPlugin;
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-
-public class MainActivity extends FlutterActivity {
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    flutterEngine.getPlugins().add(new E2EPlugin());
-  }
-}
diff --git a/packages/e2e/pubspec.yaml b/packages/e2e/pubspec.yaml
index 79b47f1..c580a4b 100644
--- a/packages/e2e/pubspec.yaml
+++ b/packages/e2e/pubspec.yaml
@@ -1,6 +1,6 @@
 name: e2e
 description: Runs tests that use the flutter_test API as integration tests.
-version: 0.4.3
+version: 0.4.3+1
 homepage: https://github.com/flutter/plugins/tree/master/packages/e2e
 
 environment:
diff --git a/packages/flutter_plugin_android_lifecycle/CHANGELOG.md b/packages/flutter_plugin_android_lifecycle/CHANGELOG.md
index e51a1dd..60ac1c7 100644
--- a/packages/flutter_plugin_android_lifecycle/CHANGELOG.md
+++ b/packages/flutter_plugin_android_lifecycle/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.8
+
+* Post-v2 Android embedding cleanup.
+
 ## 1.0.7
 
 * Update Gradle version. Fixes https://github.com/flutter/flutter/issues/48724.
diff --git a/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/AndroidManifest.xml b/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/AndroidManifest.xml
index eddf84b..74f1397 100644
--- a/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/AndroidManifest.xml
@@ -29,5 +29,6 @@
             android:hardwareAccelerated="true"
             android:windowSoftInputMode="adjustResize">
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter_plugin_android_lifecycle_example/EmbeddingV1Activity.java b/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter_plugin_android_lifecycle_example/EmbeddingV1Activity.java
index a18c01b..0eb8bb9 100644
--- a/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter_plugin_android_lifecycle_example/EmbeddingV1Activity.java
+++ b/packages/flutter_plugin_android_lifecycle/example/android/app/src/main/java/io/flutter/plugins/flutter_plugin_android_lifecycle_example/EmbeddingV1Activity.java
@@ -1,13 +1,17 @@
 package io.flutter.plugins.flutter_plugin_android_lifecycle_example;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    FlutterAndroidLifecyclePlugin.registerWith(
+        registrarFor(
+            "io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin"));
   }
 }
diff --git a/packages/flutter_plugin_android_lifecycle/pubspec.yaml b/packages/flutter_plugin_android_lifecycle/pubspec.yaml
index a9191be..eced211 100644
--- a/packages/flutter_plugin_android_lifecycle/pubspec.yaml
+++ b/packages/flutter_plugin_android_lifecycle/pubspec.yaml
@@ -1,6 +1,6 @@
 name: flutter_plugin_android_lifecycle
 description: Flutter plugin for accessing an Android Lifecycle within other plugins.
-version: 1.0.7
+version: 1.0.8
 homepage: https://github.com/flutter/plugins/tree/master/packages/flutter_plugin_android_lifecycle
 
 environment:
diff --git a/packages/in_app_purchase/example/android/app/src/main/AndroidManifest.xml b/packages/in_app_purchase/example/android/app/src/main/AndroidManifest.xml
index 5ad1aa4..a17382b 100644
--- a/packages/in_app_purchase/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/in_app_purchase/example/android/app/src/main/AndroidManifest.xml
@@ -33,7 +33,7 @@
                 android:value="true" />
         </activity>
         <activity
-            android:name=".MainActivity"
+            android:name="io.flutter.embedding.android.FlutterActivity"
             android:theme="@style/LaunchTheme"
             android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
             android:hardwareAccelerated="true"
@@ -43,5 +43,6 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/EmbeddingV1Activity.java b/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/EmbeddingV1Activity.java
index aa7352a..425c166 100644
--- a/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/EmbeddingV1Activity.java
+++ b/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/EmbeddingV1Activity.java
@@ -5,13 +5,19 @@
 package io.flutter.plugins.inapppurchaseexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.inapppurchase.InAppPurchasePlugin;
+import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    SharedPreferencesPlugin.registerWith(
+        registrarFor("io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"));
+    InAppPurchasePlugin.registerWith(
+        registrarFor("io.flutter.plugins.inapppurchase.InAppPurchasePlugin"));
   }
 }
diff --git a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java b/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/FlutterActivityTest.java
similarity index 85%
copy from packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
copy to packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/FlutterActivityTest.java
index 8966983..1ebb9d2 100644
--- a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
+++ b/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/FlutterActivityTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package io.flutter.plugins.quickactionsexample;
+package io.flutter.plugins.inapppurchaseexample;
 
 import androidx.test.rule.ActivityTestRule;
 import dev.flutter.plugins.e2e.FlutterRunner;
@@ -11,7 +11,7 @@
 import org.junit.runner.RunWith;
 
 @RunWith(FlutterRunner.class)
-public class MainActivityTest {
+public class FlutterActivityTest {
   @Rule
   public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
 }
diff --git a/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/MainActivity.java b/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/MainActivity.java
deleted file mode 100644
index acb1bd5..0000000
--- a/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/MainActivity.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.inapppurchaseexample;
-
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry;
-import io.flutter.plugins.inapppurchase.InAppPurchasePlugin;
-import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin;
-
-public class MainActivity extends FlutterActivity {
-
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    super.configureFlutterEngine(flutterEngine);
-    flutterEngine.getPlugins().add(new InAppPurchasePlugin());
-
-    ShimPluginRegistry shimPluginRegistry = new ShimPluginRegistry(flutterEngine);
-    SharedPreferencesPlugin.registerWith(
-        shimPluginRegistry.registrarFor(
-            "io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"));
-  }
-}
diff --git a/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/MainActivityTest.java b/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/MainActivityTest.java
deleted file mode 100644
index f3ba164..0000000
--- a/packages/in_app_purchase/example/android/app/src/main/java/io/flutter/plugins/inapppurchaseexample/MainActivityTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.inapppurchaseexample;
-
-import androidx.test.rule.ActivityTestRule;
-import dev.flutter.plugins.e2e.FlutterRunner;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
-
-@RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
-}
diff --git a/packages/ios_platform_images/example/android/.gitignore b/packages/ios_platform_images/example/android/.gitignore
index bc2100d..cf399e0 100644
--- a/packages/ios_platform_images/example/android/.gitignore
+++ b/packages/ios_platform_images/example/android/.gitignore
@@ -5,3 +5,4 @@
 /gradlew.bat
 /local.properties
 GeneratedPluginRegistrant.java
+bin/
diff --git a/packages/ios_platform_images/example/android/app/bin/build.gradle b/packages/ios_platform_images/example/android/app/bin/build.gradle
deleted file mode 100644
index b70ac66..0000000
--- a/packages/ios_platform_images/example/android/app/bin/build.gradle
+++ /dev/null
@@ -1,67 +0,0 @@
-def localProperties = new Properties()
-def localPropertiesFile = rootProject.file('local.properties')
-if (localPropertiesFile.exists()) {
-    localPropertiesFile.withReader('UTF-8') { reader ->
-        localProperties.load(reader)
-    }
-}
-
-def flutterRoot = localProperties.getProperty('flutter.sdk')
-if (flutterRoot == null) {
-    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
-}
-
-def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
-if (flutterVersionCode == null) {
-    flutterVersionCode = '1'
-}
-
-def flutterVersionName = localProperties.getProperty('flutter.versionName')
-if (flutterVersionName == null) {
-    flutterVersionName = '1.0'
-}
-
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
-
-android {
-    compileSdkVersion 28
-
-    sourceSets {
-        main.java.srcDirs += 'src/main/kotlin'
-    }
-
-    lintOptions {
-        disable 'InvalidPackage'
-    }
-
-    defaultConfig {
-        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
-        applicationId "com.example.ios_platform_images_example"
-        minSdkVersion 16
-        targetSdkVersion 28
-        versionCode flutterVersionCode.toInteger()
-        versionName flutterVersionName
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-    }
-
-    buildTypes {
-        release {
-            // TODO: Add your own signing config for the release build.
-            // Signing with the debug keys for now, so `flutter run --release` works.
-            signingConfig signingConfigs.debug
-        }
-    }
-}
-
-flutter {
-    source '../..'
-}
-
-dependencies {
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-    testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'androidx.test:runner:1.1.1'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
-}
diff --git a/packages/ios_platform_images/example/android/app/bin/src/debug/AndroidManifest.xml b/packages/ios_platform_images/example/android/app/bin/src/debug/AndroidManifest.xml
deleted file mode 100644
index 03bcd32..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.ios_platform_images_example">
-    <!-- Flutter needs it to communicate with the running application
-         to allow setting breakpoints, to provide hot reload, etc.
-    -->
-    <uses-permission android:name="android.permission.INTERNET"/>
-</manifest>
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/AndroidManifest.xml b/packages/ios_platform_images/example/android/app/bin/src/main/AndroidManifest.xml
deleted file mode 100644
index a16bfcd..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.ios_platform_images_example">
-    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
-         calls FlutterMain.startInitialization(this); in its onCreate method.
-         In most cases you can leave this as-is, but you if you want to provide
-         additional functionality it is fine to subclass or reimplement
-         FlutterApplication and put your custom class here. -->
-    <application
-        android:name="io.flutter.app.FlutterApplication"
-        android:label="ios_platform_images_example"
-        android:icon="@mipmap/ic_launcher">
-        <activity
-            android:name=".MainActivity"
-            android:launchMode="singleTop"
-            android:theme="@style/LaunchTheme"
-            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
-            android:hardwareAccelerated="true"
-            android:windowSoftInputMode="adjustResize">
-            <!-- This keeps the window background of the activity showing
-                 until Flutter renders its first frame. It can be removed if
-                 there is no splash screen (such as the default splash screen
-                 defined in @style/LaunchTheme). -->
-            <meta-data
-                android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
-                android:value="true" />
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="android.intent.category.LAUNCHER"/>
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/kotlin/com/example/ios_platform_images_example/MainActivity.kt b/packages/ios_platform_images/example/android/app/bin/src/main/kotlin/com/example/ios_platform_images_example/MainActivity.kt
deleted file mode 100644
index d992677..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/kotlin/com/example/ios_platform_images_example/MainActivity.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.example.ios_platform_images_example
-
-import android.os.Bundle
-import io.flutter.app.FlutterActivity
-import io.flutter.plugins.GeneratedPluginRegistrant
-
-class MainActivity: FlutterActivity() {
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        GeneratedPluginRegistrant.registerWith(this)
-    }
-}
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/res/drawable/launch_background.xml b/packages/ios_platform_images/example/android/app/bin/src/main/res/drawable/launch_background.xml
deleted file mode 100644
index 304732f..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/res/drawable/launch_background.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Modify this file to customize your launch splash screen -->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@android:color/white" />
-
-    <!-- You can insert your own image assets here -->
-    <!-- <item>
-        <bitmap
-            android:gravity="center"
-            android:src="@mipmap/launch_image" />
-    </item> -->
-</layer-list>
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index db77bb4..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index 17987b7..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index 09d4391..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index d5f1c8d..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index 4d6372e..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/res/mipmap-xxxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/packages/ios_platform_images/example/android/app/bin/src/main/res/values/styles.xml b/packages/ios_platform_images/example/android/app/bin/src/main/res/values/styles.xml
deleted file mode 100644
index 00fa441..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
-        <!-- Show a splash screen on the activity. Automatically removed when
-             Flutter draws its first frame -->
-        <item name="android:windowBackground">@drawable/launch_background</item>
-    </style>
-</resources>
diff --git a/packages/ios_platform_images/example/android/app/bin/src/profile/AndroidManifest.xml b/packages/ios_platform_images/example/android/app/bin/src/profile/AndroidManifest.xml
deleted file mode 100644
index 03bcd32..0000000
--- a/packages/ios_platform_images/example/android/app/bin/src/profile/AndroidManifest.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.ios_platform_images_example">
-    <!-- Flutter needs it to communicate with the running application
-         to allow setting breakpoints, to provide hot reload, etc.
-    -->
-    <uses-permission android:name="android.permission.INTERNET"/>
-</manifest>
diff --git a/packages/ios_platform_images/example/android/app/src/main/AndroidManifest.xml b/packages/ios_platform_images/example/android/app/src/main/AndroidManifest.xml
index a16bfcd..94cfab6 100644
--- a/packages/ios_platform_images/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/ios_platform_images/example/android/app/src/main/AndroidManifest.xml
@@ -10,7 +10,7 @@
         android:label="ios_platform_images_example"
         android:icon="@mipmap/ic_launcher">
         <activity
-            android:name=".MainActivity"
+            android:name="io.flutter.embedding.android.FlutterActivity"
             android:launchMode="singleTop"
             android:theme="@style/LaunchTheme"
             android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
@@ -28,5 +28,6 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/ios_platform_images/example/android/app/src/main/kotlin/com/example/ios_platform_images_example/MainActivity.kt b/packages/ios_platform_images/example/android/app/src/main/kotlin/com/example/ios_platform_images_example/MainActivity.kt
deleted file mode 100644
index d992677..0000000
--- a/packages/ios_platform_images/example/android/app/src/main/kotlin/com/example/ios_platform_images_example/MainActivity.kt
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.example.ios_platform_images_example
-
-import android.os.Bundle
-import io.flutter.app.FlutterActivity
-import io.flutter.plugins.GeneratedPluginRegistrant
-
-class MainActivity: FlutterActivity() {
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        GeneratedPluginRegistrant.registerWith(this)
-    }
-}
diff --git a/packages/local_auth/CHANGELOG.md b/packages/local_auth/CHANGELOG.md
index b6941dc..8fec727 100644
--- a/packages/local_auth/CHANGELOG.md
+++ b/packages/local_auth/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.2+3
+
+* Post-v2 Android embedding cleanup.
+
 ## 0.6.2+2
 
 * Update lower bound of dart dependency to 2.1.0.
diff --git a/packages/local_auth/example/android/app/src/androidTest/java/io/flutter/plugins/localauth/MainActivityTest.java b/packages/local_auth/example/android/app/src/androidTest/java/io/flutter/plugins/localauth/MainActivityTest.java
index 9114170..f717ac9 100644
--- a/packages/local_auth/example/android/app/src/androidTest/java/io/flutter/plugins/localauth/MainActivityTest.java
+++ b/packages/local_auth/example/android/app/src/androidTest/java/io/flutter/plugins/localauth/MainActivityTest.java
@@ -2,11 +2,13 @@
 
 import androidx.test.rule.ActivityTestRule;
 import dev.flutter.plugins.e2e.FlutterRunner;
-import io.flutter.plugins.localauthexample.MainActivity;
+import io.flutter.embedding.android.FlutterFragmentActivity;
 import org.junit.Rule;
 import org.junit.runner.RunWith;
 
 @RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
+public class FlutterFragmentActivityTest {
+  @Rule
+  public ActivityTestRule<FlutterFragmentActivity> rule =
+      new ActivityTestRule<>(FlutterFragmentActivity.class);
 }
diff --git a/packages/local_auth/example/android/app/src/main/AndroidManifest.xml b/packages/local_auth/example/android/app/src/main/AndroidManifest.xml
index 25d749d..1425d9c 100644
--- a/packages/local_auth/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/local_auth/example/android/app/src/main/AndroidManifest.xml
@@ -5,7 +5,7 @@
     <uses-permission android:name="android.permission.USE_FINGERPRINT"/>
 
     <application android:name="io.flutter.app.FlutterApplication" android:label="local_auth_example" android:icon="@mipmap/ic_launcher">
-        <activity android:name=".MainActivity"
+        <activity android:name="io.flutter.embedding.android.FlutterFragmentActivity"
                   android:launchMode="singleTop"
                   android:theme="@style/Theme.AppCompat.Light"
                   android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
@@ -22,5 +22,6 @@
             android:hardwareAccelerated="true"
             android:windowSoftInputMode="adjustResize">
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/local_auth/example/android/app/src/main/java/io/flutter/plugins/localauthexample/EmbeddingV1Activity.java b/packages/local_auth/example/android/app/src/main/java/io/flutter/plugins/localauthexample/EmbeddingV1Activity.java
index 8191beb..166a043 100644
--- a/packages/local_auth/example/android/app/src/main/java/io/flutter/plugins/localauthexample/EmbeddingV1Activity.java
+++ b/packages/local_auth/example/android/app/src/main/java/io/flutter/plugins/localauthexample/EmbeddingV1Activity.java
@@ -1,13 +1,19 @@
 package io.flutter.plugins.localauthexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterFragmentActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin;
+import io.flutter.plugins.localauth.LocalAuthPlugin;
 
 public class EmbeddingV1Activity extends FlutterFragmentActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    FlutterAndroidLifecyclePlugin.registerWith(
+        registrarFor(
+            "io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin"));
+    LocalAuthPlugin.registerWith(registrarFor("io.flutter.plugins.localauth.LocalAuthPlugin"));
   }
 }
diff --git a/packages/local_auth/example/android/app/src/main/java/io/flutter/plugins/localauthexample/MainActivity.java b/packages/local_auth/example/android/app/src/main/java/io/flutter/plugins/localauthexample/MainActivity.java
deleted file mode 100644
index 87172b0..0000000
--- a/packages/local_auth/example/android/app/src/main/java/io/flutter/plugins/localauthexample/MainActivity.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.localauthexample;
-
-import io.flutter.embedding.android.FlutterFragmentActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugins.localauth.LocalAuthPlugin;
-
-public class MainActivity extends FlutterFragmentActivity {
-  // TODO(bparrishMines): Remove this once v2 of GeneratedPluginRegistrant rolls to stable. https://github.com/flutter/flutter/issues/42694
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    flutterEngine.getPlugins().add(new LocalAuthPlugin());
-  }
-}
diff --git a/packages/local_auth/pubspec.yaml b/packages/local_auth/pubspec.yaml
index b43f6b9..d80ebeb 100644
--- a/packages/local_auth/pubspec.yaml
+++ b/packages/local_auth/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Flutter plugin for Android and iOS device authentication sensors
   such as Fingerprint Reader and Touch ID.
 homepage: https://github.com/flutter/plugins/tree/master/packages/local_auth
-version: 0.6.2+2
+version: 0.6.2+3
 
 flutter:
   plugin:
diff --git a/packages/path_provider/path_provider/example/android/app/src/androidTest/java/MainActivityTest.java b/packages/path_provider/path_provider/example/android/app/src/androidTest/java/MainActivityTest.java
index 7bdd449..25ee8d8 100644
--- a/packages/path_provider/path_provider/example/android/app/src/androidTest/java/MainActivityTest.java
+++ b/packages/path_provider/path_provider/example/android/app/src/androidTest/java/MainActivityTest.java
@@ -3,11 +3,12 @@
 
 import androidx.test.rule.ActivityTestRule;
 import dev.flutter.plugins.e2e.FlutterRunner;
-import io.flutter.plugins.pathproviderexample.MainActivity;
+import io.flutter.embedding.android.FlutterActivity;
 import org.junit.Rule;
 import org.junit.runner.RunWith;
 
 @RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
+public class FlutterActivityTest {
+  @Rule
+  public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
 }
diff --git a/packages/path_provider/path_provider/example/android/app/src/main/AndroidManifest.xml b/packages/path_provider/path_provider/example/android/app/src/main/AndroidManifest.xml
index 9e03a93..ec8e31f 100644
--- a/packages/path_provider/path_provider/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/path_provider/path_provider/example/android/app/src/main/AndroidManifest.xml
@@ -10,7 +10,7 @@
             android:hardwareAccelerated="true"
             android:windowSoftInputMode="adjustResize">
         </activity>
-        <activity android:name=".MainActivity"
+        <activity android:name="io.flutter.embedding.android.FlutterActivity"
                   android:launchMode="singleTop"
                   android:theme="@android:style/Theme.Black.NoTitleBar"
                   android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
@@ -21,5 +21,6 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/path_provider/path_provider/example/android/app/src/main/java/io/flutter/plugins/pathproviderexample/EmbeddingV1Activity.java b/packages/path_provider/path_provider/example/android/app/src/main/java/io/flutter/plugins/pathproviderexample/EmbeddingV1Activity.java
index a826af3..2a59361 100644
--- a/packages/path_provider/path_provider/example/android/app/src/main/java/io/flutter/plugins/pathproviderexample/EmbeddingV1Activity.java
+++ b/packages/path_provider/path_provider/example/android/app/src/main/java/io/flutter/plugins/pathproviderexample/EmbeddingV1Activity.java
@@ -2,13 +2,16 @@
 package io.flutter.plugins.pathproviderexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.pathprovider.PathProviderPlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    PathProviderPlugin.registerWith(
+        registrarFor("io.flutter.plugins.pathprovider.PathProviderPlugin"));
   }
 }
diff --git a/packages/path_provider/path_provider/example/android/app/src/main/java/io/flutter/plugins/pathproviderexample/MainActivity.java b/packages/path_provider/path_provider/example/android/app/src/main/java/io/flutter/plugins/pathproviderexample/MainActivity.java
deleted file mode 100644
index 3637296..0000000
--- a/packages/path_provider/path_provider/example/android/app/src/main/java/io/flutter/plugins/pathproviderexample/MainActivity.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.pathproviderexample;
-
-import dev.flutter.plugins.e2e.E2EPlugin;
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugins.pathprovider.PathProviderPlugin;
-
-public class MainActivity extends FlutterActivity {
-  // TODO(xster): Remove this once v2 of GeneratedPluginRegistrant rolls to stable. https://github.com/flutter/flutter/issues/42694
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    flutterEngine.getPlugins().add(new PathProviderPlugin());
-    flutterEngine.getPlugins().add(new E2EPlugin());
-  }
-}
diff --git a/packages/quick_actions/CHANGELOG.md b/packages/quick_actions/CHANGELOG.md
index 9c76245..1afc92a 100644
--- a/packages/quick_actions/CHANGELOG.md
+++ b/packages/quick_actions/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.0+6
+
+* Post-v2 Android embedding cleanup.
+
 ## 0.4.0+5
 
 * Update lower bound of dart dependency to 2.1.0.
diff --git a/packages/quick_actions/example/android/app/src/main/AndroidManifest.xml b/packages/quick_actions/example/android/app/src/main/AndroidManifest.xml
index ef39e9c..56c924e 100644
--- a/packages/quick_actions/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/quick_actions/example/android/app/src/main/AndroidManifest.xml
@@ -17,7 +17,7 @@
           android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
           android:value="true"/>
     </activity>
-    <activity android:name=".MainActivity"
+    <activity android:name="io.flutter.embedding.android.FlutterActivity"
       android:theme="@style/LaunchTheme"
       android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
       android:hardwareAccelerated="true"
@@ -26,7 +26,7 @@
         <action android:name="android.intent.action.MAIN"/>
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>
-      <meta-data android:name="flutterEmbedding" android:value="2"/>
     </activity>
+    <meta-data android:name="flutterEmbedding" android:value="2"/>
   </application>
 </manifest>
diff --git a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java b/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/FlutterActivityTest.java
similarity index 93%
rename from packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
rename to packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/FlutterActivityTest.java
index 8966983..d809140 100644
--- a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
+++ b/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/FlutterActivityTest.java
@@ -11,7 +11,7 @@
 import org.junit.runner.RunWith;
 
 @RunWith(FlutterRunner.class)
-public class MainActivityTest {
+public class FlutterActivityTest {
   @Rule
   public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
 }
diff --git a/packages/quick_actions/pubspec.yaml b/packages/quick_actions/pubspec.yaml
index c9155b6..570c864 100644
--- a/packages/quick_actions/pubspec.yaml
+++ b/packages/quick_actions/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Flutter plugin for creating shortcuts on home screen, also known as
   Quick Actions on iOS and App Shortcuts on Android.
 homepage: https://github.com/flutter/plugins/tree/master/packages/quick_actions
-version: 0.4.0+5
+version: 0.4.0+6
 
 flutter:
   plugin:
diff --git a/packages/sensors/CHANGELOG.md b/packages/sensors/CHANGELOG.md
index 1e9d172..5550143 100644
--- a/packages/sensors/CHANGELOG.md
+++ b/packages/sensors/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.4.2+2
+
+* Post-v2 Android embedding cleanup.
+
 ## 0.4.2+1
 
 * Update lower bound of dart dependency to 2.1.0.
diff --git a/packages/sensors/example/android/app/src/main/AndroidManifest.xml b/packages/sensors/example/android/app/src/main/AndroidManifest.xml
index 67d4eb5..5c12a30 100644
--- a/packages/sensors/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/sensors/example/android/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
                   android:hardwareAccelerated="true"
                   android:windowSoftInputMode="adjustResize">
         </activity>
-        <activity android:name=".MainActivity"
+        <activity android:name="io.flutter.embedding.android.FlutterActivity"
             android:theme="@android:style/Theme.Black.NoTitleBar"
             android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
             android:hardwareAccelerated="true"
@@ -21,5 +21,6 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.java
index c91a3a9..80f6c82 100644
--- a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.java
+++ b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/EmbeddingV1Activity.java
@@ -5,13 +5,15 @@
 package io.flutter.plugins.sensorsexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.sensors.SensorsPlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    SensorsPlugin.registerWith(registrarFor("io.flutter.plugins.sensors.SensorsPlugin"));
   }
 }
diff --git a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/FlutterActivityTest.java
similarity index 85%
copy from packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
copy to packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/FlutterActivityTest.java
index 8966983..a0fff82 100644
--- a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
+++ b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/FlutterActivityTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package io.flutter.plugins.quickactionsexample;
+package io.flutter.plugins.sensorsexample;
 
 import androidx.test.rule.ActivityTestRule;
 import dev.flutter.plugins.e2e.FlutterRunner;
@@ -11,7 +11,7 @@
 import org.junit.runner.RunWith;
 
 @RunWith(FlutterRunner.class)
-public class MainActivityTest {
+public class FlutterActivityTest {
   @Rule
   public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
 }
diff --git a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java
deleted file mode 100644
index 38d05d8..0000000
--- a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivity.java
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.sensorsexample;
-
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugins.sensors.SensorsPlugin;
-
-public class MainActivity extends FlutterActivity {
-
-  // TODO(cyanglaz): Remove this once v2 of GeneratedPluginRegistrant rolls to stable.
-  // https://github.com/flutter/flutter/issues/42694
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    super.configureFlutterEngine(flutterEngine);
-    flutterEngine.getPlugins().add(new SensorsPlugin());
-  }
-}
diff --git a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivityTest.java b/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivityTest.java
deleted file mode 100644
index dee5dff..0000000
--- a/packages/sensors/example/android/app/src/main/java/io/flutter/plugins/sensorsexample/MainActivityTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.sensorsexample;
-
-import androidx.test.rule.ActivityTestRule;
-import dev.flutter.plugins.e2e.FlutterRunner;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
-
-@RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
-}
diff --git a/packages/sensors/pubspec.yaml b/packages/sensors/pubspec.yaml
index 6b08564..3e3aed1 100644
--- a/packages/sensors/pubspec.yaml
+++ b/packages/sensors/pubspec.yaml
@@ -5,7 +5,7 @@
 # 0.4.y+z is compatible with 1.0.0, if you land a breaking change bump
 # the version to 2.0.0.
 # See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0
-version: 0.4.2+1
+version: 0.4.2+2
 
 flutter:
   plugin:
diff --git a/packages/share/CHANGELOG.md b/packages/share/CHANGELOG.md
index d77b96a..b06f8de 100644
--- a/packages/share/CHANGELOG.md
+++ b/packages/share/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.4+3
+
+* Post-v2 Android embedding cleanup.
+
 ## 0.6.4+2
 
 * Update lower bound of dart dependency to 2.1.0.
diff --git a/packages/share/example/android/app/src/main/AndroidManifest.xml b/packages/share/example/android/app/src/main/AndroidManifest.xml
index d5e5ec8..350fdaf 100644
--- a/packages/share/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/share/example/android/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
                   android:hardwareAccelerated="true"
                   android:windowSoftInputMode="adjustResize">
         </activity>
-        <activity android:name=".MainActivity"
+        <activity android:name="io.flutter.embedding.android.FlutterActivity"
             android:theme="@android:style/Theme.Black.NoTitleBar"
             android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
             android:hardwareAccelerated="true"
@@ -21,5 +21,6 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/EmbeddingV1Activity.java b/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/EmbeddingV1Activity.java
index 736ac54..e12d223 100644
--- a/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/EmbeddingV1Activity.java
+++ b/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/EmbeddingV1Activity.java
@@ -5,14 +5,16 @@
 package io.flutter.plugins.shareexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.share.SharePlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    SharePlugin.registerWith(registrarFor("io.flutter.plugins.share.SharePlugin"));
   }
 }
diff --git a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java b/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/FlutterActivityTest.java
similarity index 85%
copy from packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
copy to packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/FlutterActivityTest.java
index 8966983..58c9edf 100644
--- a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
+++ b/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/FlutterActivityTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package io.flutter.plugins.quickactionsexample;
+package io.flutter.plugins.shareexample;
 
 import androidx.test.rule.ActivityTestRule;
 import dev.flutter.plugins.e2e.FlutterRunner;
@@ -11,7 +11,7 @@
 import org.junit.runner.RunWith;
 
 @RunWith(FlutterRunner.class)
-public class MainActivityTest {
+public class FlutterActivityTest {
   @Rule
   public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
 }
diff --git a/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/MainActivity.java b/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/MainActivity.java
deleted file mode 100644
index 3717feb..0000000
--- a/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/MainActivity.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2019 The Flutter Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.shareexample;
-
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugins.share.SharePlugin;
-
-public class MainActivity extends FlutterActivity {
-  // TODO(cyanglaz): Remove this once v2 of GeneratedPluginRegistrant rolls to stable.
-  // https://github.com/flutter/flutter/issues/42694
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    super.configureFlutterEngine(flutterEngine);
-    flutterEngine.getPlugins().add(new SharePlugin());
-  }
-}
diff --git a/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/MainActivityTest.java b/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/MainActivityTest.java
deleted file mode 100644
index fcd936a..0000000
--- a/packages/share/example/android/app/src/main/java/io/flutter/plugins/shareexample/MainActivityTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.shareexample;
-
-import androidx.test.rule.ActivityTestRule;
-import dev.flutter.plugins.e2e.FlutterRunner;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
-
-@RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
-}
diff --git a/packages/share/pubspec.yaml b/packages/share/pubspec.yaml
index 9a944e3..f695dbd 100644
--- a/packages/share/pubspec.yaml
+++ b/packages/share/pubspec.yaml
@@ -5,7 +5,7 @@
 # 0.6.y+z is compatible with 1.0.0, if you land a breaking change bump
 # the version to 2.0.0.
 # See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0
-version: 0.6.4+2
+version: 0.6.4+3
 
 flutter:
   plugin:
diff --git a/packages/shared_preferences/shared_preferences/CHANGELOG.md b/packages/shared_preferences/shared_preferences/CHANGELOG.md
index e8c1d1d..8c7ee24 100644
--- a/packages/shared_preferences/shared_preferences/CHANGELOG.md
+++ b/packages/shared_preferences/shared_preferences/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.7+3
+
+* Post-v2 Android embedding cleanup.
+
 ## 0.5.7+2
 
 * Update lower bound of dart dependency to 2.1.0.
diff --git a/packages/shared_preferences/shared_preferences/example/android/app/src/main/AndroidManifest.xml b/packages/shared_preferences/shared_preferences/example/android/app/src/main/AndroidManifest.xml
index abb4a67..04a642a 100644
--- a/packages/shared_preferences/shared_preferences/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/shared_preferences/shared_preferences/example/android/app/src/main/AndroidManifest.xml
@@ -11,7 +11,7 @@
                   android:hardwareAccelerated="true"
                   android:windowSoftInputMode="adjustResize">
         </activity>
-        <activity android:name=".MainActivity"
+        <activity android:name="io.flutter.embedding.android.FlutterActivity"
             android:theme="@android:style/Theme.Black.NoTitleBar"
             android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
             android:hardwareAccelerated="true"
@@ -21,5 +21,6 @@
                 <category android:name="android.intent.category.LAUNCHER"/>
             </intent-filter>
         </activity>
+        <meta-data android:name="flutterEmbedding" android:value="2"/>
     </application>
 </manifest>
diff --git a/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1Activity.java b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1Activity.java
index 68bb564..33f2942 100644
--- a/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1Activity.java
+++ b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1Activity.java
@@ -5,14 +5,17 @@
 package io.flutter.plugins.sharedpreferencesexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    SharedPreferencesPlugin.registerWith(
+        registrarFor("io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"));
   }
 }
diff --git a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/FlutterActivityTest.java
similarity index 84%
copy from packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
copy to packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/FlutterActivityTest.java
index 8966983..e1ec837 100644
--- a/packages/quick_actions/example/android/app/src/main/java/io/flutter/plugins/quickactionsexample/MainActivityTest.java
+++ b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/FlutterActivityTest.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-package io.flutter.plugins.quickactionsexample;
+package io.flutter.plugins.sharedpreferencesexample;
 
 import androidx.test.rule.ActivityTestRule;
 import dev.flutter.plugins.e2e.FlutterRunner;
@@ -11,7 +11,7 @@
 import org.junit.runner.RunWith;
 
 @RunWith(FlutterRunner.class)
-public class MainActivityTest {
+public class FlutterActivityTest {
   @Rule
   public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
 }
diff --git a/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivity.java b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivity.java
deleted file mode 100644
index f40d003..0000000
--- a/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivity.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.sharedpreferencesexample;
-
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin;
-
-public class MainActivity extends FlutterActivity {
-  // TODO(cyanglaz): Remove this once v2 of GeneratedPluginRegistrant rolls to stable.
-  // https://github.com/flutter/flutter/issues/42694
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    super.configureFlutterEngine(flutterEngine);
-    flutterEngine.getPlugins().add(new SharedPreferencesPlugin());
-  }
-}
diff --git a/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivityTest.java b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivityTest.java
deleted file mode 100644
index dc6c826..0000000
--- a/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivityTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2019 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.sharedpreferencesexample;
-
-import androidx.test.rule.ActivityTestRule;
-import dev.flutter.plugins.e2e.FlutterRunner;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
-
-@RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
-}
diff --git a/packages/shared_preferences/shared_preferences/pubspec.yaml b/packages/shared_preferences/shared_preferences/pubspec.yaml
index 3cab4b0..2b27824 100644
--- a/packages/shared_preferences/shared_preferences/pubspec.yaml
+++ b/packages/shared_preferences/shared_preferences/pubspec.yaml
@@ -5,7 +5,7 @@
 # 0.5.y+z is compatible with 1.0.0, if you land a breaking change bump
 # the version to 2.0.0.
 # See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0
-version: 0.5.7+2
+version: 0.5.7+3
 
 flutter:
   plugin:
diff --git a/packages/url_launcher/url_launcher/CHANGELOG.md b/packages/url_launcher/url_launcher/CHANGELOG.md
index 56b4bb3..2855ead 100644
--- a/packages/url_launcher/url_launcher/CHANGELOG.md
+++ b/packages/url_launcher/url_launcher/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 5.4.10
+
+* Post-v2 Android embedding cleanups.
+
 ## 5.4.9
 
 * Update README.
diff --git a/packages/url_launcher/url_launcher/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/MainActivityTest.java b/packages/url_launcher/url_launcher/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/MainActivityTest.java
index 4dda10f..a9000fb 100644
--- a/packages/url_launcher/url_launcher/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/MainActivityTest.java
+++ b/packages/url_launcher/url_launcher/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/MainActivityTest.java
@@ -2,10 +2,12 @@
 
 import androidx.test.rule.ActivityTestRule;
 import dev.flutter.plugins.e2e.FlutterRunner;
+import io.flutter.embedding.android.FlutterActivity;
 import org.junit.Rule;
 import org.junit.runner.RunWith;
 
 @RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
+public class FlutterActivityTest {
+  @Rule
+  public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
 }
diff --git a/packages/url_launcher/url_launcher/example/android/app/src/main/AndroidManifest.xml b/packages/url_launcher/url_launcher/example/android/app/src/main/AndroidManifest.xml
index d30c15f..3703579 100644
--- a/packages/url_launcher/url_launcher/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/url_launcher/url_launcher/example/android/app/src/main/AndroidManifest.xml
@@ -21,7 +21,7 @@
     <activity
       android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
       android:hardwareAccelerated="true"
-      android:name=".MainActivity"
+      android:name="io.flutter.embedding.android.FlutterActivity"
       android:theme="@android:style/Theme.Black.NoTitleBar"
       android:windowSoftInputMode="adjustResize">
       <intent-filter>
@@ -29,6 +29,7 @@
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>
     </activity>
+    <meta-data android:name="flutterEmbedding" android:value="2"/>
   </application>
 
   <!-- The INTERNET permission is required for development. Specifically,
diff --git a/packages/url_launcher/url_launcher/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/EmbeddingV1Activity.java b/packages/url_launcher/url_launcher/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/EmbeddingV1Activity.java
index e52ccfc..fc6aa56 100644
--- a/packages/url_launcher/url_launcher/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/EmbeddingV1Activity.java
+++ b/packages/url_launcher/url_launcher/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/EmbeddingV1Activity.java
@@ -5,14 +5,17 @@
 package io.flutter.plugins.urllauncherexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.urllauncher.UrlLauncherPlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    UrlLauncherPlugin.registerWith(
+        registrarFor("io.flutter.plugins.urllauncher.UrlLauncherPlugin"));
   }
 }
diff --git a/packages/url_launcher/url_launcher/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/MainActivity.java b/packages/url_launcher/url_launcher/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/MainActivity.java
deleted file mode 100644
index 76f7df7..0000000
--- a/packages/url_launcher/url_launcher/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/MainActivity.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package io.flutter.plugins.urllauncherexample;
-
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugins.urllauncher.UrlLauncherPlugin;
-
-public class MainActivity extends FlutterActivity {
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    flutterEngine.getPlugins().add(new UrlLauncherPlugin());
-  }
-}
diff --git a/packages/url_launcher/url_launcher/pubspec.yaml b/packages/url_launcher/url_launcher/pubspec.yaml
index a019859..156d608 100644
--- a/packages/url_launcher/url_launcher/pubspec.yaml
+++ b/packages/url_launcher/url_launcher/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Flutter plugin for launching a URL on Android and iOS. Supports
   web, phone, SMS, and email schemes.
 homepage: https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher
-version: 5.4.9
+version: 5.4.10
 
 flutter:
   plugin:
@@ -13,7 +13,7 @@
       ios:
         pluginClass: FLTURLLauncherPlugin
       web:
-        default_package: url_launcher_web 
+        default_package: url_launcher_web
       macos:
         default_package: url_laucher_macos
 
diff --git a/packages/url_launcher/url_launcher_macos/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/FlutterActivityTest.java b/packages/url_launcher/url_launcher_macos/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/FlutterActivityTest.java
new file mode 100644
index 0000000..a9000fb
--- /dev/null
+++ b/packages/url_launcher/url_launcher_macos/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/FlutterActivityTest.java
@@ -0,0 +1,13 @@
+package io.flutter.plugins.urllauncherexample;
+
+import androidx.test.rule.ActivityTestRule;
+import dev.flutter.plugins.e2e.FlutterRunner;
+import io.flutter.embedding.android.FlutterActivity;
+import org.junit.Rule;
+import org.junit.runner.RunWith;
+
+@RunWith(FlutterRunner.class)
+public class FlutterActivityTest {
+  @Rule
+  public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
+}
diff --git a/packages/url_launcher/url_launcher_macos/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/MainActivityTest.java b/packages/url_launcher/url_launcher_macos/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/MainActivityTest.java
deleted file mode 100644
index 4dda10f..0000000
--- a/packages/url_launcher/url_launcher_macos/example/android/app/src/androidTestDebug/java/io/flutter/plugins/urllauncherexample/MainActivityTest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package io.flutter.plugins.urllauncherexample;
-
-import androidx.test.rule.ActivityTestRule;
-import dev.flutter.plugins.e2e.FlutterRunner;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
-
-@RunWith(FlutterRunner.class)
-public class MainActivityTest {
-  @Rule public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);
-}
diff --git a/packages/url_launcher/url_launcher_macos/example/android/app/src/main/AndroidManifest.xml b/packages/url_launcher/url_launcher_macos/example/android/app/src/main/AndroidManifest.xml
index d30c15f..3703579 100644
--- a/packages/url_launcher/url_launcher_macos/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/url_launcher/url_launcher_macos/example/android/app/src/main/AndroidManifest.xml
@@ -21,7 +21,7 @@
     <activity
       android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
       android:hardwareAccelerated="true"
-      android:name=".MainActivity"
+      android:name="io.flutter.embedding.android.FlutterActivity"
       android:theme="@android:style/Theme.Black.NoTitleBar"
       android:windowSoftInputMode="adjustResize">
       <intent-filter>
@@ -29,6 +29,7 @@
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>
     </activity>
+    <meta-data android:name="flutterEmbedding" android:value="2"/>
   </application>
 
   <!-- The INTERNET permission is required for development. Specifically,
diff --git a/packages/url_launcher/url_launcher_macos/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/EmbeddingV1Activity.java b/packages/url_launcher/url_launcher_macos/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/EmbeddingV1Activity.java
index e52ccfc..fc6aa56 100644
--- a/packages/url_launcher/url_launcher_macos/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/EmbeddingV1Activity.java
+++ b/packages/url_launcher/url_launcher_macos/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/EmbeddingV1Activity.java
@@ -5,14 +5,17 @@
 package io.flutter.plugins.urllauncherexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.urllauncher.UrlLauncherPlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    UrlLauncherPlugin.registerWith(
+        registrarFor("io.flutter.plugins.urllauncher.UrlLauncherPlugin"));
   }
 }
diff --git a/packages/url_launcher/url_launcher_macos/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/MainActivity.java b/packages/url_launcher/url_launcher_macos/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/MainActivity.java
deleted file mode 100644
index 76f7df7..0000000
--- a/packages/url_launcher/url_launcher_macos/example/android/app/src/main/java/io/flutter/plugins/urllauncherexample/MainActivity.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package io.flutter.plugins.urllauncherexample;
-
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugins.urllauncher.UrlLauncherPlugin;
-
-public class MainActivity extends FlutterActivity {
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    flutterEngine.getPlugins().add(new UrlLauncherPlugin());
-  }
-}
diff --git a/packages/video_player/video_player/example/android/app/src/main/AndroidManifest.xml b/packages/video_player/video_player/example/android/app/src/main/AndroidManifest.xml
index deec4b6..3ad2e14 100644
--- a/packages/video_player/video_player/example/android/app/src/main/AndroidManifest.xml
+++ b/packages/video_player/video_player/example/android/app/src/main/AndroidManifest.xml
@@ -21,7 +21,7 @@
     <activity
       android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
       android:hardwareAccelerated="true"
-      android:name=".MainActivity"
+      android:name="io.flutter.embedding.android.FlutterActivity"
       android:theme="@style/LaunchTheme"
       android:windowSoftInputMode="adjustResize">
       <intent-filter>
@@ -29,6 +29,7 @@
         <category android:name="android.intent.category.LAUNCHER"/>
       </intent-filter>
     </activity>
+    <meta-data android:name="flutterEmbedding" android:value="2"/>
   </application>
 
   <uses-permission android:name="android.permission.INTERNET"/>
diff --git a/packages/video_player/video_player/example/android/app/src/main/java/io/flutter/plugins/videoplayerexample/EmbeddingV1Activity.java b/packages/video_player/video_player/example/android/app/src/main/java/io/flutter/plugins/videoplayerexample/EmbeddingV1Activity.java
index f1af8ec..de29b46 100644
--- a/packages/video_player/video_player/example/android/app/src/main/java/io/flutter/plugins/videoplayerexample/EmbeddingV1Activity.java
+++ b/packages/video_player/video_player/example/android/app/src/main/java/io/flutter/plugins/videoplayerexample/EmbeddingV1Activity.java
@@ -5,13 +5,16 @@
 package io.flutter.plugins.videoplayerexample;
 
 import android.os.Bundle;
+import dev.flutter.plugins.e2e.E2EPlugin;
 import io.flutter.app.FlutterActivity;
-import io.flutter.plugins.GeneratedPluginRegistrant;
+import io.flutter.plugins.videoplayer.VideoPlayerPlugin;
 
 public class EmbeddingV1Activity extends FlutterActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
-    GeneratedPluginRegistrant.registerWith(this);
+    E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
+    VideoPlayerPlugin.registerWith(
+        registrarFor("io.flutter.plugins.videoplayer.VideoPlayerPlugin"));
   }
 }
diff --git a/packages/video_player/video_player/example/android/app/src/main/java/io/flutter/plugins/videoplayerexample/MainActivity.java b/packages/video_player/video_player/example/android/app/src/main/java/io/flutter/plugins/videoplayerexample/MainActivity.java
deleted file mode 100644
index 2a0ae15..0000000
--- a/packages/video_player/video_player/example/android/app/src/main/java/io/flutter/plugins/videoplayerexample/MainActivity.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package io.flutter.plugins.videoplayerexample;
-
-import io.flutter.embedding.android.FlutterActivity;
-import io.flutter.embedding.engine.FlutterEngine;
-import io.flutter.plugins.videoplayer.VideoPlayerPlugin;
-
-public class MainActivity extends FlutterActivity {
-  @Override
-  public void configureFlutterEngine(FlutterEngine flutterEngine) {
-    flutterEngine.getPlugins().add(new VideoPlayerPlugin());
-  }
-}