Class 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:
    Android App Manifest
    • Constructor Detail

      • 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.
    • Method Detail

      • getThemeRef

        public String getThemeRef​(String activityClassName)
      • 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()
      • 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 Jelly Bean (16) 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 minimum SDK version, or Jelly Bean (16) 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()
      • getIncludedResourcePaths

        public List<ResourcePath> getIncludedResourcePaths()
      • 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()
      • hashCode

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

        public String getThemeRef()
      • getUsedPermissions

        public List<String> getUsedPermissions()
      • 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 boolean supportsLegacyResourcesMode()
        Deprecated.
        Do not use.
      • supportsBinaryResourcesMode

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