重点
『system进程在通过ApplicationThread对象,和app进程通信的时候发现数据过大,从而抛出了异常。
但是system进程时何等的重要,肯定是不能崩溃的,所以system进程捕获了异常,但是也不能不通知app进程呀,不然app进程岂不是没有反应了,于是乎直接kill掉了app进程。
到这里,我们基本弄清楚这次闪退没有堆栈的原因了,因为实际上不是crash,而是system进程在跟我们交互过程中发生了异常,然后把我们kill掉了』
app-》binder-》system serve
app-》binder 超1M-8k,报错且能 catch 异常
system-》binder 超 (1M-8k)/2-3k,最大安全值,超过直接 kill ,catch 不住异常
『在binder驱动中,除了记录Binder事务的缓冲区空间,还会记录一个异步事务(ONE_WAY)的空间,这个空间为前者的1/2』