Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0822e83 authored by Yasuhiro Matsuda's avatar Yasuhiro Matsuda
Browse files

Enable perfboot.py to install APKs before measurement.

This CL adds --apk-dir option, which specifies the directory
that contains APK files to be installed before measuring
boot time.

BUG: 22207911
Change-Id: Ifeacf34c779248686443a9ef02485272c140a456
parent 1ada513f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -170,8 +170,12 @@ class AndroidDevice(object):
        out, _ = p.communicate()
        return self._parse_shell_output(out)

    def install(self, filename):
        return self._simple_call(['install', filename])
    def install(self, filename, replace=False):
        cmd = ['install']
        if replace:
            cmd.append('-r')
        cmd.append(filename)
        return self._simple_call(cmd)

    def push(self, local, remote):
        return self._simple_call(['push', local, remote])
+12 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ $ ./perfboot.py --iterations=30 -v --output=data.tsv --tags=eventtags.txt
import argparse
import atexit
import cStringIO
import glob
import inspect
import logging
import math
@@ -408,9 +409,17 @@ def parse_args():
                        'event tags are read. Every line contains one event '
                        'tag and the last event tag is used to detect that '
                        'the device has finished booting.')
    parser.add_argument('--apk-dir', help='Specify the directory which contains '
                        'APK files to be installed before measuring boot time.')
    return parser.parse_args()


def install_apks(device, apk_dir):
    for apk in glob.glob(os.path.join(apk_dir, '*.apk')):
        print 'Installing: ' + apk
        device.install(apk, replace=True)


def main():
    args = parse_args()
    if args.verbose:
@@ -425,6 +434,9 @@ def main():
            device.get_prop('ro.build.version.incremental'))
    check_dm_verity_settings(device)

    if args.apk_dir:
        install_apks(device, args.apk_dir)

    record_list = []
    event_tags = filter_event_tags(read_event_tags(args.tags), device)
    init_perf(device, args.output, record_list, event_tags)