最近开发功能的时候monkey总是能跑出一个bug,
java.lang.RuntimeException: Could not read input channel file descriptors from
parcel.
百思不得其解,认为是系统上面的bug,实时证明自己还是太年轻.现在开始分析一下这个bug产生的原因.
一.为什么会产生句柄泄露?
众所周知Android是linux内核,也就是可以理解linux下,一切资源都是句柄,每个进程都有自己的句柄上限,而超过了这个句柄上线,就会发生异常.一般android的App都是在单个进程下运行的,FD的句柄上限是1024,这个在后面的会说明.一切的重点都在**proc(Processes,虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
)**这个文件夹下的内容.
这里有参考The proc File System
[https://www.centos.org/docs/5/html/5.1/Deployment_Guide/