apk_operations.py: GetPids() -> PIDs from package. Switch mem-usage to dumpsys.

GetPids() was returning org.chromium.chrome.tests.support for package
org.chromium.chrome.

Apparently DeviceUtils.d.GetMemoryUsageForPid() is deprecated, so moving
away from it.

NOTRY=true  # tests flaked

Change-Id: Idfa85811d70f080a9fb0ea1190df95a1aba17f63
Reviewed-on: https://chromium-review.googlesource.com/695566
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Peter Wen <wnwen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#505690}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4d0accee963b4dad848e6c5404bb47c3ee61071e
This commit is contained in:
Andrew Grieve 2017-10-02 18:36:55 +00:00 коммит произвёл Commit Bot
Родитель 8f3cf125af
Коммит c1fc1bbb63
1 изменённых файлов: 19 добавлений и 11 удалений

Просмотреть файл

@ -175,10 +175,11 @@ def _PrintPerDeviceOutput(devices, results, single_line=False):
def _RunMemUsage(devices, package_name):
def mem_usage_helper(d):
ret = []
proc_map = d.GetPids(package_name)
for name, pids in proc_map.iteritems():
for pid in pids:
ret.append((name, pid, d.GetMemoryUsageForPid(pid)))
proc_map = _GetPackagePids(d, package_name)
for name in sorted(proc_map.iterkeys()):
for pid in proc_map[name]:
ret.append(
(name, '\n'.join(d.RunShellCommand(['dumpsys', 'meminfo', pid]))))
return ret
parallel_devices = device_utils.DeviceUtils.parallel(devices)
@ -187,11 +188,11 @@ def _RunMemUsage(devices, package_name):
if not result:
print 'No processes found.'
else:
for name, pid, usage in sorted(result):
print '%s(%s):' % (name, pid)
for k, v in sorted(usage.iteritems()):
print ' %s=%d' % (k, v)
print
for name, usage in sorted(result):
print _Colorize(
'==== Output of "dumpsys meminfo %s" ====' % name,
colorama.Fore.GREEN)
print usage
def _DuHelper(device, path_spec, run_as=None):
@ -401,7 +402,8 @@ class _LogcatProcessor(object):
self._UpdateMyPids()
def _UpdateMyPids(self):
for name, pids in self._device.GetPids(self._package_name).items():
package_pids = _GetPackagePids(self._device, self._package_name)
for name, pids in package_pids.iteritems():
if ':' not in name:
self._primary_pid = int(pids[0])
self._my_pids.update(int(p) for p in pids)
@ -531,9 +533,15 @@ def _RunLogcat(device, package_name, mapping_path, verbose):
deobfuscate.Close()
def _GetPackagePids(device, package_name):
return dict((k, v) for k, v in device.GetPids(package_name).iteritems()
if k == package_name or k.startswith(package_name + ':'))
def _RunPs(devices, package_name):
parallel_devices = device_utils.DeviceUtils.parallel(devices)
all_pids = parallel_devices.GetPids(package_name).pGet(None)
all_pids = parallel_devices.pMap(
lambda d: _GetPackagePids(d, package_name)).pGet(None)
for proc_map in _PrintPerDeviceOutput(devices, all_pids):
if not proc_map:
print 'No processes found.'