private void installServerAPK(AndroidDevice device, File apk) throws AndroidExecutionException { if (device.isPackageInstalled(APK_APP_NAME)) { log.info("Package " + APK_APP_NAME + " is installed, trying to uninstall it."); device.uninstallPackage(APK_APP_NAME); } device.installPackage(apk, true); }
if (device.isPackageInstalled(applicationBasePackage)) { device.uninstallPackage(applicationBasePackage); if (!device.isPackageInstalled(applicationBasePackage)) { throw new AndroidExecutionException("Application " + applicationBasePackage + " was not installed on device " + device.getSerialNumber() + ".");
/** * Installs resigned Selendroid server which reflects Android application meant to be instrumented into Android device. * * @param deployment deployment to install to Android device * @throws IllegalArgumentException if {@code deployment} or {@code SelendroidDeployment#getResigned()} is a null object * @throws AndroidExecutionException */ public void install(SelendroidDeployment deployment) { Validate.notNull(deployment, "Selendroid deployment to deploy can not be a null object!"); Validate.notNull(deployment.getResigned(), "Resigned Selendroid application to deploy can not be a null object!"); Command selendroidInstallCommand = new Command(); selendroidInstallCommand.add(sdk.getAdbPath()) .add("-s") .add(device.getSerialNumber()) .add("install") .add(deployment.getResigned().getAbsolutePath()); logger.fine("Selendroid server installation command: " + selendroidInstallCommand.toString()); try { executor.execute(selendroidInstallCommand.getAsArray()); } catch (InterruptedException ex) { throw new AndroidExecutionException("Selendroid installation was interrupted."); } catch (ExecutionException ex) { throw new AndroidExecutionException("Unable to execute Selendroid installation process."); } if (!device.isPackageInstalled(deployment.getServerBasePackage())) { throw new AndroidExecutionException("Modified Selendroid server was not installed on device."); } }