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

Commit 4700befb authored by Andrew Grieve's avatar Andrew Grieve Committed by Richard Coles
Browse files

Add Application.getProcessName()

This information is already available to non-sandboxed processes via
ActivityManager.getRunningAppProcesses(). However, performing an IPC and
iterating processes is quite cumbersome. See other alternatives devs have tried:

https://stackoverflow.com/questions/19631894/is-there-a-way-to-get-current-process-name-in-android

My specific motivation for exposing this information more directly is to
be able to perform process-specific initialization logic in
Application.attachBaseContext():

https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java?rcl=ac2e180a1265f88dd4030bb35d69f5d0b2dc488d&l=54

Bug: 73344323
Test: Same code that's used in Chrome via reflection.
Change-Id: I83cec468458078e3fa183427a039869f74539c3d
parent e84c506f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4265,6 +4265,7 @@ package android.app {
  public class Application extends android.content.ContextWrapper implements android.content.ComponentCallbacks2 {
    ctor public Application();
    method public static java.lang.String getProcessName();
    method public void onConfigurationChanged(android.content.res.Configuration);
    method public void onCreate();
    method public void onLowMemory();
+11 −1
Original line number Diff line number Diff line
@@ -191,6 +191,16 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 {
        }
    }

    /**
     * Returns the name of the current process. A package's default process name
     * is the same as its package name. Non-default processes will look like
     * "$PACKAGE_NAME:$NAME", where $NAME corresponds to an android:process
     * attribute within AndroidManifest.xml.
     */
    public static String getProcessName() {
        return ActivityThread.currentProcessName();
    }

    // ------------------ Internal API ------------------

    /**