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

Commit 13926c38 authored by Eric Holk's avatar Eric Holk
Browse files

Add additional system_server benchmarks

This CL adds benchmarks for the following PackageManager APIs:
* getInstalledApplications
* getInstalledPackages
* getPackageInfo
* getApplicationInfo
* getResourcesForApplication
* getActivityInfo

Bug: 140743821
Change-Id: I467e4264a5e8f5c1c34194c7ad4b4c415387da9e
parent aec05a2c
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
@@ -17,8 +17,11 @@
package com.android.startop.test;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Trace;
@@ -108,5 +111,48 @@ public class SystemServerBenchmarkActivity extends Activity {
        new Benchmark(benchmarkList, "getInstalledApplications", () -> {
            pm.getInstalledApplications(PackageManager.MATCH_SYSTEM_ONLY);
        });

        new Benchmark(benchmarkList, "getInstalledPackages", () -> {
            pm.getInstalledPackages(PackageManager.GET_ACTIVITIES);
        });

        new Benchmark(benchmarkList, "getPackageInfo", () -> {
            try {
                pm.getPackageInfo("com.android.startop.test", 0);
            } catch (NameNotFoundException e) {
                throw new RuntimeException(e);
            }
        });

        new Benchmark(benchmarkList, "getApplicationInfo", () -> {
            try {
                pm.getApplicationInfo("com.android.startop.test", 0);
            } catch (NameNotFoundException e) {
                throw new RuntimeException(e);
            }
        });

        try {
            ApplicationInfo app = pm.getApplicationInfo("com.android.startop.test", 0);
            new Benchmark(benchmarkList, "getResourcesForApplication", () -> {
                try {
                    pm.getResourcesForApplication(app);
                } catch (NameNotFoundException e) {
                    throw new RuntimeException(e);
                }
            });
        } catch (NameNotFoundException e) {
            throw new RuntimeException(e);
        }

        ComponentName component = new ComponentName(this, this.getClass());
        new Benchmark(benchmarkList, "getActivityInfo", () -> {
            try {
                pm.getActivityInfo(component, PackageManager.GET_META_DATA);
            } catch (NameNotFoundException e) {
                throw new RuntimeException(e);
            }
        });

    }
}