diff options
| -rw-r--r-- | api/current.xml | 46 | ||||
| -rw-r--r-- | core/java/android/app/Activity.java | 2 | ||||
| -rw-r--r-- | core/java/android/content/pm/ApplicationInfo.java | 24 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageParser.java | 26 | ||||
| -rw-r--r-- | core/res/res/values/attrs_manifest.xml | 16 | ||||
| -rw-r--r-- | core/res/res/values/public.xml | 2 | ||||
| -rw-r--r-- | services/java/com/android/server/am/ActivityStack.java | 4 |
7 files changed, 41 insertions, 79 deletions
diff --git a/api/current.xml b/api/current.xml index 72487eb..62ab948 100644 --- a/api/current.xml +++ b/api/current.xml @@ -4508,17 +4508,6 @@ visibility="public" > </field> -<field name="heavyWeight" - type="int" - transient="false" - volatile="false" - value="16843456" - static="true" - final="true" - deprecated="not deprecated" - visibility="public" -> -</field> <field name="height" type="int" transient="false" @@ -19543,17 +19532,6 @@ visibility="public" > </method> -<method name="isImmersive" - return="boolean" - abstract="false" - native="false" - synchronized="false" - static="false" - final="false" - deprecated="not deprecated" - visibility="public" -> -</method> <method name="isTaskRoot" return="boolean" abstract="false" @@ -20507,19 +20485,6 @@ <parameter name="uri" type="android.net.Uri"> </parameter> </method> -<method name="setImmersive" - return="void" - abstract="false" - native="false" - synchronized="false" - static="false" - final="false" - deprecated="not deprecated" - visibility="public" -> -<parameter name="i" type="boolean"> -</parameter> -</method> <method name="setIntent" return="void" abstract="false" @@ -46505,17 +46470,6 @@ visibility="public" > </field> -<field name="FLAG_HEAVY_WEIGHT" - type="int" - transient="false" - volatile="false" - value="1048576" - static="true" - final="true" - deprecated="not deprecated" - visibility="public" -> -</field> <field name="FLAG_KILL_AFTER_RESTORE" type="int" transient="false" diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index ed5af91..a3a8f09 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -3748,6 +3748,7 @@ public class Activity extends ContextThemeWrapper * {@link #setImmersive}. * * @see android.content.pm.ActivityInfo#FLAG_IMMERSIVE + * @hide */ public boolean isImmersive() { try { @@ -3770,6 +3771,7 @@ public class Activity extends ContextThemeWrapper * * @see #isImmersive * @see android.content.pm.ActivityInfo#FLAG_IMMERSIVE + * @hide */ public void setImmersive(boolean i) { try { diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 244d126..c812f36 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -273,17 +273,6 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { public static final int FLAG_SUPPORTS_XLARGE_SCREENS = 1<<19; /** - * Value for {@link #flags}: set to <code>true</code> if the application - * has reported that it is heavy-weight, and thus can not participate in - * the normal application lifecycle. - * - * <p>Comes from the - * {@link android.R.styleable#AndroidManifestApplication_heavyWeight android:heavyWeight} - * attribute of the <application> tag. - */ - public static final int FLAG_HEAVY_WEIGHT = 1<<20; - - /** * Value for {@link #flags}: this is true if the application has set * its android:neverEncrypt to true, false otherwise. It is used to specify * that this package specifically "opts-out" of a secured file system solution, @@ -310,6 +299,19 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { public static final int FLAG_NATIVE_DEBUGGABLE = 1<<28; /** + * Value for {@link #flags}: set to <code>true</code> if the application + * has reported that it is heavy-weight, and thus can not participate in + * the normal application lifecycle. + * + * <p>Comes from the + * {@link android.R.styleable#AndroidManifestApplication_heavyWeight android:heavyWeight} + * attribute of the <application> tag. + * + * {@hide} + */ + public static final int CANT_SAVE_STATE = 1<<27; + + /** * Flags 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 diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 47e668d..2a39dc0 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -1601,15 +1601,17 @@ public class PackageParser { ai.enabled = sa.getBoolean( com.android.internal.R.styleable.AndroidManifestApplication_enabled, true); - if (sa.getBoolean( - com.android.internal.R.styleable.AndroidManifestApplication_heavyWeight, - false)) { - ai.flags |= ApplicationInfo.FLAG_HEAVY_WEIGHT; - - // A heavy-weight application can not be in a custom process. - // We can do direct compare because we intern all strings. - if (ai.processName != null && ai.processName != ai.packageName) { - outError[0] = "Heavy-weight applications can not use custom processes"; + if (false) { + if (sa.getBoolean( + com.android.internal.R.styleable.AndroidManifestApplication_cantSaveState, + false)) { + ai.flags |= ApplicationInfo.CANT_SAVE_STATE; + + // A heavy-weight application can not be in a custom process. + // We can do direct compare because we intern all strings. + if (ai.processName != null && ai.processName != ai.packageName) { + outError[0] = "cantSaveState applications can not use custom processes"; + } } } } @@ -1907,7 +1909,7 @@ public class PackageParser { sa.recycle(); - if (receiver && (owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) { + if (receiver && (owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { // A heavy-weight application can not have receives in its main process // We can do direct compare because we intern all strings. if (a.info.processName == owner.packageName) { @@ -2197,7 +2199,7 @@ public class PackageParser { sa.recycle(); - if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) { + if ((owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { // A heavy-weight application can not have providers in its main process // We can do direct compare because we intern all strings. if (p.info.processName == owner.packageName) { @@ -2438,7 +2440,7 @@ public class PackageParser { sa.recycle(); - if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) { + if ((owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { // A heavy-weight application can not have services in its main process // We can do direct compare because we intern all strings. if (s.info.processName == owner.packageName) { diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index f18d14e..fb49120 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -744,15 +744,17 @@ <attr name="restoreNeedsApplication" /> <attr name="restoreAnyVersion" /> <attr name="neverEncrypt" /> - <!-- Declare that this is a heavy-weight application. This kind of - application is not able to save and restore its state on demand, - so can not participate in the normal activity lifecycle. It will + <!-- Declare that this applicationn can't participate in the normal + state save/restore mechanism. Since it is not able to save and + restore its state on demand, + it can not participate in the normal activity lifecycle. It will not be killed while in the background; the user must explicitly quit it. Only one such app can be running at a time; if the user - tries to launch a second heavy-weight app, they will be prompted - to quit the first before doing so. While a heavy-weight - application is running, the user will be informed of this. --> - <attr name="heavyWeight" format="boolean" /> + tries to launch a second such app, they will be prompted + to quit the first before doing so. While the + application is running, the user will be informed of this. + @hide --> + <attr name="cantSaveState" format="boolean" /> </declare-styleable> <!-- The <code>permission</code> tag declares a security permission that can be diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 1df424b..5b7e88f 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -1250,7 +1250,7 @@ <public type="attr" name="logo" id="0x010102be" /> <public type="attr" name="xlargeScreens" id="0x010102bf" /> - <public type="attr" name="heavyWeight" id="0x010102c0" /> + <public type="attr" name="cantSaveState" id="0x010102c0" /> <public type="attr" name="immersive" id="0x010102c1" /> <public-padding type="attr" name="kraken_resource_pad" end="0x01010300" /> diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index a99b48c..c21a221 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -504,7 +504,7 @@ public class ActivityStack { r.info, r.icicle, results, newIntents, !andResume, mService.isNextTransitionForward()); - if ((app.info.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) { + if ((app.info.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { // This may be a heavy-weight process! Note that the package // manager will ensure that only activity can run in the main // process of the .apk, which is the only thing that will be @@ -2404,7 +2404,7 @@ public class ActivityStack { final long origId = Binder.clearCallingIdentity(); if (mMainStack && aInfo != null && - (aInfo.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) { + (aInfo.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { // This may be a heavy-weight process! Check to see if we already // have another, different heavy-weight process running. if (aInfo.processName.equals(aInfo.applicationInfo.packageName)) { |
