PORT-WIP - move to androidx.tracing.Trace

This commit is contained in:
Alex Sim committed 2026-03-09 12:24:35 +01:00
1 parent f455b2c540
commit 2229665e50
26 files changed
+53 -51

No files matched your search

+1
View File
@@ -258,6 +258,7 @@ dependencies {
implementation libs.androidx.window
implementation libs.androidx.core.animation
implementation libs.androidx.material3
implementation libs.androidx.tracing
implementation libs.material
implementation libs.kotlinx.coroutines
+2
View File
@@ -8,6 +8,7 @@ baselineprofile = "1.4.1"
core = "1.17.0"
annotation = "1.9.1"
activity = "1.13.0-alpha01"
tracing = "2.0.0-alpha01"
coreAnimation = "1.0.0"
dagger = "2.57.2"
dexmaker = "1.2"
@@ -101,6 +102,7 @@ androidx-slice-builders = { module = "androidx.slice:slice-builders", version.re
androidx-window = { module = "androidx.window:window", version.ref = "window" }
androidx-fragment = { module = "androidx.fragment:fragment", version.ref = "fragment" }
androidx-activity = { module = "androidx.activity:activity", version.ref = "activity" }
androidx-tracing = { module = "androidx.tracing:tracing", version.ref = "tracing" }
annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" }
core = { module = "androidx.core:core", version.ref = "core" }
dagger = { module = "com.google.dagger:dagger", version.ref = "dagger" }
+1
View File
@@ -28,5 +28,6 @@ android {
dependencies {
implementation libs.androidx.palette.ktx
implementation libs.androidx.tracing
compileOnly project(':flags')
}
@@ -34,13 +34,13 @@ import android.graphics.BitmapFactory.Options
import android.graphics.drawable.Drawable
import android.os.Handler
import android.os.Looper
import android.os.Trace
import android.os.UserHandle
import android.text.TextUtils
import android.util.Log
import android.util.SparseArray
import androidx.annotation.VisibleForTesting
import androidx.annotation.WorkerThread
import androidx.tracing.Trace
import com.android.launcher3.Flags
import com.android.launcher3.icons.cache.StaticFlags.extendibleThemeManager
import com.android.launcher3.icons.BaseIconFactory
@@ -50,7 +50,6 @@ import android.content.res.Configuration;
import android.hardware.display.DisplayManager;
import android.net.Uri;
import android.os.Handler;
import android.os.Trace;
import android.provider.Settings;
import android.util.ArraySet;
import android.util.Log;
@@ -65,6 +64,7 @@ import android.window.DesktopExperienceFlags;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.tracing.Trace;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.InvariantDeviceProfile;
@@ -1346,7 +1346,7 @@ public class TaskbarManager implements DisplayDecorationListener {
@Override
public void onConfigurationChanged(Configuration newConfig) {
Trace.instantForTrack(Trace.TRACE_TAG_APP, "TaskbarManager",
android.os.Trace.instantForTrack(android.os.Trace.TRACE_TAG_APP, "TaskbarManager",
"onConfigurationChanged: " + newConfig);
debugTaskbarManager("onConfigurationChanged: " + newConfig, displayId);
@@ -23,11 +23,11 @@ import android.os.Binder.ProxyTransactListener;
import android.os.IBinder;
import android.os.Looper;
import android.os.RemoteException;
import android.os.Trace;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.tracing.Trace;
import com.android.launcher3.util.SafeCloseable;
import com.android.launcher3.util.TraceHelper;
@@ -20,7 +20,6 @@ import android.animation.AnimatorListenerAdapter
import android.content.Intent
import android.graphics.PointF
import android.os.SystemClock
import android.os.Trace
import android.util.Log
import android.view.Display.DEFAULT_DISPLAY
import android.view.View
@@ -28,6 +27,7 @@ import android.window.TransitionInfo
import androidx.annotation.BinderThread
import androidx.annotation.UiThread
import androidx.annotation.VisibleForTesting
import androidx.tracing.Trace
import com.android.app.tracing.traceSection
import com.android.internal.jank.Cuj
import com.android.launcher3.Flags.enableAltTabKqsOnConnectedDisplays
@@ -18,11 +18,12 @@ package com.android.quickstep;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Looper;
import android.os.Trace;
import android.os.UserManager;
import android.util.Log;
import android.view.ThreadedRenderer;
import androidx.tracing.Trace;
import com.android.launcher3.BuildConfig;
import com.android.launcher3.MainProcessInitializer;
import com.android.quickstep.util.QuickstepProtoLogGroup;
@@ -18,8 +18,8 @@ package com.android.quickstep.util
import android.content.Context
import android.content.Intent
import android.os.Trace
import android.view.Display.DEFAULT_DISPLAY
import androidx.tracing.Trace
import com.android.launcher3.provider.RestoreDbTask
import com.android.launcher3.util.Executors
import com.android.launcher3.util.LockedUserState
@@ -20,12 +20,12 @@ import static com.android.launcher3.LauncherAnimUtils.SCALE_INDEX_UNFOLD_ANIMATI
import static com.android.launcher3.LauncherAnimUtils.WORKSPACE_SCALE_PROPERTY_FACTORY;
import android.annotation.Nullable;
import android.os.Trace;
import android.util.FloatProperty;
import android.util.MathUtils;
import android.view.WindowManager;
import androidx.core.view.OneShotPreDrawListener;
import androidx.tracing.Trace;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener;
@@ -122,15 +122,13 @@ public class LauncherUnfoldAnimationController implements OnDeviceProfileChangeL
}
private void preemptivelyStartAnimationOnNextFrame() {
Trace.asyncTraceBegin(Trace.TRACE_TAG_APP,
TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION, /* cookie= */ 0);
Trace.beginAsyncSection(TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION, /* cookie= */ 0);
// Start the animation (and apply the transformations) in pre-draw listener to make sure
// that the views are laid out as some transformations depend on the view sizes and position
OneShotPreDrawListener.add(mLauncher.getWorkspace(),
() -> {
Trace.asyncTraceEnd(Trace.TRACE_TAG_APP,
TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION, /* cookie= */ 0);
Trace.endAsyncSection(TRACE_WAIT_TO_HANDLE_UNFOLD_TRANSITION, /* cookie= */ 0);
mPreemptiveProgressProvider.preemptivelyStartTransition(
/* initialProgress= */ 0f);
});
@@ -16,8 +16,8 @@
package com.android.quickstep.util.unfold
import android.app.Activity
import android.os.Trace
import android.view.Surface
import androidx.tracing.Trace
import com.android.launcher3.Alarm
import com.android.launcher3.DeviceProfile
import com.android.launcher3.DeviceProfile.OnDeviceProfileChangeListener
@@ -16,8 +16,8 @@
package com.android.quickstep.util.unfold
import android.os.Handler
import android.os.Trace
import android.util.Log
import androidx.tracing.Trace
import com.android.systemui.unfold.UnfoldTransitionProgressProvider
import com.android.systemui.unfold.UnfoldTransitionProgressProvider.TransitionProgressListener
@@ -17,8 +17,6 @@
package com.android.quickstep.views;
import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.os.Trace.traceBegin;
import static android.os.Trace.traceEnd;
import static android.view.Surface.ROTATION_0;
import static android.view.View.MeasureSpec.EXACTLY;
import static android.view.View.MeasureSpec.makeMeasureSpec;
@@ -104,7 +102,6 @@ import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.SystemClock;
import android.os.Trace;
import android.os.UserHandle;
import android.os.VibrationEffect;
import android.text.Layout;
@@ -139,6 +136,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.core.graphics.ColorUtils;
import androidx.dynamicanimation.animation.SpringAnimation;
import androidx.tracing.Trace;
import com.android.internal.jank.Cuj;
import com.android.launcher3.AbstractFloatingView;
@@ -1298,7 +1296,7 @@ public abstract class RecentsView<
@Override
public void onViewRemoved(View child) {
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.onViewRemoved");
Trace.beginSection("RecentsView.onViewRemoved");
super.onViewRemoved(child);
// Clear the task data for the removed child if it was visible unless:
// - It's the initial taskview for entering split screen, we only pretend to dismiss the
@@ -1310,7 +1308,7 @@ public abstract class RecentsView<
clearAndRecycleTaskView((TaskView) child);
}
}
traceEnd(Trace.TRACE_TAG_APP);
Trace.endSection();
}
private void clearAndRecycleTaskView(TaskView taskView) {
@@ -1329,7 +1327,7 @@ public abstract class RecentsView<
@Override
public void onViewAdded(View child) {
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.onViewAdded");
Trace.beginSection("RecentsView.onViewAdded");
super.onViewAdded(child);
if (child instanceof TaskView) {
mTaskViewCount++;
@@ -1340,7 +1338,7 @@ public abstract class RecentsView<
child.setLayoutDirection(mIsRtl ? View.LAYOUT_DIRECTION_LTR : View.LAYOUT_DIRECTION_RTL);
mActionsView.updateHiddenFlags(HIDDEN_NO_TASKS, false);
updateEmptyMessage();
traceEnd(Trace.TRACE_TAG_APP);
Trace.endSection();
}
@Override
@@ -1938,7 +1936,7 @@ public abstract class RecentsView<
}
// Start here to avoid early returns and empty cases which have special logic
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.applyLoadPlan");
Trace.beginSection("RecentsView.applyLoadPlan");
TaskView currentTaskView = getTaskViewAt(mCurrentPage);
int[] currentTaskIds = null;
@@ -1985,9 +1983,9 @@ public abstract class RecentsView<
// TaskIds will no longer be valid after remove and re-add, clearing mTopRowIdSet.
mAnyTaskHasBeenDismissed = false;
mTopRowIdSet.clear();
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.applyLoadPlan.removeAllViews");
Trace.beginSection("RecentsView.applyLoadPlan.removeAllViews");
removeAllViews();
traceEnd(Trace.TRACE_TAG_APP);
Trace.endSection();
// If we are entering Overview as a result of initiating a split from somewhere else
// (e.g. split from Home), we need to make sure the staged app is not drawn as a thumbnail.
int stagedTaskIdToBeRemoved;
@@ -2014,7 +2012,7 @@ public abstract class RecentsView<
// Add `mAddDesktopButton` as the first child.
addView(mAddDesktopButton);
}
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.applyLoadPlan.forLoop");
Trace.beginSection("RecentsView.applyLoadPlan.forLoop");
// Add views as children based on whether it's grouped or single task. Looping through
// taskGroups backwards populates the thumbnail grid from least recent to most recent.
@@ -2034,11 +2032,11 @@ public abstract class RecentsView<
// If we need to remove half of a pair of tasks, force a TaskView with Type.SINGLE
// to be a temporary container for the remaining task.
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.applyLoadPlan.forLoop.createTaskView");
Trace.beginSection("RecentsView.applyLoadPlan.forLoop.createTaskView");
TaskView taskView = getTaskViewFromPool(
containsStagedTask ? TaskViewType.SINGLE : groupTask.taskViewType);
traceEnd(Trace.TRACE_TAG_APP);
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.applyLoadPlan.forLoop.bind");
Trace.endSection();
Trace.beginSection("RecentsView.applyLoadPlan.forLoop.bind");
if (taskView instanceof GroupedTaskView groupedTaskView) {
var splitTask = (SplitTask) groupTask;
groupedTaskView.bind(splitTask.getTopLeftTask(),
@@ -2056,10 +2054,10 @@ public abstract class RecentsView<
taskView.bind(((SingleTask) groupTask).getTask(), mOrientationState,
mTaskOverlayFactory);
}
traceEnd(Trace.TRACE_TAG_APP);
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.applyLoadPlan.forLoop.addTaskView");
Trace.endSection();
Trace.beginSection("RecentsView.applyLoadPlan.forLoop.addTaskView");
addView(taskView);
traceEnd(Trace.TRACE_TAG_APP);
Trace.endSection();
// enables instance filtering if the feature flag for it is on
if (FeatureFlags.ENABLE_MULTI_INSTANCE.get()) {
@@ -2067,7 +2065,7 @@ public abstract class RecentsView<
}
}
// For loop end trace
traceEnd(Trace.TRACE_TAG_APP);
Trace.endSection();
addView(mClearAllButton);
@@ -2087,10 +2085,10 @@ public abstract class RecentsView<
setFocusedTaskViewId(
newFocusedTaskView != null ? newFocusedTaskView.getTaskViewId() : INVALID_TASK_ID);
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.applyLoadPlan.layouts");
Trace.beginSection("RecentsView.applyLoadPlan.layouts");
updateTaskSize();
mUtils.updateChildTaskOrientations();
traceEnd(Trace.TRACE_TAG_APP);
Trace.endSection();
TaskView newRunningTaskView = mUtils.getDesktopTaskViewForDeskId(runningTaskViewDeskId);
if (newRunningTaskView == null) {
@@ -2145,7 +2143,7 @@ public abstract class RecentsView<
});
}
traceBegin(Trace.TRACE_TAG_APP, "RecentsView.applyLoadPlan.cleanupStates");
Trace.beginSection("RecentsView.applyLoadPlan.cleanupStates");
if (mIgnoreResetTaskId != INVALID_TASK_ID &&
getTaskViewByTaskId(mIgnoreResetTaskId) != ignoreResetTaskView) {
// If the taskView mapping is changing, do not preserve the visuals. Since we are
@@ -2160,10 +2158,10 @@ public abstract class RecentsView<
if (isPageScrollsInitialized()) {
onPageScrollsInitialized();
}
traceEnd(Trace.TRACE_TAG_APP);
Trace.endSection();
// applyLoadPlan end trace
traceEnd(Trace.TRACE_TAG_APP);
Trace.endSection();
}
private boolean isModal() {
@@ -45,7 +45,6 @@ import android.content.res.XmlResourceParser;
import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
import android.os.Trace;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
@@ -59,6 +58,7 @@ import androidx.annotation.StyleRes;
import androidx.annotation.VisibleForTesting;
import androidx.annotation.XmlRes;
import androidx.core.content.res.ResourcesCompat;
import androidx.tracing.Trace;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.dagger.ApplicationContext;
+1 -1
View File
@@ -135,7 +135,6 @@ import android.os.Bundle;
import android.os.Parcelable;
import android.os.StrictMode;
import android.os.SystemClock;
import android.os.Trace;
import android.os.UserHandle;
import android.text.TextUtils;
import android.text.method.TextKeyListener;
@@ -168,6 +167,7 @@ import androidx.annotation.RequiresApi;
import androidx.annotation.UiThread;
import androidx.annotation.VisibleForTesting;
import androidx.core.os.BuildCompat;
import androidx.tracing.Trace;
import androidx.window.embedding.RuleController;
import com.android.launcher3.DropTarget.DragObject;
+1 -1
View File
@@ -2,9 +2,9 @@ package com.android.launcher3
import android.annotation.TargetApi
import android.os.Build
import android.os.Trace
import android.util.Log
import androidx.annotation.UiThread
import androidx.tracing.Trace
import com.android.launcher3.Flags.enableSmartspaceRemovalToggle
import com.android.launcher3.LauncherConstants.TraceEvents
import com.android.launcher3.Utilities.SHOULD_SHOW_FIRST_PAGE_WIDGET
@@ -29,12 +29,12 @@ import android.content.Context;
import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
import android.os.Trace;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import androidx.tracing.Trace;
import com.android.launcher3.CellLayout.ContainerType;
import com.android.launcher3.celllayout.CellLayoutLayoutParams;
@@ -45,7 +45,6 @@ import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.Intent;
import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.Log;
@@ -61,6 +60,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.LinearSmoothScroller;
import androidx.recyclerview.widget.RecyclerView;
import androidx.tracing.Trace;
import com.android.app.animation.Interpolators;
import com.android.launcher3.BuildConfig;
@@ -22,9 +22,10 @@ import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
import android.os.Trace;
import android.util.FloatProperty;
import androidx.tracing.Trace;
import com.android.launcher3.anim.AnimatorPlaybackController.Holder;
import java.util.ArrayList;
@@ -109,7 +110,7 @@ public class PendingAnimation extends AnimatedPropertySetter {
if (Trace.isEnabled()) {
super.addOnFrameListener(
animation -> Trace.setCounter(
counterName, (long) (animation.getAnimatedFraction() * 100)));
counterName, (int) (animation.getAnimatedFraction() * 100)));
}
}
@@ -36,7 +36,6 @@ import android.content.pm.ShortcutInfo;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.os.Looper;
import android.os.Trace;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Log;
@@ -47,6 +46,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.core.util.Pair;
import androidx.tracing.Trace;
import com.android.launcher3.Flags;
import com.android.launcher3.InvariantDeviceProfile;
@@ -27,12 +27,12 @@ import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
import static com.android.launcher3.util.Executors.MODEL_EXECUTOR;
import android.content.Context;
import android.os.Trace;
import android.util.Log;
import android.util.Pair;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.tracing.Trace;
import com.android.launcher3.InvariantDeviceProfile;
import com.android.launcher3.LauncherModel;
@@ -48,7 +48,6 @@ import android.content.pm.PackageInstaller.SessionInfo;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.os.Bundle;
import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -59,6 +58,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.annotation.WorkerThread;
import androidx.tracing.Trace;
import com.android.launcher3.Flags;
import com.android.launcher3.InvariantDeviceProfile;
@@ -23,11 +23,11 @@ import static com.android.launcher3.LauncherState.FLAG_NON_INTERACTIVE;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Handler;
import android.os.Trace;
import android.view.LayoutInflater;
import android.view.View;
import androidx.annotation.CallSuper;
import androidx.tracing.Trace;
import com.android.launcher3.BaseActivity;
import com.android.launcher3.LauncherRootView;
@@ -16,9 +16,9 @@
package com.android.launcher3.util;
import android.annotation.SuppressLint;
import android.os.Trace;
import androidx.annotation.MainThread;
import androidx.tracing.Trace;
import kotlin.random.Random;
@@ -22,7 +22,6 @@ import android.graphics.Rect;
import android.os.Handler;
import android.os.Parcelable;
import android.os.SystemClock;
import android.os.Trace;
import android.util.Log;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
@@ -37,6 +36,7 @@ import android.widget.RemoteViews;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.tracing.Trace;
import com.android.launcher3.CheckLongPressHelper;
import com.android.launcher3.Flags;
@@ -55,7 +55,6 @@ import android.os.DeadObjectException;
import android.os.Parcelable;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.Trace;
import android.text.TextUtils;
import android.util.Log;
import android.view.InputDevice;
@@ -78,6 +77,7 @@ import androidx.test.uiautomator.StaleObjectException;
import androidx.test.uiautomator.UiDevice;
import androidx.test.uiautomator.UiObject2;
import androidx.test.uiautomator.Until;
import androidx.tracing.Trace;
import com.android.launcher3.testing.shared.ResourceUtils;
import com.android.launcher3.testing.shared.TestProtocol;