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 ); } }
/** * Does the basic SDK parsing required for all actions */ private void parseSdk() { mSdkHandler = AndroidSdkHandler.getInstance(new File(mOsSdkFolder)); }
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)); } }
/** * Returns the SDK installation (used to look up platforms etc) * * @return the SDK if known */ @Nullable public AndroidSdkHandler getSdk() { if (sdk == null) { File sdkHome = getSdkHome(); if (sdkHome != null) { sdk = AndroidSdkHandler.getInstance(sdkHome); } } return sdk; }
@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); }
private static void main(@NonNull List<String> args) throws CommandFailedException { FileSystemFileOp fop = (FileSystemFileOp)FileOpUtils.create(); Settings settings = Settings.createSettings(args, fop.getFileSystem()); if (settings == null) { usage(System.err); throw new CommandFailedException(); } Path localPath = settings.getLocalPath(); if (!Files.exists(localPath)) { try { Files.createDirectories(localPath); } catch (IOException e) { System.err.println("Failed to create SDK root dir: " + localPath); System.err.println(e.getMessage()); throw new CommandFailedException(); } } AndroidSdkHandler handler = AndroidSdkHandler.getInstance(localPath.toFile()); new SdkManagerCli(settings, System.out, System.in, new LegacyDownloader(fop, settings), handler).run(); System.out.println("done"); }
public void run() throws IOException { File tempDir = FileOpUtils.getNewTempDir("OfflineRepoCreator", mConfig.mFop); AndroidSdkHandler handler = AndroidSdkHandler.getInstance(tempDir); ProgressIndicator progress = new ConsoleProgressIndicator(); RepoManager mgr = handler.getSdkManager(progress);
/** * 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); }
AndroidSdkHandler sdk = AndroidSdkHandler.getInstance(getSdkFolder()); LocalPackage platformToolsPackage = sdk.getLatestLocalPackageForPrefix(SdkConstants.FD_PLATFORM_TOOLS, true, progress);
AndroidSdkHandler sdk = AndroidSdkHandler.getInstance(sdkHandler.getSdkFolder()); LocalPackage cmakePackage = sdk.getLatestLocalPackageForPrefix(SdkConstants.FD_CMAKE, true, progress);