Merge "Change IMPORTANCE_PERCEPTIBLE_DEPRECATED to IMPORTANCE_PERCEPTIBLE_PRE_26" into oc-dev
This commit is contained in:
@@ -3943,7 +3943,7 @@ package android.app {
|
||||
field public static final int IMPORTANCE_FOREGROUND_SERVICE = 125; // 0x7d
|
||||
field public static final int IMPORTANCE_GONE = 1000; // 0x3e8
|
||||
field public static final int IMPORTANCE_PERCEPTIBLE = 230; // 0xe6
|
||||
field public static final deprecated int IMPORTANCE_PERCEPTIBLE_DEPRECATED = 130; // 0x82
|
||||
field public static final int IMPORTANCE_PERCEPTIBLE_PRE_26 = 130; // 0x82
|
||||
field public static final int IMPORTANCE_SERVICE = 300; // 0x12c
|
||||
field public static final int IMPORTANCE_TOP_SLEEPING = 150; // 0x96
|
||||
field public static final int IMPORTANCE_VISIBLE = 200; // 0xc8
|
||||
|
||||
@@ -4092,7 +4092,7 @@ package android.app {
|
||||
field public static final int IMPORTANCE_FOREGROUND_SERVICE = 125; // 0x7d
|
||||
field public static final int IMPORTANCE_GONE = 1000; // 0x3e8
|
||||
field public static final int IMPORTANCE_PERCEPTIBLE = 230; // 0xe6
|
||||
field public static final deprecated int IMPORTANCE_PERCEPTIBLE_DEPRECATED = 130; // 0x82
|
||||
field public static final int IMPORTANCE_PERCEPTIBLE_PRE_26 = 130; // 0x82
|
||||
field public static final int IMPORTANCE_SERVICE = 300; // 0x12c
|
||||
field public static final int IMPORTANCE_TOP_SLEEPING = 150; // 0x96
|
||||
field public static final int IMPORTANCE_VISIBLE = 200; // 0xc8
|
||||
|
||||
@@ -3953,7 +3953,7 @@ package android.app {
|
||||
field public static final int IMPORTANCE_FOREGROUND_SERVICE = 125; // 0x7d
|
||||
field public static final int IMPORTANCE_GONE = 1000; // 0x3e8
|
||||
field public static final int IMPORTANCE_PERCEPTIBLE = 230; // 0xe6
|
||||
field public static final deprecated int IMPORTANCE_PERCEPTIBLE_DEPRECATED = 130; // 0x82
|
||||
field public static final int IMPORTANCE_PERCEPTIBLE_PRE_26 = 130; // 0x82
|
||||
field public static final int IMPORTANCE_SERVICE = 300; // 0x12c
|
||||
field public static final int IMPORTANCE_TOP_SLEEPING = 150; // 0x96
|
||||
field public static final int IMPORTANCE_VISIBLE = 200; // 0xc8
|
||||
|
||||
@@ -3143,10 +3143,15 @@ public class ActivityManager {
|
||||
* before {@link Build.VERSION_CODES#O}. Since the {@link Build.VERSION_CODES#O} SDK,
|
||||
* the value of {@link #IMPORTANCE_PERCEPTIBLE} has been fixed.
|
||||
*
|
||||
* @deprecated Use {@link #IMPORTANCE_PERCEPTIBLE} instead.
|
||||
* <p>The system will return this value instead of {@link #IMPORTANCE_PERCEPTIBLE}
|
||||
* on Android versions below {@link Build.VERSION_CODES#O}.
|
||||
*
|
||||
* <p>On Android version {@link Build.VERSION_CODES#O} and later, this value will still be
|
||||
* returned for apps with the target API level below {@link Build.VERSION_CODES#O}.
|
||||
* For apps targeting version {@link Build.VERSION_CODES#O} and later,
|
||||
* the correct value {@link #IMPORTANCE_PERCEPTIBLE} will be returned.
|
||||
*/
|
||||
@Deprecated
|
||||
public static final int IMPORTANCE_PERCEPTIBLE_DEPRECATED = 130;
|
||||
public static final int IMPORTANCE_PERCEPTIBLE_PRE_26 = 130;
|
||||
|
||||
/**
|
||||
* Constant for {@link #importance}: This process is not something the user
|
||||
@@ -3160,11 +3165,17 @@ public class ActivityManager {
|
||||
* before {@link Build.VERSION_CODES#O}. Since the {@link Build.VERSION_CODES#O} SDK,
|
||||
* the value of {@link #IMPORTANCE_CANT_SAVE_STATE} has been fixed.
|
||||
*
|
||||
* @deprecated Use {@link #IMPORTANCE_CANT_SAVE_STATE} instead.
|
||||
* <p>The system will return this value instead of {@link #IMPORTANCE_CANT_SAVE_STATE}
|
||||
* on Android versions below {@link Build.VERSION_CODES#O}.
|
||||
*
|
||||
* <p>On Android version {@link Build.VERSION_CODES#O} after, this value will still be
|
||||
* returned for apps with the target API level below {@link Build.VERSION_CODES#O}.
|
||||
* For apps targeting version {@link Build.VERSION_CODES#O} and later,
|
||||
* the correct value {@link #IMPORTANCE_CANT_SAVE_STATE} will be returned.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Deprecated
|
||||
public static final int IMPORTANCE_CANT_SAVE_STATE_DEPRECATED = 170;
|
||||
public static final int IMPORTANCE_CANT_SAVE_STATE_PRE_26 = 170;
|
||||
|
||||
/**
|
||||
* Constant for {@link #importance}: This process is running an
|
||||
@@ -3244,15 +3255,25 @@ public class ActivityManager {
|
||||
*/
|
||||
public static @Importance int procStateToImportanceForClient(int procState,
|
||||
Context clientContext) {
|
||||
return procStateToImportanceForTargetSdk(procState,
|
||||
clientContext.getApplicationInfo().targetSdkVersion);
|
||||
}
|
||||
|
||||
/**
|
||||
* See {@link #procStateToImportanceForClient}.
|
||||
* @hide
|
||||
*/
|
||||
public static @Importance int procStateToImportanceForTargetSdk(int procState,
|
||||
int targetSdkVersion) {
|
||||
final int importance = procStateToImportance(procState);
|
||||
|
||||
// For pre O apps, convert to the old, wrong values.
|
||||
if (clientContext.getApplicationInfo().targetSdkVersion < VERSION_CODES.O) {
|
||||
if (targetSdkVersion < VERSION_CODES.O) {
|
||||
switch (importance) {
|
||||
case IMPORTANCE_PERCEPTIBLE:
|
||||
return IMPORTANCE_PERCEPTIBLE_DEPRECATED;
|
||||
return IMPORTANCE_PERCEPTIBLE_PRE_26;
|
||||
case IMPORTANCE_CANT_SAVE_STATE:
|
||||
return IMPORTANCE_CANT_SAVE_STATE_DEPRECATED;
|
||||
return IMPORTANCE_CANT_SAVE_STATE_PRE_26;
|
||||
}
|
||||
}
|
||||
return importance;
|
||||
|
||||
@@ -336,4 +336,9 @@ public abstract class PackageManagerInternal {
|
||||
* @param isolatedUid isolated uid that is no longer being used.
|
||||
*/
|
||||
public abstract void removeIsolatedUid(int isolatedUid);
|
||||
|
||||
/**
|
||||
* Return the taget SDK version for the app with the given UID.
|
||||
*/
|
||||
public abstract int getUidTargetSdkVersion(int uid);
|
||||
}
|
||||
|
||||
@@ -14644,8 +14644,10 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
}
|
||||
|
||||
static int procStateToImportance(int procState, int memAdj,
|
||||
ActivityManager.RunningAppProcessInfo currApp) {
|
||||
int imp = ActivityManager.RunningAppProcessInfo.procStateToImportance(procState);
|
||||
ActivityManager.RunningAppProcessInfo currApp,
|
||||
int clientTargetSdk) {
|
||||
int imp = ActivityManager.RunningAppProcessInfo.procStateToImportanceForTargetSdk(
|
||||
procState, clientTargetSdk);
|
||||
if (imp == ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
|
||||
currApp.lru = memAdj;
|
||||
} else {
|
||||
@@ -14655,7 +14657,8 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
}
|
||||
|
||||
private void fillInProcMemInfo(ProcessRecord app,
|
||||
ActivityManager.RunningAppProcessInfo outInfo) {
|
||||
ActivityManager.RunningAppProcessInfo outInfo,
|
||||
int clientTargetSdk) {
|
||||
outInfo.pid = app.pid;
|
||||
outInfo.uid = app.info.uid;
|
||||
if (mHeavyWeightProcess == app) {
|
||||
@@ -14670,7 +14673,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
outInfo.lastTrimLevel = app.trimMemoryLevel;
|
||||
int adj = app.curAdj;
|
||||
int procState = app.curProcState;
|
||||
outInfo.importance = procStateToImportance(procState, adj, outInfo);
|
||||
outInfo.importance = procStateToImportance(procState, adj, outInfo, clientTargetSdk);
|
||||
outInfo.importanceReasonCode = app.adjTypeCode;
|
||||
outInfo.processState = app.curProcState;
|
||||
}
|
||||
@@ -14680,6 +14683,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
enforceNotIsolatedCaller("getRunningAppProcesses");
|
||||
|
||||
final int callingUid = Binder.getCallingUid();
|
||||
final int clientTargetSdk = mPackageManagerInt.getUidTargetSdkVersion(callingUid);
|
||||
|
||||
// Lazy instantiation of list
|
||||
List<ActivityManager.RunningAppProcessInfo> runList = null;
|
||||
@@ -14702,7 +14706,7 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
ActivityManager.RunningAppProcessInfo currApp =
|
||||
new ActivityManager.RunningAppProcessInfo(app.processName,
|
||||
app.pid, app.getPackageList());
|
||||
fillInProcMemInfo(app, currApp);
|
||||
fillInProcMemInfo(app, currApp, clientTargetSdk);
|
||||
if (app.adjSource instanceof ProcessRecord) {
|
||||
currApp.importanceReasonPid = ((ProcessRecord)app.adjSource).pid;
|
||||
currApp.importanceReasonImportance =
|
||||
@@ -14758,12 +14762,16 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
@Override
|
||||
public void getMyMemoryState(ActivityManager.RunningAppProcessInfo outInfo) {
|
||||
enforceNotIsolatedCaller("getMyMemoryState");
|
||||
|
||||
final int callingUid = Binder.getCallingUid();
|
||||
final int clientTargetSdk = mPackageManagerInt.getUidTargetSdkVersion(callingUid);
|
||||
|
||||
synchronized (this) {
|
||||
ProcessRecord proc;
|
||||
synchronized (mPidsSelfLocked) {
|
||||
proc = mPidsSelfLocked.get(Binder.getCallingPid());
|
||||
}
|
||||
fillInProcMemInfo(proc, outInfo);
|
||||
fillInProcMemInfo(proc, outInfo, clientTargetSdk);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23572,6 +23572,13 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
|
||||
mIsolatedOwners.delete(isolatedUid);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getUidTargetSdkVersion(int uid) {
|
||||
synchronized (mPackages) {
|
||||
return getUidTargetSdkVersionLockedLPr(uid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user