IAndroidTarget target = sdkManager.getAndroidTargetManager( progressIndicator ) .getTargetFromHashString( hashString, progressIndicator ); for ( IAndroidTarget t: sdkManager.getAndroidTargetManager( null ).getTargets( null ) )
public AndroidSdk( File sdkPath, String apiLevel, @Nullable String buildToolsVersion ) { this.sdkPath = sdkPath; this.buildToolsVersion = buildToolsVersion; this.progressIndicator = new ProgressIndicatorImpl(); if ( sdkPath != null ) { sdkManager = AndroidSdkHandler.getInstance( sdkPath ); platformToolsPath = new File( sdkPath, SdkConstants.FD_PLATFORM_TOOLS ); toolsPath = new File( sdkPath, SdkConstants.FD_TOOLS ); if ( sdkManager == null ) { throw invalidSdkException( sdkPath, apiLevel ); } } loadSDKToolsMajorVersion(); if ( apiLevel == null ) { apiLevel = DEFAULT_ANDROID_API_LEVEL; } androidTarget = findPlatformByApiLevel( apiLevel ); if ( androidTarget == null ) { throw invalidSdkException( sdkPath, apiLevel ); } }
BuildToolInfo buildToolInfo = sdkManager.getBuildToolInfo( Revision.parseRevision( buildToolsVersion ), progressIndicator ); if ( buildToolInfo != null ) BuildToolInfo latestBuildToolInfo = sdkManager.getLatestBuildTool( progressIndicator, true ); if ( latestBuildToolInfo == null )
@NonNull private File getCmakeFolder() { ProgressIndicator progress = new ConsoleProgressIndicator(); AndroidSdkHandler sdk = AndroidSdkHandler.getInstance(getSdkFolder()); LocalPackage cmakePackage = sdk.getLatestLocalPackageForPrefix(SdkConstants.FD_CMAKE, true, progress); if (cmakePackage != null) { return cmakePackage.getLocation(); } return new File(getSdkFolder(), SdkConstants.FD_CMAKE); }
/** * Calls the sdklib machinery to construct the {@link IAndroidTarget} for the given hash string. * * @return appropriate {@link IAndroidTarget} or null if the matching platform package is not * installed. */ @Nullable private static IAndroidTarget getAndroidTarget( @NonNull SdkHandler sdkHandler, @NonNull String targetHash) { File sdkLocation = sdkHandler.getSdkFolder(); ProgressIndicator progressIndicator = new LoggerProgressIndicatorWrapper(LOGGER); IAndroidTarget target = AndroidSdkHandler.getInstance(sdkLocation) .getAndroidTargetManager(progressIndicator) .getTargetFromHashString(targetHash, progressIndicator); if (target != null) { return target; } // reset the cached AndroidSdkHandler, next time a target is looked up, // this will force the re-parsing of the SDK. AndroidSdkHandler.resetInstance(sdkLocation); // and let's try immediately, it's possible the platform was installed since the SDK // handler was initialized in the this VM, since we reset the instance just above, it's // possible we find it. return AndroidSdkHandler.getInstance(sdkLocation) .getAndroidTargetManager(progressIndicator) .getTargetFromHashString(targetHash, progressIndicator); }
private synchronized void init(@NonNull ILogger logger) { if (mSdkHandler == null) { mSdkHandler = AndroidSdkHandler.getInstance(mSdkLocation); ProgressIndicator progress = new LoggerProgressIndicatorWrapper(logger); mSdkHandler.getSdkManager(progress).reloadLocalIfNeeded(progress); File toolsFolder = new File(mSdkLocation, FD_TOOLS); File supportToolsFolder = new File(toolsFolder, FD_SUPPORT); File platformTools = new File(mSdkLocation, FD_PLATFORM_TOOLS); mSdkInfo = new SdkInfo( new File(supportToolsFolder, FN_ANNOTATIONS_JAR), new File(platformTools, FN_ADB)); } }
IAndroidTarget target = mSdkHandler.getAndroidTargetManager(progress) .getTargetFromHashString(targetHash, progress); mSdkHandler.getBuildToolInfo(buildToolRevision, progress); RepoManager repoManager = mSdkHandler.getSdkManager(progress); checkNeedsCacheReset(repoManager, sdkLibData); repoManager.loadSynchronously( buildToolInfo = mSdkHandler.getBuildToolInfo(buildToolRevision, progress); target = mSdkHandler.getAndroidTargetManager(progress) .getTargetFromHashString(targetHash, progress);
ProgressIndicator progress = new LoggerProgressIndicatorWrapper(new StdLogger(StdLogger.Level.WARNING)); RepoManager repoManager = mSdkHandler.getSdkManager(progress); repoManager.loadSynchronously(0, progress, null, null); LocalPackage localSdkToolPackage = mSdkHandler.getLatestLocalPackageForPrefix(packageId, true, progress); if (localSdkToolPackage == null) { if (!sdkLibData.useSdkDownload()) { mSdkHandler.getLatestRemotePackageForPrefix(packageId, true, progress); if (sdkToolPackage == null) { repoManager.loadSynchronously(0, progress, null, null); localSdkToolPackage = mSdkHandler.getLatestLocalPackageForPrefix(packageId, true, progress);
@VisibleForTesting @Nullable static String getPlatformVersion(@NonNull LintClient client) { AndroidSdkHandler sdk = client.getSdk(); if (sdk != null) { LocalPackage pkgInfo = sdk .getLocalPackage(SdkConstants.FD_PLATFORM_TOOLS, client.getRepositoryLogger()); if (pkgInfo != null) { return pkgInfo.getVersion().toShortString(); } } return null; }
/** * Gets (and creates if necessary) an {@link AndroidTargetManager} based on our local sdk * packages. */ @NonNull public AndroidTargetManager getAndroidTargetManager(@NonNull ProgressIndicator progress) { if (mAndroidTargetManager == null) { getSdkManager(progress); mAndroidTargetManager = new AndroidTargetManager(this, mFop); } return mAndroidTargetManager; }
/** * @see #getLatestLocalPackageForPrefix(String, boolean, Function, Comparator, * ProgressIndicator) , where {@link Comparator} is just the default order. Highest is latest. */ @Nullable public LocalPackage getLatestLocalPackageForPrefix( @NonNull String prefix, boolean allowPreview, @NonNull Function<String, ? extends Comparable> mapper, @NonNull ProgressIndicator progress) { return getLatestLocalPackageForPrefix(prefix, allowPreview, mapper, Comparator.naturalOrder(), progress); }
@NonNull private DeviceManager createDeviceManager() { File androidFolder; try { androidFolder = new File(AndroidLocation.getFolder()); } catch (AndroidLocation.AndroidLocationException e) { mSdkLog.warning(e.getMessage()); androidFolder = null; } return DeviceManager.createInstance( new File(mOsSdkFolder), androidFolder, mSdkLog, mSdkHandler.getFileOp()); }
/** * @see #getLatestLocalPackageForPrefix(String, boolean, Function, Comparator, * ProgressIndicator) , but for {@link RemotePackage}s instead. */ @Nullable public <T> RemotePackage getLatestRemotePackageForPrefix(@NonNull String prefix, boolean allowPreview, @NonNull Function<String, T> mapper, @NonNull Comparator<T> comparator, @NonNull ProgressIndicator progress) { return getLatestPackageFromPrefixCollection( getSdkManager(progress).getPackages().getRemotePackagesForPrefix(prefix), allowPreview, mapper, comparator); }
mBuildProps = Maps.newHashMap(); mBuildToolInfo = sdkHandler.getLatestBuildTool(progress, getVersion().isPreview());
remotes.forEach(remote -> { License l = remote.getLicense(); if (l != null && !l.checkAccepted(mHandler.getLocation(), mHandler.getFileOp())) { unacceptedLicenses.put(l, remote); if (askForLicense(l)) { unacceptedLicenses.removeAll(l); l.setAccepted(mRepoManager.getLocalPath(), mHandler.getFileOp());
File toolsLib = new File(mSdkHandler.getLocation(), SdkConstants.OS_SDK_TOOLS_LIB_EMULATOR_FOLDER); File snapshotBlank = new File(toolsLib, SNAPSHOTS_IMG); if (skinFolder.getPath().startsWith(mSdkHandler.getLocation().getPath())) { try { skinPath = FileOpUtils.makeRelative(mSdkHandler.getLocation(), skinFolder, mFop); } catch (IOException e) { LocalPackage p = mSdkHandler.getLocalPackage(SdkConstants.FD_EMULATOR, progress); if (p == null) { p = mSdkHandler.getLocalPackage(SdkConstants.FD_TOOLS, progress);
LocalPackage imagePkg = mSdkHandler.getLocalPackage(packagePath, progress); Collection<SystemImage> sysImgs = mSdkHandler.getSystemImageManager(progress) .getImageMap().get(imagePkg);
/** * Gets (and creates if necessary) a {@link SystemImageManager} based on our local sdk packages. */ @NonNull public SystemImageManager getSystemImageManager(@NonNull ProgressIndicator progress) { if (mSystemImageManager == null) { getSdkManager(progress); mSystemImageManager = new SystemImageManager(mRepoManager, getSysImgModule().createLatestFactory(), mFop); } return mSystemImageManager; }
if (mTargets == null) { Map<String, String> newErrors = Maps.newHashMap(); RepoManager manager = mSdkHandler.getSdkManager(progress); Map<AndroidVersion, PlatformTarget> platformTargets = Maps.newHashMap(); BiMap<IAndroidTarget, LocalPackage> tempTargetToPackage = HashBiMap.create(); if (baseTarget != null) { tempTargetToPackage.put(new AddonTarget(p, baseTarget, mSdkHandler.getSystemImageManager(progress), progress, mFop), p);
/** * @see #getLatestLocalPackageForPrefix(String, boolean, ProgressIndicator) , * but for {@link RemotePackage}s instead. */ @Nullable public RemotePackage getLatestRemotePackageForPrefix(@NonNull String prefix, boolean allowPreview, @NonNull ProgressIndicator progress) { return getLatestRemotePackageForPrefix(prefix, allowPreview, Revision::safeParseRevision, progress); }