@Override public void apply(Project project) { if (!project.getPlugins().hasPlugin(AppPlugin.class)) { throw new RuntimeException("should be declared after 'com.android.application'"); } AppExtension ext = project.getExtensions().getByType(AppExtension.class); ext.getApplicationVariants().all(v -> { String taskName = "open"+capitalize(v.getName()); DefaultTask parentTask = v.getInstall(); File adb = ext.getAdbExe(); if (v.isSigningReady()) { String packageId = v.getApplicationId(); HashMap variantAction = new HashMap(); variantAction.put("dependsOn", parentTask); variantAction.put("description", "Installs and opens " + v.getDescription()); variantAction.put("type", Exec.class); variantAction.put("group", "Open"); Exec t = (Exec) project.task(variantAction, taskName); t.setCommandLine(adb, "shell", "monkey", "-p", packageId, "-c", "android.intent.category.LAUNCHER", "1"); } }); }