Frameworks: Clean up ProfilerInfo

Use a ProfilerInfo object in ActivityManagerService to reduce the
number of exposed fields. In preparation for adding an agent during
startup.

Bug: 62445317
Test: m
Test: Device boots
Test: Manual test for profiling
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsServicesHostTestCases android.server.cts.ActivityManagerAmProfileTests
Change-Id: I5fa347ded760c263a8ce3754bb2631205ea7b4b8
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index fa279c2..90d9149 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -1442,26 +1442,17 @@
                 if (mService.mProfileApp != null && mService.mProfileApp.equals(app.processName)) {
                     if (mService.mProfileProc == null || mService.mProfileProc == app) {
                         mService.mProfileProc = app;
-                        final String profileFile = mService.mProfileFile;
-                        if (profileFile != null) {
-                            ParcelFileDescriptor profileFd = mService.mProfileFd;
-                            if (profileFd != null) {
+                        ProfilerInfo profilerInfoSvc = mService.mProfilerInfo;
+                        if (profilerInfoSvc != null && profilerInfoSvc.profileFile != null) {
+                            if (profilerInfoSvc.profileFd != null) {
                                 try {
-                                    profileFd = profileFd.dup();
+                                    profilerInfoSvc.profileFd = profilerInfoSvc.profileFd.dup();
                                 } catch (IOException e) {
-                                    if (profileFd != null) {
-                                        try {
-                                            profileFd.close();
-                                        } catch (IOException o) {
-                                        }
-                                        profileFd = null;
-                                    }
+                                    profilerInfoSvc.closeFd();
                                 }
                             }
 
-                            profilerInfo = new ProfilerInfo(profileFile, profileFd,
-                                    mService.mSamplingInterval, mService.mAutoStopProfiler,
-                                    mService.mStreamingOutput);
+                            profilerInfo = new ProfilerInfo(profilerInfoSvc);
                         }
                     }
                 }