com.android.sdklib.repositoryv2
Class AndroidSdkHandler

java.lang.Object
  extended by com.android.sdklib.repositoryv2.AndroidSdkHandler

public final class AndroidSdkHandler
extends java.lang.Object

Android SDK interface to RepoManager. Ensures that the proper android sdk-specific schemas and source providers are registered, and provides android sdk-specific package logic (pending as adoption continues).


Field Summary
static int LATEST_LEGACY_VERSION
          The latest version of legacy remote packages we should expect to receive from a server.
static java.lang.String SDK_TEST_BASE_URL_ENV_VAR
          The name of the environment variable used to override the url of the primary repository, for testing.
static java.lang.String URL_GOOGLE_SDK_SITE
          The URL of the official Google sdk-repository site.
 
Constructor Summary
AndroidSdkHandler(java.io.File localPath, com.android.repository.io.FileOp fop)
          Don't use this, use getInstance(File), unless you're in a unit test and need to specify a custom FileOp.
 
Method Summary
static com.android.repository.impl.installer.PackageInstaller findBestInstaller(com.android.repository.api.RepoPackage p)
          Finds the best PackageInstaller for the given RepoPackage.
static com.android.repository.api.SchemaModule getAddonModule()
           
 AndroidTargetManager getAndroidTargetManager(com.android.repository.api.ProgressIndicator progress)
          Gets (and creates if necessary) an AndroidTargetManager based on our local sdk packages.
 BuildToolInfo getBuildToolInfo(com.android.repository.Revision revision, com.android.repository.api.ProgressIndicator progress)
          Creates a the BuildToolInfo for the specificed build tools revision, if available.
static com.android.repository.api.SchemaModule getCommonModule()
           
 com.android.repository.io.FileOp getFileOp()
          Gets our FileOp.
static AndroidSdkHandler getInstance(java.io.File localPath)
          Get a AndroidSdkHandler instance.
 BuildToolInfo getLatestBuildTool(com.android.repository.api.ProgressIndicator progress)
          Gets a BuildToolInfo corresponding to the newest installed build tool RepoPackage, or null if none are installed.
 com.android.repository.api.LocalPackage getLocalPackage(java.lang.String path, com.android.repository.api.ProgressIndicator progress)
          Convenience to get a package from the local repo.
 java.io.File getLocation()
          Gets the path of the local SDK, if set.
static com.android.repository.api.SchemaModule getRepositoryModule()
           
 com.android.repository.api.RepoManager getSdkManager(com.android.repository.api.ProgressIndicator progress)
          Fetches RepoManager set up to interact with android SDK repositories.
static com.android.repository.api.SchemaModule getSysImgModule()
           
 SystemImageManager getSystemImageManager(com.android.repository.api.ProgressIndicator progress)
          Gets (and creates if necessary) a SystemImageManager based on our local sdk packages.
 com.android.repository.impl.sources.LocalSourceProvider getUserSourceProvider(com.android.repository.api.ProgressIndicator progress)
          Gets the customizable RepositorySourceProvider.
static void setRemoteFallback(com.android.repository.api.FallbackRemoteRepoLoader fallbackSdk)
          Sets the FallbackRemoteRepoLoader to be used to parse any old-style remote repositories we might receive.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

URL_GOOGLE_SDK_SITE

public static final java.lang.String URL_GOOGLE_SDK_SITE
The URL of the official Google sdk-repository site. The URL ends with a /, allowing easy concatenation.

See Also:
Constant Field Values

SDK_TEST_BASE_URL_ENV_VAR

public static final java.lang.String SDK_TEST_BASE_URL_ENV_VAR
The name of the environment variable used to override the url of the primary repository, for testing.

See Also:
Constant Field Values

LATEST_LEGACY_VERSION

public static final int LATEST_LEGACY_VERSION
The latest version of legacy remote packages we should expect to receive from a server. If you think you need to change this value you should create a new-style package instead.

See Also:
Constant Field Values
Constructor Detail

AndroidSdkHandler

public AndroidSdkHandler(@Nullable
                         java.io.File localPath,
                         @NonNull
                         com.android.repository.io.FileOp fop)
Don't use this, use getInstance(File), unless you're in a unit test and need to specify a custom FileOp.

Method Detail

getInstance

@NonNull
public static AndroidSdkHandler getInstance(@Nullable
                                                    java.io.File localPath)
Get a AndroidSdkHandler instance.

Parameters:
localPath - The path to the local SDK. If null this handler will only be used for remote operations.

getSdkManager

@NonNull
public com.android.repository.api.RepoManager getSdkManager(@NonNull
                                                                    com.android.repository.api.ProgressIndicator progress)
Fetches RepoManager set up to interact with android SDK repositories. It should not cached by callers of this method, since any changes to the fundamental properties of the manager (fallback loaders, local path) will cause a new instance to be created.


getSystemImageManager

@NonNull
public SystemImageManager getSystemImageManager(@NonNull
                                                        com.android.repository.api.ProgressIndicator progress)
Gets (and creates if necessary) a SystemImageManager based on our local sdk packages.


getAndroidTargetManager

@NonNull
public AndroidTargetManager getAndroidTargetManager(@NonNull
                                                            com.android.repository.api.ProgressIndicator progress)
Gets (and creates if necessary) an AndroidTargetManager based on our local sdk packages.


getLocation

@Nullable
public java.io.File getLocation()
Gets the path of the local SDK, if set.


getLocalPackage

@Nullable
public com.android.repository.api.LocalPackage getLocalPackage(@NonNull
                                                                        java.lang.String path,
                                                                        @NonNull
                                                                        com.android.repository.api.ProgressIndicator progress)
Convenience to get a package from the local repo.


setRemoteFallback

public static void setRemoteFallback(@Nullable
                                     com.android.repository.api.FallbackRemoteRepoLoader fallbackSdk)
Sets the FallbackRemoteRepoLoader to be used to parse any old-style remote repositories we might receive.

Invalidates the repo manager; it will be recreated when next retrieved.


getCommonModule

@NonNull
public static com.android.repository.api.SchemaModule getCommonModule()
Returns:
The SchemaModule containing the common sdk-specific metadata. See sdk-common-XX.xsd.

getAddonModule

@NonNull
public static com.android.repository.api.SchemaModule getAddonModule()
Returns:
The SchemaModule containing the metadata for addon-type Repositorys. See sdk-addon-XX.xsd.

getRepositoryModule

@NonNull
public static com.android.repository.api.SchemaModule getRepositoryModule()
Returns:
The SchemaModule containing the metadata for the primary android SDK Repository (containin platforms etc.). See sdk-repository-XX.xsd.

getSysImgModule

@NonNull
public static com.android.repository.api.SchemaModule getSysImgModule()
Returns:
The SchemaModule containing the metadata for system image-type Repositorys. See sdk-sys-img-XX.xsd.

getUserSourceProvider

@Nullable
public com.android.repository.impl.sources.LocalSourceProvider getUserSourceProvider(@NonNull
                                                                                              com.android.repository.api.ProgressIndicator progress)
Gets the customizable RepositorySourceProvider. Can be null if there's a problem with the user's environment.


findBestInstaller

@NonNull
public static com.android.repository.impl.installer.PackageInstaller findBestInstaller(@NonNull
                                                                                               com.android.repository.api.RepoPackage p)
Finds the best PackageInstaller for the given RepoPackage.


getLatestBuildTool

@Nullable
public BuildToolInfo getLatestBuildTool(@NonNull
                                                 com.android.repository.api.ProgressIndicator progress)
Gets a BuildToolInfo corresponding to the newest installed build tool RepoPackage, or null if none are installed.


getBuildToolInfo

@Nullable
public BuildToolInfo getBuildToolInfo(@NonNull
                                               com.android.repository.Revision revision,
                                               @NonNull
                                               com.android.repository.api.ProgressIndicator progress)
Creates a the BuildToolInfo for the specificed build tools revision, if available.

Parameters:
revision - The build tools revision requested
progress - ProgressIndicator for logging.
Returns:
The BuildToolInfo corresponding to the specified build tools package, or null if that revision is not installed.

getFileOp

@NonNull
public com.android.repository.io.FileOp getFileOp()
Gets our FileOp. Useful so both the sdk handler and file op don't both have to be injected everywhere.