Loading core/api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -10686,6 +10686,7 @@ package android.content { field public static final String PERFORMANCE_HINT_SERVICE = "performance_hint"; field public static final String POWER_SERVICE = "power"; field public static final String PRINT_SERVICE = "print"; field @FlaggedApi("android.os.telemetry_apis_framework_initialization") public static final String PROFILING_SERVICE = "profiling"; field public static final int RECEIVER_EXPORTED = 2; // 0x2 field public static final int RECEIVER_NOT_EXPORTED = 4; // 0x4 field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1 core/api/module-lib-current.txt +13 −0 Original line number Diff line number Diff line Loading @@ -412,6 +412,19 @@ package android.os { field public static final int VPN_UID = 1016; // 0x3f8 } @FlaggedApi("android.os.telemetry_apis_framework_initialization") public class ProfilingServiceManager { method @NonNull public android.os.ProfilingServiceManager.ServiceRegisterer getProfilingServiceRegisterer(); } public static class ProfilingServiceManager.ServiceNotFoundException extends java.lang.Exception { ctor public ProfilingServiceManager.ServiceNotFoundException(@NonNull String); } public static final class ProfilingServiceManager.ServiceRegisterer { method @Nullable public android.os.IBinder get(); method @Nullable public android.os.IBinder getOrThrow() throws android.os.ProfilingServiceManager.ServiceNotFoundException; } public final class ServiceManager { method @NonNull public static String[] getDeclaredInstances(@NonNull String); method public static boolean isDeclared(@NonNull String); Loading core/java/android/content/Context.java +9 −0 Original line number Diff line number Diff line Loading @@ -6552,6 +6552,15 @@ public abstract class Context { @FlaggedApi(android.provider.Flags.FLAG_USER_KEYS) public static final String CONTACT_KEYS_SERVICE = "contact_keys"; /** * Use with {@link #getSystemService(String)} to retrieve an * {@link android.os.ProfilingManager}. * * @see #getSystemService(String) */ @FlaggedApi(android.os.Flags.FLAG_TELEMETRY_APIS_FRAMEWORK_INITIALIZATION) public static final String PROFILING_SERVICE = "profiling"; /** * Determine whether the given permission is allowed for a particular * process and user ID running in the system. Loading core/java/android/os/ProfilingServiceManager.java 0 → 100644 +97 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemApi.Client; /** * Provides a way to register and obtain the system service binder objects managed by the profiling * service. * * <p> Only the profiling mainline module will be able to access an instance of this class. * @hide */ @FlaggedApi(Flags.FLAG_TELEMETRY_APIS_FRAMEWORK_INITIALIZATION) @SystemApi(client = Client.MODULE_LIBRARIES) public class ProfilingServiceManager { /** @hide */ public ProfilingServiceManager() {} /** * A class that exposes the methods to register and obtain each system service. */ public static final class ServiceRegisterer { private final String mServiceName; /** @hide */ public ServiceRegisterer(String serviceName) { mServiceName = serviceName; } /** * Get the system server binding object for ProfilingService. * * <p> This blocks until the service instance is ready. * or a timeout happens, in which case it returns null. */ @Nullable public IBinder get() { return ServiceManager.getService(mServiceName); } /** * Get the system server binding object for a service. * * <p>This blocks until the service instance is ready, * or a timeout happens, in which case it throws {@link ServiceNotFoundException}. */ @Nullable public IBinder getOrThrow() throws ServiceNotFoundException { try { return ServiceManager.getServiceOrThrow(mServiceName); } catch (ServiceManager.ServiceNotFoundException e) { throw new ServiceNotFoundException(mServiceName); } } } /** * See {@link ServiceRegisterer#getOrThrow()} */ public static class ServiceNotFoundException extends ServiceManager.ServiceNotFoundException { /** * Constructor * * @param name the name of the binder service that cannot be found. */ public ServiceNotFoundException(@NonNull String name) { super(name); } } /** * Returns {@link ServiceRegisterer} for the "profiling" service. */ @NonNull public ServiceRegisterer getProfilingServiceRegisterer() { return new ServiceRegisterer("profiling_service"); } } Loading
core/api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -10686,6 +10686,7 @@ package android.content { field public static final String PERFORMANCE_HINT_SERVICE = "performance_hint"; field public static final String POWER_SERVICE = "power"; field public static final String PRINT_SERVICE = "print"; field @FlaggedApi("android.os.telemetry_apis_framework_initialization") public static final String PROFILING_SERVICE = "profiling"; field public static final int RECEIVER_EXPORTED = 2; // 0x2 field public static final int RECEIVER_NOT_EXPORTED = 4; // 0x4 field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1
core/api/module-lib-current.txt +13 −0 Original line number Diff line number Diff line Loading @@ -412,6 +412,19 @@ package android.os { field public static final int VPN_UID = 1016; // 0x3f8 } @FlaggedApi("android.os.telemetry_apis_framework_initialization") public class ProfilingServiceManager { method @NonNull public android.os.ProfilingServiceManager.ServiceRegisterer getProfilingServiceRegisterer(); } public static class ProfilingServiceManager.ServiceNotFoundException extends java.lang.Exception { ctor public ProfilingServiceManager.ServiceNotFoundException(@NonNull String); } public static final class ProfilingServiceManager.ServiceRegisterer { method @Nullable public android.os.IBinder get(); method @Nullable public android.os.IBinder getOrThrow() throws android.os.ProfilingServiceManager.ServiceNotFoundException; } public final class ServiceManager { method @NonNull public static String[] getDeclaredInstances(@NonNull String); method public static boolean isDeclared(@NonNull String); Loading
core/java/android/content/Context.java +9 −0 Original line number Diff line number Diff line Loading @@ -6552,6 +6552,15 @@ public abstract class Context { @FlaggedApi(android.provider.Flags.FLAG_USER_KEYS) public static final String CONTACT_KEYS_SERVICE = "contact_keys"; /** * Use with {@link #getSystemService(String)} to retrieve an * {@link android.os.ProfilingManager}. * * @see #getSystemService(String) */ @FlaggedApi(android.os.Flags.FLAG_TELEMETRY_APIS_FRAMEWORK_INITIALIZATION) public static final String PROFILING_SERVICE = "profiling"; /** * Determine whether the given permission is allowed for a particular * process and user ID running in the system. Loading
core/java/android/os/ProfilingServiceManager.java 0 → 100644 +97 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.os; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemApi.Client; /** * Provides a way to register and obtain the system service binder objects managed by the profiling * service. * * <p> Only the profiling mainline module will be able to access an instance of this class. * @hide */ @FlaggedApi(Flags.FLAG_TELEMETRY_APIS_FRAMEWORK_INITIALIZATION) @SystemApi(client = Client.MODULE_LIBRARIES) public class ProfilingServiceManager { /** @hide */ public ProfilingServiceManager() {} /** * A class that exposes the methods to register and obtain each system service. */ public static final class ServiceRegisterer { private final String mServiceName; /** @hide */ public ServiceRegisterer(String serviceName) { mServiceName = serviceName; } /** * Get the system server binding object for ProfilingService. * * <p> This blocks until the service instance is ready. * or a timeout happens, in which case it returns null. */ @Nullable public IBinder get() { return ServiceManager.getService(mServiceName); } /** * Get the system server binding object for a service. * * <p>This blocks until the service instance is ready, * or a timeout happens, in which case it throws {@link ServiceNotFoundException}. */ @Nullable public IBinder getOrThrow() throws ServiceNotFoundException { try { return ServiceManager.getServiceOrThrow(mServiceName); } catch (ServiceManager.ServiceNotFoundException e) { throw new ServiceNotFoundException(mServiceName); } } } /** * See {@link ServiceRegisterer#getOrThrow()} */ public static class ServiceNotFoundException extends ServiceManager.ServiceNotFoundException { /** * Constructor * * @param name the name of the binder service that cannot be found. */ public ServiceNotFoundException(@NonNull String name) { super(name); } } /** * Returns {@link ServiceRegisterer} for the "profiling" service. */ @NonNull public ServiceRegisterer getProfilingServiceRegisterer() { return new ServiceRegisterer("profiling_service"); } }