首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Profiler线程和进程按Id查找

Android Profiler线程和进程按Id查找
EN

Stack Overflow用户
提问于 2021-03-12 19:19:55
回答 1查看 362关注 0票数 0

我正在尝试用Android的一个分析器工具来调试我的应用程序。

我正试图准确地找到我的CameraActivity的主线程位于跟踪文件中的位置。

为了将跟踪作为一个网页打开,我使用perfetto。请看附图

我看到我可以缩小到我的包裹。不过,我正在试图找到实际的主线程。特别是它可能导致内存泄漏的Handler。

为了获得进程Id和线程Id,我将这个Log.d调用放在Handler的handleMessage方法中。

代码语言:javascript
复制
Log.d("iinnside_","see: " + yes.getLooper().getThread().getId() + " string: "+
                    yes.getLooper().getThread().toString());

这个Log.d电话给了我结果:

20815-20815 D/iinnside_:见:2字符串: Threadmain,5,main

据我所理解,基于我的日志输出的信任,数字:20815-20815表示我需要的进程和Id。但是,我无法通过perfetto显示找到它们。此外,根据上面的Log.d调用,主线程有一个id = 2。

在软件工程中必须有一个公共号码分配给应用程序的主线程的最常用的数字是什么?

我如何理解我的应用程序线程上的这些进程Id?

EN

回答 1

Stack Overflow用户

发布于 2021-03-17 23:01:29

在Linux (当然还有Android)上,主线程ID与进程id (PID)相同。在您的示例中,20815既是应用程序的pid,也是主线程ID。

我不知道您的yes对象是如何实例化的,但是它看起来像一个Handler,它与Looper相关联并运行在Looper的线程上,与主线程不同。

顺便说一句,您的屏幕截图显示了系统跟踪的旧UI。如果您在新的跟踪查看器中打开它或将它导入到Android Studio分析器中,您应该能够更清楚地看到线程If。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66605962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档