/** Fetch or create a real device that corresponds to a device model. */ static IDevice obtainRealDevice(AndroidDebugBridge adb, String serial) { // Get an existing real device. for (IDevice adbDevice : adb.getDevices()) { if (adbDevice.getSerialNumber().equals(serial)) { return adbDevice; } } throw new IllegalArgumentException("Unknown device serial: " + serial); }
/** * This method extracts a port number from the serial number of a device. * It assumes that the device name is of format [xxxx-nnnn] where nnnn is the * port number. * * @param device The device to extract the port number from. * @return Returns the port number of the device */ private int extractPortFromDevice( IDevice device ) { String portStr = StringUtils.substringAfterLast( device.getSerialNumber(), "-" ); if ( StringUtils.isNotBlank( portStr ) && StringUtils.isNumeric( portStr ) ) { return Integer.parseInt( portStr ); } //If the port is not available then return -1 return -1; }
/** * Find all device serials that are plugged in through ADB. * * @param minApiLevel If <code>null</code>, all devices will be returned. Otherwise, only * those device serials that are greater than or equal to the provided * version will be returned. */ public static Set<String> findAllDevices(AndroidDebugBridge adb, Integer minApiLevel) { Set<String> devices = new LinkedHashSet<>(); for (IDevice realDevice : adb.getDevices()) { if (minApiLevel == null) { devices.add(realDevice.getSerialNumber()); } else { DeviceDetails deviceDetails = DeviceDetails.createForDevice(realDevice); int apiLevel = deviceDetails.getApiLevel(); if (apiLevel == DeviceDetails.UNKNOWN_API_LEVEL || apiLevel >= minApiLevel) { devices.add(realDevice.getSerialNumber()); } } } return devices; }
/** * Get a device identifier string that is suitable for filenames as well as log messages. * This means it is human readable and contains no spaces. * Used for instrumentation test report file names so see more at * AbstractInstrumentationMojo#testCreateReport javadoc since * that is the public documentation. */ public static String getDescriptiveName( IDevice device ) { // if any of this logic changes update javadoc for // AbstractInstrumentationMojo#testCreateReport StringBuilder identfier = new StringBuilder().append( device.getSerialNumber() ); if ( device.getAvdName() != null ) { identfier.append( SEPARATOR ).append( device.getAvdName() ); } String manufacturer = getManufacturer( device ); if ( StringUtils.isNotBlank( manufacturer ) ) { identfier.append( SEPARATOR ).append( manufacturer ); } String model = getModel( device ); if ( StringUtils.isNotBlank( model ) ) { identfier.append( SEPARATOR ).append( model ); } return FileNameHelper.fixFileName( identfier.toString() ); }
.equalsIgnoreCase( idevice.getSerialNumber() ) ) ) if ( ! idevice.isEmulator() && device.equals( idevice.getSerialNumber() ) )
Log.i( LOG_TAG, String.format( "Running %1$s on %2$s", runCaseCommandStr, mRemoteDevice.getSerialNumber() ) ); mParser = new MonkeyResultParser( mRunName, listeners ); mRemoteDevice.getSerialNumber() ) ); e.toString(), mRemoteDevice.getSerialNumber() ) ); mParser.handleTestRunFailed( String.format( "Failed to receive adb shell test output within %1$d ms. " + "Test may have timed out, or adb connection to device became unresponsive", mRemoteDevice.getSerialNumber() ) ); mParser.handleTestRunFailed( e.toString() ); throw e; e.toString(), mRemoteDevice.getSerialNumber() ) ); mParser.handleTestRunFailed( e.toString() ); throw e;
Log.i( LOG_TAG, String.format( "Running %1$s on %2$s", runCaseCommandStr, mRemoteDevice.getSerialNumber() ) ); mParser = new InstrumentationResultParser( mRunName, listeners ); mRemoteDevice.getSerialNumber() ) ); e.toString(), jarFile, mRemoteDevice.getSerialNumber() ) ); mParser.handleTestRunFailed( String.format( "Failed to receive adb shell test output within %1$d ms. " + "Test may have timed out, or adb connection to device became unresponsive", mRemoteDevice.getSerialNumber() ) ); mParser.handleTestRunFailed( e.toString() ); throw e; e.toString(), jarFile, mRemoteDevice.getSerialNumber() ) ); mParser.handleTestRunFailed( e.toString() ); throw e;
if ( parsedInjectDeviceSerialNumberIntoScript != null && parsedInjectDeviceSerialNumberIntoScript ) parameters.add( device.getSerialNumber() );
existingEmulator.getSerialNumber(), existingEmulator.getAvdName() ) );
@Override public String getSerialNumber() { return device.getSerialNumber(); }
@Override public void deviceConnected(IDevice device) { this.discoveredDevice = device; log.log(Level.FINE, "Discovered an emulator device id={0} connected to ADB bus", device.getSerialNumber()); }
@Override public boolean equals(Object obj) { System.out.printf("AndroidDevice.equals: %s == %s%n", this, obj); if (this == obj) return true; if (!(obj instanceof AndroidDevice)) return false; AndroidDevice that = (AndroidDevice) obj; return this.getDevice().getSerialNumber().equals(that.getDevice().getSerialNumber()); }
@NonNull @Override public String getSerialNumber() { return iDevice.getSerialNumber(); }
/** Fetch or create a real device that corresponds to a device model. */ static IDevice obtainRealDevice(AndroidDebugBridge adb, String serial) { // Get an existing real device. for (IDevice adbDevice : adb.getDevices()) { if (adbDevice.getSerialNumber().equals(serial)) { return adbDevice; } } throw new IllegalArgumentException("Unknown device serial: " + serial); }
private synchronized void handleException(Exception e) { mCacheState = CacheState.UNPOPULATED; Log.w("PropertyFetcher", String.format("%s getting properties for device %s: %s", e.getClass().getSimpleName(), mDevice.getSerialNumber(), e.getMessage())); for (Map.Entry<String, SettableFuture<String>> entry : mPendingRequests.entrySet()) { entry.getValue().setException(e); } mPendingRequests.clear(); }
public Device loadDevice(@Nonnull String serial) throws DeviceCouldNotBeFoundException { Optional<IDevice> deviceOptional = loadAllDevices() .stream() .filter(d -> serial.equals(d.getSerialNumber())) .findFirst(); if (deviceOptional.isPresent()) { return loadDeviceCharacteristics(deviceOptional.get()); } throw new DeviceCouldNotBeFoundException("Could not load device with serial: " + serial); }
@Nullable private static IDevice find(@NonNull List<? extends IDevice> devices, @NonNull IDevice device) { for (IDevice d : devices) { if (d.getSerialNumber().equals(device.getSerialNumber())) { return d; } } return null; } }
@Override public void deviceDisconnected(IDevice device) { if (device.getAvdName().equals(connectedDevice.getAvdName())) { this.offline = true; } logger.fine("Discovered an emulator device id=" + device.getSerialNumber() + " disconnected from ADB bus"); }
@Override public void deviceDisconnected(IDevice device) { if (device.getAvdName().equals(connectedDevice.getAvdName())) { this.offline = true; } log.log(Level.FINE, "Discovered an emulator device id={0} disconnected from ADB bus", device.getSerialNumber()); }
private Device loadDeviceCharacteristics(IDevice device) { return aDevice() .withSerial(device.getSerialNumber()) .withManufacturer(device.getProperty("ro.product.manufacturer")) .withModel(device.getProperty("ro.product.model")) .withApiLevel(device.getProperty("ro.build.version.sdk")) .withDeviceInterface(device) .withTabletCharacteristic(device.getProperty("ro.build.characteristics")) .withDisplayGeometry(deviceGeometryRetriever.detectGeometry(device)).build(); } }