【问题标题】:Binder_thr Created in my ApplicationBinder_thr 在我的应用程序中创建
【发布时间】:2018-01-02 16:20:21
【问题描述】:

我试图了解启动应用程序时所有线程运行的内容。 我在 Android Studio 中创建了一个简单的应用程序,没有添加额外的代码行,它只是 android studio 创建的一个简单的 Hello World 应用程序。

当我为我的应用程序 UID 运行 adb shell ps 和 grep 时,我看到以下输出:

C:\Users>adb shell ps -t | findstr u0_a110

u0_a110 3596 655 1593724 66480 SyS_epoll_ 0000000000 S com.example.rhbj36.myapplication

u0_a110 3601 3596 1593724 66480 futex_wait 0000000000 S Jit 线程池

u0_a110 3602 3596 1593724 66480 do_sigtime 0000000000 S 信号捕捉器

u0_a110 3603 3596 1593724 66480 poll_sched 0000000000 S JDWP

u0_a110 3604 3596 1593724 66480 futex_wait 0000000000 S ReferenceQueueD

u0_a110 3605 3596 1593724 66480 futex_wait 0000000000 S FinalizerDaemon

u0_a110 3606 3596 1593724 66480 futex_wait 0000000000 S FinalizerWatchd

u0_a110 3607 3596 1593724 66480 futex_wait 0000000000 S HeapTaskDaemon

u0_a110 3608 3596 1593724 66480 binder_thr 0000000000 S Binder:3596_1

u0_a110 3609 3596 1593724 66480 binder_thr 0000000000 S Binder:3596_2

u0_a110 3610 3596 1593724 66480 futex_wait 0000000000 S 配置文件保存程序

u0_a110 3612 3596 1593724 66480 SyS_epoll_ 0000000000 S RenderThread

u0_a110 3613 3596 1593724 66480 binder_thr 0000000000 S Binder:3596_3

u0_a110 3614 3596 1593724 66480 futex_wait 0000000000 shwuiTask1

有人可以帮助理解这些'Binder:3596_1,2,3'线程是什么吗?以及为什么要创建它们? 对其他线程的解释也会有所帮助。

【问题讨论】:

    标签: android multithreading android-binder


    【解决方案1】:

    Android 应用与其他操作系统中的应用不同。您没有main 入口点(或等效项)。您的应用程序由系统按需启动和停止,由少数来源触发,例如Intent。即使您可能只编写了一个简单的 Hello World 类型的应用程序,框架中还有很多事情可以让您的应用程序启动并显示在屏幕上。

    应用的主 (UI) 线程是执行各种回调的地方(例如 Activity 的 onCreate。)这一切都是由使用 Android 的 IPC 机制 Binder 的框架驱动的。因此,您注意到的 Binder 线程是由框架自动创建的,用于处理不同的请求。其中一些是由生命周期回调(由系统控制)等触发的,另一些可用于处理您自己的自定义 Service API 等。Binder 自动设置一个线程池来处理传入的请求。

    其他线程被系统类似地用于不同的事情,例如:

    • hwuiTask1:用于图形/UI 卸载
    • RenderThread:用于通过 HW composer 渲染应用的 UI 组件
    • JDWP:Java 调试线程,用于附加调试器
    • Profile Saver:用于应用分析

    您通常不需要关心这些线程,因为它们完全由系统管理,并且它们的使用将根据您的应用执行的 Android 版本而有所不同。

    有关 Android 应用进程和线程的更多详细信息,请参阅: https://developer.android.com/guide/components/processes-and-threads.html

    【讨论】:

      猜你喜欢
      • 2013-06-15
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 2021-11-27
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      相关资源
      最近更新 更多