Android APIs
public class

ApplicationInfo

extends PackageItemInfo
implements Parcelable
java.lang.Object
   ↳ android.content.pm.PackageItemInfo
     ↳ android.content.pm.ApplicationInfo

Class Overview

Information you can retrieve about a particular application. This corresponds to information collected from the AndroidManifest.xml's <application> tag.

Summary

Nested Classes
class ApplicationInfo.DisplayNameComparator  
Constants
int FLAG_ALLOW_BACKUP Value for flags: set to false if the application does not wish to permit any OS-driven backups of its data; true otherwise.
int FLAG_ALLOW_CLEAR_USER_DATA Value for flags: default value for the corresponding ActivityInfo flag.
int FLAG_ALLOW_TASK_REPARENTING Value for flags: default value for the corresponding ActivityInfo flag.
int FLAG_DEBUGGABLE Value for flags: set to true if this application would like to allow debugging of its code, even when installed on a non-development system.
int FLAG_EXTERNAL_STORAGE Value for flags: Set to true if the application is currently installed on external/removable/unprotected storage.
int FLAG_FACTORY_TEST Value for flags: set to true if this application holds the FACTORY_TEST permission and the device is running in factory test mode.
int FLAG_HAS_CODE Value for flags: set to true if this application has code associated with it.
int FLAG_INSTALLED Value for flags: true if the application is currently installed for the calling user.
int FLAG_IS_DATA_ONLY Value for flags: true if the application only has its data installed; the application package itself does not currently exist on the device.
int FLAG_IS_GAME Value for flags: true if the application was declared to be a game, or false if it is a non-game application.
int FLAG_KILL_AFTER_RESTORE Value for flags: set to false if the application must be kept in memory following a full-system restore operation; true otherwise.
int FLAG_LARGE_HEAP Value for flags: true when the application has requested a large heap for its processes.
int FLAG_PERSISTENT Value for flags: set to true if this application is persistent.
int FLAG_RESIZEABLE_FOR_SCREENS Value for flags: true when the application knows how to adjust its UI for different screen sizes.
int FLAG_RESTORE_ANY_VERSION Value for flags: Set to true if the application's backup agent claims to be able to handle restore data even "from the future," i.e.
int FLAG_STOPPED Value for flags: true if this application's package is in the stopped state.
int FLAG_SUPPORTS_LARGE_SCREENS Value for flags: true when the application's window can be increased in size for larger screens.
int FLAG_SUPPORTS_NORMAL_SCREENS Value for flags: true when the application's window can be displayed on normal screens.
int FLAG_SUPPORTS_RTL Value for flags: true when the application is willing to support RTL (right to left).
int FLAG_SUPPORTS_SCREEN_DENSITIES Value for flags: true when the application knows how to accomodate different screen densities.
int FLAG_SUPPORTS_SMALL_SCREENS Value for flags: true when the application's window can be reduced in size for smaller screens.
int FLAG_SUPPORTS_XLARGE_SCREENS Value for flags: true when the application's window can be increased in size for extra large screens.
int FLAG_SYSTEM Value for flags: if set, this application is installed in the device's system image.
int FLAG_TEST_ONLY Value for flags: this is set of the application has specified android:testOnly to be true.
int FLAG_UPDATED_SYSTEM_APP Value for flags: this is set if this application has been install as an update to a built-in system application.
int FLAG_VM_SAFE_MODE Value for flags: set to true if this application would like to request the VM to operate under the safe mode.
[Expand]
Inherited Constants
From interface android.os.Parcelable
Fields
public static final Creator<ApplicationInfo> CREATOR
public String backupAgentName Class implementing the Application's backup functionality.
public String className Class implementing the Application object.
public int compatibleWidthLimitDp The maximum smallest screen width the application is designed for.
public String dataDir Full path to a directory assigned to the package for its persistent data.
public int descriptionRes A style resource identifier (in the package's resources) of the description of an application.
public boolean enabled When false, indicates that all components within this application are considered disabled, regardless of their individually set enabled status.
public int flags Flags associated with the application.
public int largestWidthLimitDp The maximum smallest screen width the application will work on.
public String manageSpaceActivityName Class implementing the Application's manage space functionality.
public String nativeLibraryDir Full path to the directory where native JNI libraries are stored.
public String permission Optional name of a permission required to be able to access this application's components.
public String processName The name of the process this application should run in.
public String publicSourceDir Full path to the location of the publicly available parts of this package (i.e.
public int requiresSmallestWidthDp The required smallest screen width the application can run on.
public String[] sharedLibraryFiles Paths to all shared libraries this application is linked against.
public String sourceDir Full path to the location of this package.
public int targetSdkVersion The minimum SDK version this application targets.
public String taskAffinity Default task affinity of all activities in this application.
public int theme A style resource identifier (in the package's resources) of the default visual theme of the application.
public int uiOptions The default extra UI options for activities in this application.
public int uid The kernel user-ID that has been assigned to this application; currently this is not a unique ID (multiple applications can have the same uid).
[Expand]
Inherited Fields
From class android.content.pm.PackageItemInfo
Public Constructors
ApplicationInfo()
ApplicationInfo(ApplicationInfo orig)
Public Methods
int describeContents()
Describe the kinds of special objects contained in this Parcelable's marshalled representation.
void dump(Printer pw, String prefix)
CharSequence loadDescription(PackageManager pm)
Retrieve the textual description of the application.
String toString()
Returns a string containing a concise, human-readable description of this object.
void writeToParcel(Parcel dest, int parcelableFlags)
[Expand]
Inherited Methods
From class android.content.pm.PackageItemInfo
From class java.lang.Object
From interface android.os.Parcelable

Constants

public static final int FLAG_ALLOW_BACKUP

Added in API level 8

Value for flags: set to false if the application does not wish to permit any OS-driven backups of its data; true otherwise.

Comes from the android:allowBackup attribute of the <application> tag.

Constant Value: 32768 (0x00008000)

public static final int FLAG_ALLOW_CLEAR_USER_DATA

Added in API level 1

Value for flags: default value for the corresponding ActivityInfo flag. Comes from android:allowClearUserData of the <application> tag.

Constant Value: 64 (0x00000040)

public static final int FLAG_ALLOW_TASK_REPARENTING

Added in API level 1

Value for flags: default value for the corresponding ActivityInfo flag. Comes from android:allowTaskReparenting of the <application> tag.

Constant Value: 32 (0x00000020)

public static final int FLAG_DEBUGGABLE

Added in API level 1

Value for flags: set to true if this application would like to allow debugging of its code, even when installed on a non-development system. Comes from android:debuggable of the <application> tag.

Constant Value: 2 (0x00000002)

public static final int FLAG_EXTERNAL_STORAGE

Added in API level 8

Value for flags: Set to true if the application is currently installed on external/removable/unprotected storage. Such applications may not be available if their storage is not currently mounted. When the storage it is on is not available, it will look like the application has been uninstalled (its .apk is no longer available) but its persistent data is not removed.

Constant Value: 262144 (0x00040000)

public static final int FLAG_FACTORY_TEST

Added in API level 1

Value for flags: set to true if this application holds the FACTORY_TEST permission and the device is running in factory test mode.

Constant Value: 16 (0x00000010)

public static final int FLAG_HAS_CODE

Added in API level 1

Value for flags: set to true if this application has code associated with it. Comes from android:hasCode of the <application> tag.

Constant Value: 4 (0x00000004)

public static final int FLAG_INSTALLED

Added in API level 17

Value for flags: true if the application is currently installed for the calling user.

Constant Value: 8388608 (0x00800000)

public static final int FLAG_IS_DATA_ONLY

Added in API level 17

Value for flags: true if the application only has its data installed; the application package itself does not currently exist on the device.

Constant Value: 16777216 (0x01000000)

public static final int FLAG_IS_GAME

Value for flags: true if the application was declared to be a game, or false if it is a non-game application.

Constant Value: 33554432 (0x02000000)

public static final int FLAG_KILL_AFTER_RESTORE

Added in API level 8

Value for flags: set to false if the application must be kept in memory following a full-system restore operation; true otherwise. Ordinarily, during a full system restore operation each application is shut down following execution of its agent's onRestore() method. Setting this attribute to false prevents this. Most applications will not need to set this attribute.

If android:allowBackup is set to false or no android:backupAgent is specified, this flag will be ignored.

Comes from the android:killAfterRestore attribute of the <application> tag.

Constant Value: 65536 (0x00010000)

public static final int FLAG_LARGE_HEAP

Added in API level 11

Value for flags: true when the application has requested a large heap for its processes. Corresponds to android:largeHeap.

Constant Value: 1048576 (0x00100000)

public static final int FLAG_PERSISTENT

Added in API level 1

Value for flags: set to true if this application is persistent. Comes from android:persistent of the <application> tag.

Constant Value: 8 (0x00000008)

public static final int FLAG_RESIZEABLE_FOR_SCREENS

Added in API level 4

Value for flags: true when the application knows how to adjust its UI for different screen sizes. Corresponds to android:resizeable.

Constant Value: 4096 (0x00001000)

public static final int FLAG_RESTORE_ANY_VERSION

Added in API level 8

Value for flags: Set to true if the application's backup agent claims to be able to handle restore data even "from the future," i.e. from versions of the application with a versionCode greater than the one currently installed on the device. Use with caution! By default this attribute is false and the Backup Manager will ensure that data from "future" versions of the application are never supplied during a restore operation.

If android:allowBackup is set to false or no android:backupAgent is specified, this flag will be ignored.

Comes from the android:restoreAnyVersion attribute of the <application> tag.

Constant Value: 131072 (0x00020000)

public static final int FLAG_STOPPED

Added in API level 12

Value for flags: true if this application's package is in the stopped state.

Constant Value: 2097152 (0x00200000)

public static final int FLAG_SUPPORTS_LARGE_SCREENS

Added in API level 4

Value for flags: true when the application's window can be increased in size for larger screens. Corresponds to android:largeScreens.

Constant Value: 2048 (0x00000800)

public static final int FLAG_SUPPORTS_NORMAL_SCREENS

Added in API level 4

Value for flags: true when the application's window can be displayed on normal screens. Corresponds to android:normalScreens.

Constant Value: 1024 (0x00000400)

public static final int FLAG_SUPPORTS_RTL

Added in API level 17

Value for flags: true when the application is willing to support RTL (right to left). All activities will inherit this value. Set from the supportsRtl attribute in the activity's manifest. Default value is false (no support for RTL).

Constant Value: 4194304 (0x00400000)

public static final int FLAG_SUPPORTS_SCREEN_DENSITIES

Added in API level 4

Value for flags: true when the application knows how to accomodate different screen densities. Corresponds to android:anyDensity.

Constant Value: 8192 (0x00002000)

public static final int FLAG_SUPPORTS_SMALL_SCREENS

Added in API level 4

Value for flags: true when the application's window can be reduced in size for smaller screens. Corresponds to android:smallScreens.

Constant Value: 512 (0x00000200)

public static final int FLAG_SUPPORTS_XLARGE_SCREENS

Added in API level 11

Value for flags: true when the application's window can be increased in size for extra large screens. Corresponds to android:xlargeScreens.

Constant Value: 524288 (0x00080000)

public static final int FLAG_SYSTEM

Added in API level 1

Value for flags: if set, this application is installed in the device's system image.

Constant Value: 1 (0x00000001)

public static final int FLAG_TEST_ONLY

Added in API level 4

Value for flags: this is set of the application has specified android:testOnly to be true.

Constant Value: 256 (0x00000100)

public static final int FLAG_UPDATED_SYSTEM_APP

Added in API level 4

Value for flags: this is set if this application has been install as an update to a built-in system application.

Constant Value: 128 (0x00000080)

public static final int FLAG_VM_SAFE_MODE

Added in API level 8

Value for flags: set to true if this application would like to request the VM to operate under the safe mode. Comes from android:vmSafeMode of the <application> tag.

Constant Value: 16384 (0x00004000)

Fields

public static final Creator<ApplicationInfo> CREATOR

Added in API level 1

public String backupAgentName

Added in API level 8

Class implementing the Application's backup functionality. From the "backupAgent" attribute. This is an optional attribute and will be null if the application does not specify it in its manifest.

If android:allowBackup is set to false, this attribute is ignored.

public String className

Added in API level 1

Class implementing the Application object. From the "class" attribute.

public int compatibleWidthLimitDp

Added in API level 13

The maximum smallest screen width the application is designed for. If 0, nothing has been specified. Comes from android:compatibleWidthLimitDp attribute of the <supports-screens> tag.

public String dataDir

Added in API level 1

Full path to a directory assigned to the package for its persistent data.

public int descriptionRes

Added in API level 1

A style resource identifier (in the package's resources) of the description of an application. From the "description" attribute or, if not set, 0.

public boolean enabled

Added in API level 1

When false, indicates that all components within this application are considered disabled, regardless of their individually set enabled status.

public int largestWidthLimitDp

Added in API level 13

The maximum smallest screen width the application will work on. If 0, nothing has been specified. Comes from android:largestWidthLimitDp attribute of the <supports-screens> tag.

public String manageSpaceActivityName

Added in API level 1

Class implementing the Application's manage space functionality. From the "manageSpaceActivity" attribute. This is an optional attribute and will be null if applications don't specify it in their manifest

public String nativeLibraryDir

Added in API level 9

Full path to the directory where native JNI libraries are stored.

public String permission

Added in API level 1

Optional name of a permission required to be able to access this application's components. From the "permission" attribute.

public String processName

Added in API level 1

The name of the process this application should run in. From the "process" attribute or, if not set, the same as packageName.

public String publicSourceDir

Added in API level 1

Full path to the location of the publicly available parts of this package (i.e. the primary resource package and manifest). For non-forward-locked apps this will be the same as {@link #sourceDir).

public int requiresSmallestWidthDp

Added in API level 13

The required smallest screen width the application can run on. If 0, nothing has been specified. Comes from android:requiresSmallestWidthDp attribute of the <supports-screens> tag.

public String[] sharedLibraryFiles

Added in API level 1

Paths to all shared libraries this application is linked against. This field is only set if the PackageManager.GET_SHARED_LIBRARY_FILES flag was used when retrieving the structure.

public String sourceDir

Added in API level 1

Full path to the location of this package.

public int targetSdkVersion

Added in API level 4

The minimum SDK version this application targets. It may run on earlier versions, but it knows how to work with any new behavior added at this version. Will be CUR_DEVELOPMENT if this is a development build and the app is targeting that. You should compare that this number is >= the SDK version number at which your behavior was introduced.

public String taskAffinity

Added in API level 1

Default task affinity of all activities in this application. See taskAffinity for more information. This comes from the "taskAffinity" attribute.

public int theme

Added in API level 1

A style resource identifier (in the package's resources) of the default visual theme of the application. From the "theme" attribute or, if not set, 0.

public int uiOptions

Added in API level 14

The default extra UI options for activities in this application. Set from the uiOptions attribute in the activity's manifest.

public int uid

Added in API level 1

The kernel user-ID that has been assigned to this application; currently this is not a unique ID (multiple applications can have the same uid).

Public Constructors

public ApplicationInfo ()

Added in API level 1

public ApplicationInfo (ApplicationInfo orig)

Added in API level 1

Public Methods

public int describeContents ()

Added in API level 1

Describe the kinds of special objects contained in this Parcelable's marshalled representation.

Returns
  • a bitmask indicating the set of special object types marshalled by the Parcelable.

public void dump (Printer pw, String prefix)

Added in API level 1

public CharSequence loadDescription (PackageManager pm)

Added in API level 1

Retrieve the textual description of the application. This will call back on the given PackageManager to load the description from the application.

Parameters
pm A PackageManager from which the label can be loaded; usually the PackageManager from which you originally retrieved this item.
Returns
  • Returns a CharSequence containing the application's description. If there is no description, null is returned.

public String toString ()

Added in API level 1

Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:

   getClass().getName() + '@' + Integer.toHexString(hashCode())

See Writing a useful toString method if you intend implementing your own toString method.

Returns
  • a printable representation of this object.

public void writeToParcel (Parcel dest, int parcelableFlags)

Added in API level 1