diff options
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | api/test-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 3 | ||||
| -rw-r--r-- | core/java/android/os/Process.java | 23 |
5 files changed, 32 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index aeaae5583304..ce7ba46851e5 100644 --- a/api/current.txt +++ b/api/current.txt @@ -29104,6 +29104,8 @@ package android.os { ctor public Process(); method public static final long getElapsedCpuTime(); method public static final int getGidForName(java.lang.String); + method public static final long getStartElapsedRealtime(); + method public static final long getStartUptimeMillis(); method public static final int getThreadPriority(int) throws java.lang.IllegalArgumentException; method public static final int getUidForName(java.lang.String); method public static final boolean is64Bit(); diff --git a/api/system-current.txt b/api/system-current.txt index 1a2c8547fa8c..e4f7caa47506 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -31396,6 +31396,8 @@ package android.os { ctor public Process(); method public static final long getElapsedCpuTime(); method public static final int getGidForName(java.lang.String); + method public static final long getStartElapsedRealtime(); + method public static final long getStartUptimeMillis(); method public static final int getThreadPriority(int) throws java.lang.IllegalArgumentException; method public static final int getUidForName(java.lang.String); method public static final boolean is64Bit(); diff --git a/api/test-current.txt b/api/test-current.txt index 1039fed4ac4f..c220c6d995a8 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -29115,6 +29115,8 @@ package android.os { ctor public Process(); method public static final long getElapsedCpuTime(); method public static final int getGidForName(java.lang.String); + method public static final long getStartElapsedRealtime(); + method public static final long getStartUptimeMillis(); method public static final int getThreadPriority(int) throws java.lang.IllegalArgumentException; method public static final int getUidForName(java.lang.String); method public static final boolean is64Bit(); diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 1e95c983a84f..2415ce1d946f 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4909,6 +4909,9 @@ public final class ActivityThread { DdmVmInternal.enableRecentAllocations(true); } + // Note when this process has started. + Process.setStartTimes(SystemClock.elapsedRealtime(), SystemClock.uptimeMillis()); + mBoundApplication = data; mConfiguration = new Configuration(data.config); mCompatConfiguration = new Configuration(data.config); diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 9984755d316f..8fd3b0c0035f 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -383,6 +383,9 @@ public class Process { public static final int SIGNAL_KILL = 9; public static final int SIGNAL_USR1 = 10; + private static long sStartElapsedRealtime; + private static long sStartUptimeMillis; + /** * State for communicating with the zygote process. * @@ -772,6 +775,26 @@ public class Process { public static final native long getElapsedCpuTime(); /** + * Return the {@link SystemClock#elapsedRealtime()} at which this process was started. + */ + public static final long getStartElapsedRealtime() { + return sStartElapsedRealtime; + } + + /** + * Return the {@link SystemClock#uptimeMillis()} at which this process was started. + */ + public static final long getStartUptimeMillis() { + return sStartUptimeMillis; + } + + /** @hide */ + public static final void setStartTimes(long elapsedRealtime, long uptimeMillis) { + sStartElapsedRealtime = elapsedRealtime; + sStartUptimeMillis = uptimeMillis; + } + + /** * Returns true if the current process is a 64-bit runtime. */ public static final boolean is64Bit() { |