Merge "Make it easier to figure out whether an app can go on sd card." into gingerbread
This commit is contained in:
committed by
Android (Google) Code Review
commit
6f7e10ca0a
@@ -297,12 +297,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
|||||||
* the normal application lifecycle.
|
* the normal application lifecycle.
|
||||||
*
|
*
|
||||||
* <p>Comes from the
|
* <p>Comes from the
|
||||||
* {@link android.R.styleable#AndroidManifestApplication_heavyWeight android:heavyWeight}
|
* {@link android.R.styleable#AndroidManifestApplication_cantSaveState android:cantSaveState}
|
||||||
* attribute of the <application> tag.
|
* attribute of the <application> tag.
|
||||||
*
|
*
|
||||||
* {@hide}
|
* {@hide}
|
||||||
*/
|
*/
|
||||||
public static final int CANT_SAVE_STATE = 1<<27;
|
public static final int FLAG_CANT_SAVE_STATE = 1<<27;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flags associated with the application. Any combination of
|
* Flags associated with the application. Any combination of
|
||||||
@@ -381,6 +381,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
public boolean enabled = true;
|
public boolean enabled = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For convenient access to package's install location.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public int installLocation = PackageInfo.INSTALL_LOCATION_UNSPECIFIED;
|
||||||
|
|
||||||
public void dump(Printer pw, String prefix) {
|
public void dump(Printer pw, String prefix) {
|
||||||
super.dumpFront(pw, prefix);
|
super.dumpFront(pw, prefix);
|
||||||
if (className != null) {
|
if (className != null) {
|
||||||
@@ -457,6 +463,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
|||||||
uid = orig.uid;
|
uid = orig.uid;
|
||||||
targetSdkVersion = orig.targetSdkVersion;
|
targetSdkVersion = orig.targetSdkVersion;
|
||||||
enabled = orig.enabled;
|
enabled = orig.enabled;
|
||||||
|
installLocation = orig.installLocation;
|
||||||
manageSpaceActivityName = orig.manageSpaceActivityName;
|
manageSpaceActivityName = orig.manageSpaceActivityName;
|
||||||
descriptionRes = orig.descriptionRes;
|
descriptionRes = orig.descriptionRes;
|
||||||
}
|
}
|
||||||
@@ -489,6 +496,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
|||||||
dest.writeInt(uid);
|
dest.writeInt(uid);
|
||||||
dest.writeInt(targetSdkVersion);
|
dest.writeInt(targetSdkVersion);
|
||||||
dest.writeInt(enabled ? 1 : 0);
|
dest.writeInt(enabled ? 1 : 0);
|
||||||
|
dest.writeInt(installLocation);
|
||||||
dest.writeString(manageSpaceActivityName);
|
dest.writeString(manageSpaceActivityName);
|
||||||
dest.writeString(backupAgentName);
|
dest.writeString(backupAgentName);
|
||||||
dest.writeInt(descriptionRes);
|
dest.writeInt(descriptionRes);
|
||||||
@@ -521,6 +529,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
|||||||
uid = source.readInt();
|
uid = source.readInt();
|
||||||
targetSdkVersion = source.readInt();
|
targetSdkVersion = source.readInt();
|
||||||
enabled = source.readInt() != 0;
|
enabled = source.readInt() != 0;
|
||||||
|
installLocation = source.readInt();
|
||||||
manageSpaceActivityName = source.readString();
|
manageSpaceActivityName = source.readString();
|
||||||
backupAgentName = source.readString();
|
backupAgentName = source.readString();
|
||||||
descriptionRes = source.readInt();
|
descriptionRes = source.readInt();
|
||||||
|
|||||||
@@ -787,6 +787,7 @@ public class PackageParser {
|
|||||||
pkg.installLocation = sa.getInteger(
|
pkg.installLocation = sa.getInteger(
|
||||||
com.android.internal.R.styleable.AndroidManifest_installLocation,
|
com.android.internal.R.styleable.AndroidManifest_installLocation,
|
||||||
PARSE_DEFAULT_INSTALL_LOCATION);
|
PARSE_DEFAULT_INSTALL_LOCATION);
|
||||||
|
pkg.applicationInfo.installLocation = pkg.installLocation;
|
||||||
|
|
||||||
// Resource boolean are -1, so 1 means we don't know the value.
|
// Resource boolean are -1, so 1 means we don't know the value.
|
||||||
int supportsSmallScreens = 1;
|
int supportsSmallScreens = 1;
|
||||||
@@ -1600,7 +1601,7 @@ public class PackageParser {
|
|||||||
if (sa.getBoolean(
|
if (sa.getBoolean(
|
||||||
com.android.internal.R.styleable.AndroidManifestApplication_cantSaveState,
|
com.android.internal.R.styleable.AndroidManifestApplication_cantSaveState,
|
||||||
false)) {
|
false)) {
|
||||||
ai.flags |= ApplicationInfo.CANT_SAVE_STATE;
|
ai.flags |= ApplicationInfo.FLAG_CANT_SAVE_STATE;
|
||||||
|
|
||||||
// A heavy-weight application can not be in a custom process.
|
// A heavy-weight application can not be in a custom process.
|
||||||
// We can do direct compare because we intern all strings.
|
// We can do direct compare because we intern all strings.
|
||||||
@@ -1897,7 +1898,7 @@ public class PackageParser {
|
|||||||
|
|
||||||
sa.recycle();
|
sa.recycle();
|
||||||
|
|
||||||
if (receiver && (owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
|
if (receiver && (owner.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) {
|
||||||
// A heavy-weight application can not have receives in its main process
|
// A heavy-weight application can not have receives in its main process
|
||||||
// We can do direct compare because we intern all strings.
|
// We can do direct compare because we intern all strings.
|
||||||
if (a.info.processName == owner.packageName) {
|
if (a.info.processName == owner.packageName) {
|
||||||
@@ -2185,7 +2186,7 @@ public class PackageParser {
|
|||||||
|
|
||||||
sa.recycle();
|
sa.recycle();
|
||||||
|
|
||||||
if ((owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
|
if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) {
|
||||||
// A heavy-weight application can not have providers in its main process
|
// A heavy-weight application can not have providers in its main process
|
||||||
// We can do direct compare because we intern all strings.
|
// We can do direct compare because we intern all strings.
|
||||||
if (p.info.processName == owner.packageName) {
|
if (p.info.processName == owner.packageName) {
|
||||||
@@ -2425,7 +2426,7 @@ public class PackageParser {
|
|||||||
|
|
||||||
sa.recycle();
|
sa.recycle();
|
||||||
|
|
||||||
if ((owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
|
if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) {
|
||||||
// A heavy-weight application can not have services in its main process
|
// A heavy-weight application can not have services in its main process
|
||||||
// We can do direct compare because we intern all strings.
|
// We can do direct compare because we intern all strings.
|
||||||
if (s.info.processName == owner.packageName) {
|
if (s.info.processName == owner.packageName) {
|
||||||
|
|||||||
@@ -515,7 +515,7 @@ public class ActivityStack {
|
|||||||
r.info, r.icicle, results, newIntents, !andResume,
|
r.info, r.icicle, results, newIntents, !andResume,
|
||||||
mService.isNextTransitionForward());
|
mService.isNextTransitionForward());
|
||||||
|
|
||||||
if ((app.info.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
|
if ((app.info.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) {
|
||||||
// This may be a heavy-weight process! Note that the package
|
// This may be a heavy-weight process! Note that the package
|
||||||
// manager will ensure that only activity can run in the main
|
// manager will ensure that only activity can run in the main
|
||||||
// process of the .apk, which is the only thing that will be
|
// process of the .apk, which is the only thing that will be
|
||||||
@@ -2442,7 +2442,7 @@ public class ActivityStack {
|
|||||||
final long origId = Binder.clearCallingIdentity();
|
final long origId = Binder.clearCallingIdentity();
|
||||||
|
|
||||||
if (mMainStack && aInfo != null &&
|
if (mMainStack && aInfo != null &&
|
||||||
(aInfo.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) {
|
(aInfo.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) {
|
||||||
// This may be a heavy-weight process! Check to see if we already
|
// This may be a heavy-weight process! Check to see if we already
|
||||||
// have another, different heavy-weight process running.
|
// have another, different heavy-weight process running.
|
||||||
if (aInfo.processName.equals(aInfo.applicationInfo.packageName)) {
|
if (aInfo.processName.equals(aInfo.applicationInfo.packageName)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user