Fields Summary |
---|
public String | taskAffinityDefault task affinity of all activities in this application. See
{@link ActivityInfo#taskAffinity} for more information. This comes
from the "taskAffinity" attribute. |
public String | permissionOptional name of a permission required to be able to access this
application's components. From the "permission" attribute. |
public String | processNameThe name of the process this application should run in. From the
"process" attribute or, if not set, the same as
packageName. |
public String | classNameClass implementing the Application object. From the "class"
attribute. |
public int | descriptionResA style resource identifier (in the package's resources) of the
description of an application. From the "description" attribute
or, if not set, 0. |
public int | themeA 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 String | manageSpaceActivityNameClass 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 | backupAgentNameClass 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 int | uiOptionsThe default extra UI options for activities in this application.
Set from the {@link android.R.attr#uiOptions} attribute in the
activity's manifest. |
public static final int | FLAG_SYSTEMValue for {@link #flags}: if set, this application is installed in the
device's system image. |
public static final int | FLAG_DEBUGGABLEValue for {@link #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 {@link android.R.styleable#AndroidManifestApplication_debuggable
android:debuggable} of the <application> tag. |
public static final int | FLAG_HAS_CODEValue for {@link #flags}: set to true if this application has code
associated with it. Comes
from {@link android.R.styleable#AndroidManifestApplication_hasCode
android:hasCode} of the <application> tag. |
public static final int | FLAG_PERSISTENTValue for {@link #flags}: set to true if this application is persistent.
Comes from {@link android.R.styleable#AndroidManifestApplication_persistent
android:persistent} of the <application> tag. |
public static final int | FLAG_FACTORY_TESTValue for {@link #flags}: set to true if this application holds the
{@link android.Manifest.permission#FACTORY_TEST} permission and the
device is running in factory test mode. |
public static final int | FLAG_ALLOW_TASK_REPARENTINGValue for {@link #flags}: default value for the corresponding ActivityInfo flag.
Comes from {@link android.R.styleable#AndroidManifestApplication_allowTaskReparenting
android:allowTaskReparenting} of the <application> tag. |
public static final int | FLAG_ALLOW_CLEAR_USER_DATAValue for {@link #flags}: default value for the corresponding ActivityInfo flag.
Comes from {@link android.R.styleable#AndroidManifestApplication_allowClearUserData
android:allowClearUserData} of the <application> tag. |
public static final int | FLAG_UPDATED_SYSTEM_APPValue for {@link #flags}: this is set if this application has been
install as an update to a built-in system application. |
public static final int | FLAG_TEST_ONLYValue for {@link #flags}: this is set of the application has specified
{@link android.R.styleable#AndroidManifestApplication_testOnly
android:testOnly} to be true. |
public static final int | FLAG_SUPPORTS_SMALL_SCREENSValue for {@link #flags}: true when the application's window can be
reduced in size for smaller screens. Corresponds to
{@link android.R.styleable#AndroidManifestSupportsScreens_smallScreens
android:smallScreens}. |
public static final int | FLAG_SUPPORTS_NORMAL_SCREENSValue for {@link #flags}: true when the application's window can be
displayed on normal screens. Corresponds to
{@link android.R.styleable#AndroidManifestSupportsScreens_normalScreens
android:normalScreens}. |
public static final int | FLAG_SUPPORTS_LARGE_SCREENSValue for {@link #flags}: true when the application's window can be
increased in size for larger screens. Corresponds to
{@link android.R.styleable#AndroidManifestSupportsScreens_largeScreens
android:largeScreens}. |
public static final int | FLAG_RESIZEABLE_FOR_SCREENSValue for {@link #flags}: true when the application knows how to adjust
its UI for different screen sizes. Corresponds to
{@link android.R.styleable#AndroidManifestSupportsScreens_resizeable
android:resizeable}. |
public static final int | FLAG_SUPPORTS_SCREEN_DENSITIESValue for {@link #flags}: true when the application knows how to
accomodate different screen densities. Corresponds to
{@link android.R.styleable#AndroidManifestSupportsScreens_anyDensity
android:anyDensity}. |
public static final int | FLAG_VM_SAFE_MODEValue for {@link #flags}: set to true if this application would like to
request the VM to operate under the safe mode. Comes from
{@link android.R.styleable#AndroidManifestApplication_vmSafeMode
android:vmSafeMode} of the <application> tag. |
public static final int | FLAG_ALLOW_BACKUPValue for {@link #flags}: set to false if the application does not wish
to permit any OS-driven backups of its data; true otherwise.
Comes from the
{@link android.R.styleable#AndroidManifestApplication_allowBackup android:allowBackup}
attribute of the <application> tag. |
public static final int | FLAG_KILL_AFTER_RESTOREValue for {@link #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
{@link android.R.styleable#AndroidManifestApplication_allowBackup android:allowBackup}
is set to false or no
{@link android.R.styleable#AndroidManifestApplication_backupAgent android:backupAgent}
is specified, this flag will be ignored.
Comes from the
{@link android.R.styleable#AndroidManifestApplication_killAfterRestore android:killAfterRestore}
attribute of the <application> tag. |
public static final int | FLAG_RESTORE_ANY_VERSIONValue for {@link #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
{@link android.R.styleable#AndroidManifestApplication_allowBackup android:allowBackup}
is set to false or no
{@link android.R.styleable#AndroidManifestApplication_backupAgent android:backupAgent}
is specified, this flag will be ignored.
Comes from the
{@link android.R.styleable#AndroidManifestApplication_restoreAnyVersion android:restoreAnyVersion}
attribute of the <application> tag. |
public static final int | FLAG_EXTERNAL_STORAGEValue for {@link #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. |
public static final int | FLAG_SUPPORTS_XLARGE_SCREENSValue for {@link #flags}: true when the application's window can be
increased in size for extra large screens. Corresponds to
{@link android.R.styleable#AndroidManifestSupportsScreens_xlargeScreens
android:xlargeScreens}. |
public static final int | FLAG_LARGE_HEAPValue for {@link #flags}: true when the application has requested a
large heap for its processes. Corresponds to
{@link android.R.styleable#AndroidManifestApplication_largeHeap
android:largeHeap}. |
public static final int | FLAG_STOPPEDValue for {@link #flags}: true if this application's package is in
the stopped state. |
public static final int | FLAG_SUPPORTS_RTLValue for {@link #flags}: true when the application is willing to support
RTL (right to left). All activities will inherit this value.
Set from the {@link android.R.attr#supportsRtl} attribute in the
activity's manifest.
Default value is false (no support for RTL). |
public static final int | FLAG_INSTALLEDValue for {@link #flags}: true if the application is currently
installed for the calling user. |
public static final int | FLAG_IS_DATA_ONLYValue for {@link #flags}: true if the application only has its
data installed; the application package itself does not currently
exist on the device. |
public static final int | FLAG_IS_GAMEValue for {@link #flags}: true if the application was declared to be a game, or
false if it is a non-game application. |
public static final int | FLAG_FULL_BACKUP_ONLYValue for {@link #flags}: {@code true} if the application asks that only
full-data streaming backups of its data be performed even though it defines
a {@link android.app.backup.BackupAgent BackupAgent}, which normally
indicates that the app will manage its backed-up data via incremental
key/value updates. |
public static final int | FLAG_HIDDENValue for {@link #flags}: true if the application is hidden via restrictions and for
most purposes is considered as not installed.
{@hide} |
public static final int | FLAG_CANT_SAVE_STATEValue for {@link #flags}: set to true if the application
has reported that it is heavy-weight, and thus can not participate in
the normal application lifecycle.
Comes from the
android.R.styleable#AndroidManifestApplication_cantSaveState
attribute of the <application> tag.
{@hide} |
public static final int | FLAG_FORWARD_LOCKValue for {@link #flags}: Set to true if the application has been
installed using the forward lock option.
NOTE: DO NOT CHANGE THIS VALUE! It is saved in packages.xml.
{@hide} |
public static final int | FLAG_PRIVILEGEDValue for {@link #flags}: set to {@code true} if the application
is permitted to hold privileged permissions.
{@hide} |
public static final int | FLAG_MULTIARCHValue for {@link #flags}: true if code from this application will need to be
loaded into other applications' processes. On devices that support multiple
instruction sets, this implies the code might be loaded into a process that's
using any of the devices supported instruction sets.
The system might treat such applications specially, for eg., by
extracting the application's native libraries for all supported instruction
sets or by compiling the application's dex code for all supported instruction
sets. |
public int | flagsFlags associated with the application. Any combination of
{@link #FLAG_SYSTEM}, {@link #FLAG_DEBUGGABLE}, {@link #FLAG_HAS_CODE},
{@link #FLAG_PERSISTENT}, {@link #FLAG_FACTORY_TEST}, and
{@link #FLAG_ALLOW_TASK_REPARENTING}
{@link #FLAG_ALLOW_CLEAR_USER_DATA}, {@link #FLAG_UPDATED_SYSTEM_APP},
{@link #FLAG_TEST_ONLY}, {@link #FLAG_SUPPORTS_SMALL_SCREENS},
{@link #FLAG_SUPPORTS_NORMAL_SCREENS},
{@link #FLAG_SUPPORTS_LARGE_SCREENS}, {@link #FLAG_SUPPORTS_XLARGE_SCREENS},
{@link #FLAG_RESIZEABLE_FOR_SCREENS},
{@link #FLAG_SUPPORTS_SCREEN_DENSITIES}, {@link #FLAG_VM_SAFE_MODE},
{@link #FLAG_INSTALLED}, {@link #FLAG_IS_GAME}. |
public int | requiresSmallestWidthDpThe required smallest screen width the application can run on. If 0,
nothing has been specified. Comes from
{@link android.R.styleable#AndroidManifestSupportsScreens_requiresSmallestWidthDp
android:requiresSmallestWidthDp} attribute of the <supports-screens> tag. |
public int | compatibleWidthLimitDpThe maximum smallest screen width the application is designed for. If 0,
nothing has been specified. Comes from
{@link android.R.styleable#AndroidManifestSupportsScreens_compatibleWidthLimitDp
android:compatibleWidthLimitDp} attribute of the <supports-screens> tag. |
public int | largestWidthLimitDpThe maximum smallest screen width the application will work on. If 0,
nothing has been specified. Comes from
{@link android.R.styleable#AndroidManifestSupportsScreens_largestWidthLimitDp
android:largestWidthLimitDp} attribute of the <supports-screens> tag. |
public String | scanSourceDir{@hide} |
public String | scanPublicSourceDir{@hide} |
public String | sourceDirFull path to the base APK for this application. |
public String | publicSourceDirFull path to the publicly available parts of {@link #sourceDir},
including resources and manifest. This may be different from
{@link #sourceDir} if an application is forward locked. |
public String[] | splitSourceDirsFull paths to zero or more split APKs that, when combined with the base
APK defined in {@link #sourceDir}, form a complete application. |
public String[] | splitPublicSourceDirsFull path to the publicly available parts of {@link #splitSourceDirs},
including resources and manifest. This may be different from
{@link #splitSourceDirs} if an application is forward locked. |
public String[] | resourceDirsFull paths to the locations of extra resource packages this application
uses. This field is only used if there are extra resource packages,
otherwise it is null.
{@hide} |
public String | seinfoString retrieved from the seinfo tag found in selinux policy. This value
is useful in setting an SELinux security context on the process as well
as its data directory.
{@hide} |
public String[] | sharedLibraryFilesPaths to all shared libraries this application is linked against. This
field is only set if the {@link PackageManager#GET_SHARED_LIBRARY_FILES
PackageManager.GET_SHARED_LIBRARY_FILES} flag was used when retrieving
the structure. |
public String | dataDirFull path to a directory assigned to the package for its persistent
data. |
public String | nativeLibraryDirFull path to the directory where native JNI libraries are stored. |
public String | secondaryNativeLibraryDirFull path where unpacked native libraries for {@link #secondaryCpuAbi}
are stored, if present.
The main reason this exists is for bundled multi-arch apps, where
it's not trivial to calculate the location of libs for the secondary abi
given the location of the primary.
TODO: Change the layout of bundled installs so that we can use
nativeLibraryRootDir & nativeLibraryRootRequiresIsa there as well.
(e.g {@code [ "/system/app-lib/Foo/arm", "/system/app-lib/Foo/arm64" ]}
instead of {@code [ "/system/lib/Foo", "/system/lib64/Foo" ]}. |
public String | nativeLibraryRootDirThe root path where unpacked native libraries are stored.
When {@link #nativeLibraryRootRequiresIsa} is set, the libraries are
placed in ISA-specific subdirectories under this path, otherwise the
libraries are placed directly at this path. |
public boolean | nativeLibraryRootRequiresIsaFlag indicating that ISA must be appended to
{@link #nativeLibraryRootDir} to be useful. |
public String | primaryCpuAbiThe primary ABI that this application requires, This is inferred from the ABIs
of the native JNI libraries the application bundles. Will be {@code null}
if this application does not require any particular ABI.
If non-null, the application will always be launched with this ABI.
{@hide} |
public String | secondaryCpuAbiThe secondary ABI for this application. Might be non-null for multi-arch
installs. The application itself never uses this ABI, but other applications that
use its code might.
{@hide} |
public int | uidThe 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 int | targetSdkVersionThe 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 {@link android.os.Build.VERSION_CODES#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 int | versionCodeThe app's declared version code. |
public boolean | enabledWhen false, indicates that all components within this application are
considered disabled, regardless of their individually set enabled status. |
public int | enabledSettingFor convenient access to the current enabled setting of this app. |
public int | installLocationFor convenient access to package's install location. |
public static final Parcelable.Creator | CREATOR |
Methods Summary |
---|
public int | describeContents()
return 0;
|
public void | disableCompatibilityMode()Disable compatibility mode
flags |= (FLAG_SUPPORTS_LARGE_SCREENS | FLAG_SUPPORTS_NORMAL_SCREENS |
FLAG_SUPPORTS_SMALL_SCREENS | FLAG_RESIZEABLE_FOR_SCREENS |
FLAG_SUPPORTS_SCREEN_DENSITIES | FLAG_SUPPORTS_XLARGE_SCREENS);
|
public void | dump(android.util.Printer pw, java.lang.String prefix)
super.dumpFront(pw, prefix);
if (className != null) {
pw.println(prefix + "className=" + className);
}
if (permission != null) {
pw.println(prefix + "permission=" + permission);
}
pw.println(prefix + "processName=" + processName);
pw.println(prefix + "taskAffinity=" + taskAffinity);
pw.println(prefix + "uid=" + uid + " flags=0x" + Integer.toHexString(flags)
+ " theme=0x" + Integer.toHexString(theme));
pw.println(prefix + "requiresSmallestWidthDp=" + requiresSmallestWidthDp
+ " compatibleWidthLimitDp=" + compatibleWidthLimitDp
+ " largestWidthLimitDp=" + largestWidthLimitDp);
pw.println(prefix + "sourceDir=" + sourceDir);
if (!Objects.equals(sourceDir, publicSourceDir)) {
pw.println(prefix + "publicSourceDir=" + publicSourceDir);
}
if (!ArrayUtils.isEmpty(splitSourceDirs)) {
pw.println(prefix + "splitSourceDirs=" + Arrays.toString(splitSourceDirs));
}
if (!ArrayUtils.isEmpty(splitPublicSourceDirs)
&& !Arrays.equals(splitSourceDirs, splitPublicSourceDirs)) {
pw.println(prefix + "splitPublicSourceDirs=" + Arrays.toString(splitPublicSourceDirs));
}
if (resourceDirs != null) {
pw.println(prefix + "resourceDirs=" + resourceDirs);
}
if (seinfo != null) {
pw.println(prefix + "seinfo=" + seinfo);
}
pw.println(prefix + "dataDir=" + dataDir);
if (sharedLibraryFiles != null) {
pw.println(prefix + "sharedLibraryFiles=" + sharedLibraryFiles);
}
pw.println(prefix + "enabled=" + enabled + " targetSdkVersion=" + targetSdkVersion
+ " versionCode=" + versionCode);
if (manageSpaceActivityName != null) {
pw.println(prefix + "manageSpaceActivityName="+manageSpaceActivityName);
}
if (descriptionRes != 0) {
pw.println(prefix + "description=0x"+Integer.toHexString(descriptionRes));
}
if (uiOptions != 0) {
pw.println(prefix + "uiOptions=0x" + Integer.toHexString(uiOptions));
}
pw.println(prefix + "supportsRtl=" + (hasRtlSupport() ? "true" : "false"));
super.dumpBack(pw, prefix);
|
protected android.content.pm.ApplicationInfo | getApplicationInfo()
return this;
|
public java.lang.String | getBaseCodePath(){@hide} return sourceDir;
|
public java.lang.String | getBaseResourcePath(){@hide} return publicSourceDir;
|
public java.lang.String | getCodePath(){@hide} return scanSourceDir;
|
public java.lang.String | getResourcePath(){@hide} return scanPublicSourceDir;
|
public java.lang.String[] | getSplitCodePaths(){@hide} return splitSourceDirs;
|
public java.lang.String[] | getSplitResourcePaths(){@hide} return splitSourceDirs;
|
public boolean | hasRtlSupport()
return (flags & FLAG_SUPPORTS_RTL) == FLAG_SUPPORTS_RTL;
|
private boolean | isPackageUnavailable(PackageManager pm)
try {
return pm.getPackageInfo(packageName, 0) == null;
} catch (NameNotFoundException ex) {
return true;
}
|
public android.graphics.drawable.Drawable | loadDefaultIcon(PackageManager pm)
if ((flags & FLAG_EXTERNAL_STORAGE) != 0
&& isPackageUnavailable(pm)) {
return Resources.getSystem().getDrawable(
com.android.internal.R.drawable.sym_app_on_sd_unavailable_icon);
}
return pm.getDefaultActivityIcon();
|
public java.lang.CharSequence | loadDescription(PackageManager pm)Retrieve the textual description of the application. This
will call back on the given PackageManager to load the description from
the application.
if (descriptionRes != 0) {
CharSequence label = pm.getText(packageName, descriptionRes, this);
if (label != null) {
return label;
}
}
return null;
|
public void | setBaseCodePath(java.lang.String baseCodePath){@hide} sourceDir = baseCodePath;
|
public void | setBaseResourcePath(java.lang.String baseResourcePath){@hide} publicSourceDir = baseResourcePath;
|
public void | setCodePath(java.lang.String codePath){@hide} scanSourceDir = codePath;
|
public void | setResourcePath(java.lang.String resourcePath){@hide} scanPublicSourceDir = resourcePath;
|
public void | setSplitCodePaths(java.lang.String[] splitCodePaths){@hide} splitSourceDirs = splitCodePaths;
|
public void | setSplitResourcePaths(java.lang.String[] splitResourcePaths){@hide} splitPublicSourceDirs = splitResourcePaths;
|
public java.lang.String | toString()
return "ApplicationInfo{"
+ Integer.toHexString(System.identityHashCode(this))
+ " " + packageName + "}";
|
public void | writeToParcel(android.os.Parcel dest, int parcelableFlags)
super.writeToParcel(dest, parcelableFlags);
dest.writeString(taskAffinity);
dest.writeString(permission);
dest.writeString(processName);
dest.writeString(className);
dest.writeInt(theme);
dest.writeInt(flags);
dest.writeInt(requiresSmallestWidthDp);
dest.writeInt(compatibleWidthLimitDp);
dest.writeInt(largestWidthLimitDp);
dest.writeString(scanSourceDir);
dest.writeString(scanPublicSourceDir);
dest.writeString(sourceDir);
dest.writeString(publicSourceDir);
dest.writeStringArray(splitSourceDirs);
dest.writeStringArray(splitPublicSourceDirs);
dest.writeString(nativeLibraryDir);
dest.writeString(secondaryNativeLibraryDir);
dest.writeString(nativeLibraryRootDir);
dest.writeInt(nativeLibraryRootRequiresIsa ? 1 : 0);
dest.writeString(primaryCpuAbi);
dest.writeString(secondaryCpuAbi);
dest.writeStringArray(resourceDirs);
dest.writeString(seinfo);
dest.writeStringArray(sharedLibraryFiles);
dest.writeString(dataDir);
dest.writeInt(uid);
dest.writeInt(targetSdkVersion);
dest.writeInt(versionCode);
dest.writeInt(enabled ? 1 : 0);
dest.writeInt(enabledSetting);
dest.writeInt(installLocation);
dest.writeString(manageSpaceActivityName);
dest.writeString(backupAgentName);
dest.writeInt(descriptionRes);
dest.writeInt(uiOptions);
|