diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 8 | ||||
| -rw-r--r-- | core/java/android/app/IActivityManager.aidl | 4 | ||||
| -rw-r--r-- | core/java/android/app/IApplicationThread.aidl | 3 |
3 files changed, 12 insertions, 3 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 6fc14e768b64..369691973416 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -94,6 +94,7 @@ import android.os.Parcel; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; import android.os.Process; +import android.os.RemoteCallback; import android.os.RemoteException; import android.os.ServiceManager; import android.os.StrictMode; @@ -739,6 +740,7 @@ public final class ActivityThread extends ClientTransactionHandler { public boolean runGc; String path; ParcelFileDescriptor fd; + RemoteCallback finishCallback; } static final class UpdateCompatibilityData { @@ -998,13 +1000,14 @@ public final class ActivityThread extends ClientTransactionHandler { @Override public void dumpHeap(boolean managed, boolean mallocInfo, boolean runGc, String path, - ParcelFileDescriptor fd) { + ParcelFileDescriptor fd, RemoteCallback finishCallback) { DumpHeapData dhd = new DumpHeapData(); dhd.managed = managed; dhd.mallocInfo = mallocInfo; dhd.runGc = runGc; dhd.path = path; dhd.fd = fd; + dhd.finishCallback = finishCallback; sendMessage(H.DUMP_HEAP, dhd, 0, 0, true /*async*/); } @@ -5310,6 +5313,9 @@ public final class ActivityThread extends ClientTransactionHandler { } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } + if (dhd.finishCallback != null) { + dhd.finishCallback.sendResult(null); + } } final void handleDispatchPackageBroadcast(int cmd, String[] packages) { diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl index 569c2bd37b6a..d22f578eeea9 100644 --- a/core/java/android/app/IActivityManager.aidl +++ b/core/java/android/app/IActivityManager.aidl @@ -63,6 +63,7 @@ import android.os.IBinder; import android.os.IProgressListener; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; +import android.os.RemoteCallback; import android.os.StrictMode; import android.os.WorkSource; import android.service.voice.IVoiceInteractionSession; @@ -288,7 +289,8 @@ interface IActivityManager { int modeFlags, int userId); // Cause the specified process to dump the specified heap. boolean dumpHeap(in String process, int userId, boolean managed, boolean mallocInfo, - boolean runGc, in String path, in ParcelFileDescriptor fd); + boolean runGc, in String path, in ParcelFileDescriptor fd, + in RemoteCallback finishCallback); int startActivities(in IApplicationThread caller, in String callingPackage, in Intent[] intents, in String[] resolvedTypes, in IBinder resultTo, in Bundle options, int userId); diff --git a/core/java/android/app/IApplicationThread.aidl b/core/java/android/app/IApplicationThread.aidl index ae9b83ec0122..fcb6c14d052c 100644 --- a/core/java/android/app/IApplicationThread.aidl +++ b/core/java/android/app/IApplicationThread.aidl @@ -38,6 +38,7 @@ import android.os.IBinder; import android.os.IInterface; import android.os.ParcelFileDescriptor; import android.os.PersistableBundle; +import android.os.RemoteCallback; import com.android.internal.app.IVoiceInteractor; import com.android.internal.content.ReferrerIntent; @@ -95,7 +96,7 @@ oneway interface IApplicationThread { void dispatchPackageBroadcast(int cmd, in String[] packages); void scheduleCrash(in String msg); void dumpHeap(boolean managed, boolean mallocInfo, boolean runGc, in String path, - in ParcelFileDescriptor fd); + in ParcelFileDescriptor fd, in RemoteCallback finishCallback); void dumpActivity(in ParcelFileDescriptor fd, IBinder servicetoken, in String prefix, in String[] args); void clearDnsCache(); |
