系统稳定性 - 调优3.4 常见Binder相关异常调优总结

Posted 高桐@BILL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统稳定性 - 调优3.4 常见Binder相关异常调优总结相关的知识,希望对你有一定的参考价值。

binder通信是android特有的一种通信机制,常见binder相关的异常包括卡binder对端处理超时,binder本端处理超时(导致主线程block)以及binder耗尽三类问题。无论是应用,Framework,Hal中间件,还是BSP驱动,熟悉这三类binder相关case的调试和分析,能够帮助我们快速地找到和解决问题。

接下来按照问题复现的频率一一介绍和复盘。

一,卡binder对端处理超时

这一类问题在应用程序中比较常见,当然fwk,hal,bsp也会遇到。例如应用程序在某个逻辑中卡在与system_server的binder通信过程中,而system_servier则是卡在binder对端的hal服务处理超时,hal服务的处理超时可能是由于某个外设驱动处理超时,比如读写节点等;这里以一个简单的应用anr的例子来讲述,其分析逻辑都是一样的。

因为anr很常见,系统中可能有很多个发生,那么就需要我们首先从测试工程师提供的问题复现的时间点去认证问题复现时间,通过在event中搜索am_anr找到对应的时间点信息,如下:

 然后再从/data/anr目录或者/data/system/dropbox中找到对应的堆栈信息;如下:

通过上面的信息我

以上是关于系统稳定性 - 调优3.4 常见Binder相关异常调优总结的主要内容,如果未能解决你的问题,请参考以下文章

Android进程间通信机制Binder学习

Binder 详解

为什么 Android 要采用 Binder 作为 IPC 机制?

为什么 Android 要采用 Binder 作为 IPC 机制?

千里马Android Framework实战开发-binder驱动常见binder_open,binder_mmap介绍

千里马Android Framework实战开发-binder驱动常见binder_open,binder_mmap介绍