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

Commit 9dc6a21b authored by Felka Chang's avatar Felka Chang
Browse files

Post tasks back to PackageInstaller thread

When PackageManagerService return the verification result back to
PackageInstallerSession, PackageInstallerSession use
PackageManagerService's worker thread to generate the install
parameter.

When the verification tasks are completed, PackageInstaller's worker
thread should execute the following tasks. This patch should make the
benchmark better if PackageManagerService's worker thread is busy.

The benchmark reports that to post runnable is faster than the
original

Test: TID="PackageManagerPerfTests" ; \
           atest \
           ${TID}:android.content.pm.PackageInstallerBenchmark

Bug: 194755410
Change-Id: I0e9b123b999dc3f908819ee40850397a1f3fd9e0
parent aec13b2c
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -2615,11 +2615,13 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
                @Override
                public void onPackageInstalled(String basePackageName, int returnCode, String msg,
                        Bundle extras) {
                    mHandler.post(() -> {
                        if (returnCode == INSTALL_SUCCEEDED) {
                            onVerificationComplete();
                        } else {
                            onSessionVerificationFailure(returnCode, msg);
                        }
                    });
                }
            };
        } else {
@@ -2639,6 +2641,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub {
                mInstallSource, mInstallerUid, mSigningDetails, sessionId, mPackageLite, mPm);
    }

    @WorkerThread
    private void onVerificationComplete() {
        // APK verification is done. Continue the installation depending on whether it is a
        // staged session or not. For a staged session, we will hand it over to the staging