Android 9上有了binder_calls_stats服务,提供了java层的binder统计,
Android中的Binder Call Stats(Binder调用统计)是一项用于监控和记录Android系统中Binder通信的统计信息的功能。Binder是Android中的一种进程间通信(IPC)机制,用于在不同的进程之间传递数据和调用方法。
Binder Call Stats提供了有关Binder调用的性能和统计数据,帮助开发人员分析和优化系统的性能。它可以提供以下信息:
-
Binder调用次数:统计Binder方法被调用的次数,包括进程间的远程调用和本地调用。
-
Binder调用耗时:记录Binder方法的执行时间,包括调用传输数据的时间和远程进程执行方法的时间。
-
Binder调用堆栈跟踪:跟踪Binder调用的堆栈信息,可以帮助开发人员确定调用路径和定位性能瓶颈。
-
Binder调用的进程和线程信息:记录Binder调用发生的进程和线程信息,有助于分析系统中不同组件之间的通信情况。
通过分析Binder Call Stats,开发人员可以识别性能瓶颈、优化IPC通信,改进应用程序的响应性能和资源利用率。
要收集Binder Call Stats,开发人员可以使用Android系统提供的工具和API,例如使用adb shell命令进行监测,或者使用Trace类和Debug类提供的方法进行手动埋点和记录统计数据。
需要注意的是,Binder Call Stats对于普通应用程序开发人员来说可能并不常用,主要用于系统级开发和性能调优。
public class BinderCallsStatsService extends Binder {
30
31 private static final String TAG = "BinderCallsStatsService";
32
33 private static final String PERSIST_SYS_BINDER_CALLS_DETAILED_TRACKING
34 = "persist.sys.binder_calls_detailed_tracking";
35
36 public static void start() {
37 BinderCallsStatsService service = new BinderCallsStatsService();
38 ServiceManager.addService("binder_calls_stats", service);
39 boolean detailedTrackingEnabled = SystemProperties.getBoolean(
40 PERSIST_SYS_BINDER_CALLS_DETAILED_TRACKING, false);
41
42 if (detailedTrackingEnabled) {
43 Slog.i(TAG, "Enabled CPU usage tracking for binder calls. Controlled by "
44 + PERSIST_SYS_BINDER_CALLS

本文介绍了Android9引入的binder_calls_stats服务,用于监控和记录Binder通信的统计信息,帮助开发者分析性能瓶颈和优化进程间通信。通过收集和分析这些数据,可以提升应用程序响应速度和资源利用效率。
最低0.47元/天 解锁文章
2191

被折叠的 条评论
为什么被折叠?



