Merge "Disable freezer during AM provider/service dump" into udc-dev
This commit is contained in:
@@ -7258,47 +7258,52 @@ public final class ActiveServices {
|
|||||||
*/
|
*/
|
||||||
protected boolean dumpService(FileDescriptor fd, PrintWriter pw, String name, int[] users,
|
protected boolean dumpService(FileDescriptor fd, PrintWriter pw, String name, int[] users,
|
||||||
String[] args, int opti, boolean dumpAll) {
|
String[] args, int opti, boolean dumpAll) {
|
||||||
final ArrayList<ServiceRecord> services = new ArrayList<>();
|
try {
|
||||||
|
mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false);
|
||||||
|
final ArrayList<ServiceRecord> services = new ArrayList<>();
|
||||||
|
|
||||||
final Predicate<ServiceRecord> filter = DumpUtils.filterRecord(name);
|
final Predicate<ServiceRecord> filter = DumpUtils.filterRecord(name);
|
||||||
|
|
||||||
synchronized (mAm) {
|
synchronized (mAm) {
|
||||||
if (users == null) {
|
if (users == null) {
|
||||||
users = mAm.mUserController.getUsers();
|
users = mAm.mUserController.getUsers();
|
||||||
}
|
|
||||||
|
|
||||||
for (int user : users) {
|
|
||||||
ServiceMap smap = mServiceMap.get(user);
|
|
||||||
if (smap == null) {
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
ArrayMap<ComponentName, ServiceRecord> alls = smap.mServicesByInstanceName;
|
|
||||||
for (int i=0; i<alls.size(); i++) {
|
|
||||||
ServiceRecord r1 = alls.valueAt(i);
|
|
||||||
|
|
||||||
if (filter.test(r1)) {
|
for (int user : users) {
|
||||||
services.add(r1);
|
ServiceMap smap = mServiceMap.get(user);
|
||||||
|
if (smap == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ArrayMap<ComponentName, ServiceRecord> alls = smap.mServicesByInstanceName;
|
||||||
|
for (int i=0; i<alls.size(); i++) {
|
||||||
|
ServiceRecord r1 = alls.valueAt(i);
|
||||||
|
|
||||||
|
if (filter.test(r1)) {
|
||||||
|
services.add(r1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (services.size() <= 0) {
|
if (services.size() <= 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
// Sort by component name.
|
|
||||||
services.sort(Comparator.comparing(WithComponentName::getComponentName));
|
|
||||||
|
|
||||||
boolean needSep = false;
|
|
||||||
for (int i=0; i<services.size(); i++) {
|
|
||||||
if (needSep) {
|
|
||||||
pw.println();
|
|
||||||
}
|
}
|
||||||
needSep = true;
|
|
||||||
dumpService("", fd, pw, services.get(i), args, dumpAll);
|
// Sort by component name.
|
||||||
|
services.sort(Comparator.comparing(WithComponentName::getComponentName));
|
||||||
|
|
||||||
|
boolean needSep = false;
|
||||||
|
for (int i=0; i<services.size(); i++) {
|
||||||
|
if (needSep) {
|
||||||
|
pw.println();
|
||||||
|
}
|
||||||
|
needSep = true;
|
||||||
|
dumpService("", fd, pw, services.get(i), args, dumpAll);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} finally {
|
||||||
|
mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -351,21 +351,26 @@ public final class ProviderMap {
|
|||||||
|
|
||||||
protected boolean dumpProvider(FileDescriptor fd, PrintWriter pw, String name, String[] args,
|
protected boolean dumpProvider(FileDescriptor fd, PrintWriter pw, String name, String[] args,
|
||||||
int opti, boolean dumpAll) {
|
int opti, boolean dumpAll) {
|
||||||
ArrayList<ContentProviderRecord> providers = getProvidersForName(name);
|
try {
|
||||||
|
mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(false);
|
||||||
|
ArrayList<ContentProviderRecord> providers = getProvidersForName(name);
|
||||||
|
|
||||||
if (providers.size() <= 0) {
|
if (providers.size() <= 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
boolean needSep = false;
|
|
||||||
for (int i=0; i<providers.size(); i++) {
|
|
||||||
if (needSep) {
|
|
||||||
pw.println();
|
|
||||||
}
|
}
|
||||||
needSep = true;
|
|
||||||
dumpProvider("", fd, pw, providers.get(i), args, dumpAll);
|
boolean needSep = false;
|
||||||
|
for (int i=0; i<providers.size(); i++) {
|
||||||
|
if (needSep) {
|
||||||
|
pw.println();
|
||||||
|
}
|
||||||
|
needSep = true;
|
||||||
|
dumpProvider("", fd, pw, providers.get(i), args, dumpAll);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} finally {
|
||||||
|
mAm.mOomAdjuster.mCachedAppOptimizer.enableFreezer(true);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user