Android File Descriptor 导致的崩溃

接手的项目有一类较多的异常,读到一篇颇有帮助的文章,简单记录一下

java.lang.RuntimeException
Could not read input channel file descriptors from parcel.

原文地址

Android Memory and File Descriptor Leaks, Diagnosis and Debugging

每一个Android程序默认可以使用1024个 File Descriptor.任何一个IO操作都会使用一个FD,比如socket,open file等等.

一般来说,一个pid打开的FD不会超过100个,使用WebView的也不会超过200个,如果到达了500以上基本都存在泄露问题.Android也直接内置了lsof可以查看进程使用的FD数量

adb shell lsof | grep <your-pid> | wc -l

这个是以前不清楚的,逐一排查后,错误率大幅度下降

    原文作者:郝锡强
    原文地址: https://zhuanlan.zhihu.com/p/30001932
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞