Class AndroidManifest

java.lang.Object
org.robolectric.manifest.AndroidManifest
All Implemented Interfaces:
UsesSdk

public class AndroidManifest extends Object implements UsesSdk
A wrapper for an Android App Manifest, which represents information about one's App to an Android system.
See Also:
  • Constructor Details

    • AndroidManifest

      public AndroidManifest(Path androidManifestFile, Path resDirectory, Path assetsDirectory)
      Creates a Robolectric configuration using specified locations.
      Parameters:
      androidManifestFile - Location of the AndroidManifest.xml file.
      resDirectory - Location of the res directory.
      assetsDirectory - Location of the assets directory.
    • AndroidManifest

      public AndroidManifest(Path androidManifestFile, Path resDirectory, Path assetsDirectory, String overridePackageName)
      Creates a Robolectric configuration using specified values.
      Parameters:
      androidManifestFile - Location of the AndroidManifest.xml file.
      resDirectory - Location of the res directory.
      assetsDirectory - Location of the assets directory.
      overridePackageName - Application package name.
    • AndroidManifest

      public AndroidManifest(Path androidManifestFile, Path resDirectory, Path assetsDirectory, @Nonnull List<AndroidManifest> libraryManifests, String overridePackageName)
      Creates a Robolectric configuration using specified values.
      Parameters:
      androidManifestFile - Location of the AndroidManifest.xml file.
      resDirectory - Location of the res directory.
      assetsDirectory - Location of the assets directory.
      libraryManifests - List of dependency library manifests.
      overridePackageName - Application package name.
    • AndroidManifest

      public AndroidManifest(Path androidManifestFile, Path resDirectory, Path assetsDirectory, @Nonnull List<AndroidManifest> libraryManifests, String overridePackageName, Path apkFile)
  • Method Details

    • getThemeRef

      public String getThemeRef(String activityClassName)
    • getRClassName

      public String getRClassName() throws Exception
      Throws:
      Exception
    • getRClass

      public Class getRClass()
    • initMetaData

      public void initMetaData(ResourceTable resourceTable) throws RoboNotFoundException
      Allows ShadowPackageManager to provide a resource index for initialising the resource attributes in all the metadata elements
      Parameters:
      resourceTable - used for getting resource IDs from string identifiers
      Throws:
      RoboNotFoundException
    • getApplicationName

      public String getApplicationName()
    • getActivityLabel

      public String getActivityLabel(String activityClassName)
    • getPackageName

      public String getPackageName()
    • getVersionCode

      public int getVersionCode()
    • getVersionName

      public String getVersionName()
    • getLabelRef

      public String getLabelRef()
    • getAppComponentFactory

      public String getAppComponentFactory()
    • getMinSdkVersion

      public int getMinSdkVersion()
      Returns the minimum Android SDK version that this package expects to be runnable on, as specified in the manifest.

      Note that if targetSdkVersion isn't set, this value changes the behavior of some Android code (notably SharedPreferences) to emulate old bugs.

      Specified by:
      getMinSdkVersion in interface UsesSdk
      Returns:
      the minimum SDK version, or Lollipop (21) by default
    • getTargetSdkVersion

      public int getTargetSdkVersion()
      Returns the Android SDK version that this package prefers to be run on, as specified in the manifest.

      Note that this value changes the behavior of some Android code (notably SharedPreferences) to emulate old bugs.

      Specified by:
      getTargetSdkVersion in interface UsesSdk
      Returns:
      the target SDK version, or Lollipop (21) by default
    • getMaxSdkVersion

      public Integer getMaxSdkVersion()
      Description copied from interface: UsesSdk
      Returns the maximum Android SDK version that this package expects to be runnable on, as specified in the manifest.

      If no maximum version is specified, null may be returned.

      Specified by:
      getMaxSdkVersion in interface UsesSdk
      Returns:
      the maximum SDK version, or null
    • getApplicationAttributes

      public Map<String,String> getApplicationAttributes()
    • getProcessName

      public String getProcessName()
    • getApplicationMetaData

      public Map<String,Object> getApplicationMetaData()
    • getResourcePath

      public ResourcePath getResourcePath()
    • getIncludedResourcePaths

      public List<ResourcePath> getIncludedResourcePaths()
    • getContentProviders

      public List<ContentProviderData> getContentProviders()
    • getLibraryManifests

      public List<AndroidManifest> getLibraryManifests()
    • getAllManifests

      public List<AndroidManifest> getAllManifests()
      Returns all transitively reachable manifests, including this one, in order and without duplicates.
    • getResDirectory

      public Path getResDirectory()
    • getAssetsDirectory

      public Path getAssetsDirectory()
    • getAndroidManifestFile

      public Path getAndroidManifestFile()
    • getBroadcastReceivers

      public List<BroadcastReceiverData> getBroadcastReceivers()
    • getServices

      public List<ServiceData> getServices()
    • getServiceData

      public ServiceData getServiceData(String serviceClassName)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getActivityData

      public ActivityData getActivityData(String activityClassName)
    • getThemeRef

      public String getThemeRef()
    • getActivityDatas

      public Map<String,ActivityData> getActivityDatas()
    • getUsedPermissions

      public List<String> getUsedPermissions()
    • getPermissions

      public Map<String,PermissionItemData> getPermissions()
    • getPermissionGroups

      public Map<String,PermissionGroupItemData> getPermissionGroups()
    • getBroadcastReceiver

      @Nullable public BroadcastReceiverData getBroadcastReceiver(String className)
      Returns data for the broadcast receiver with the provided name from this manifest. If no receiver with the class name can be found, returns null.
      Parameters:
      className - the fully resolved class name of the receiver
      Returns:
      data for the receiver or null if it cannot be found
    • getApkFile

      public Path getApkFile()
    • supportsLegacyResourcesMode

      @Deprecated public final boolean supportsLegacyResourcesMode()
      Deprecated.
      Do not use.
    • supportsBinaryResourcesMode

      @Deprecated public boolean supportsBinaryResourcesMode()
      Deprecated.
      Do not use.