摘要: 基于Android 6.0的源码剖析, 分析kill进程的实现原理,以及讲讲系统调用(syscall)过程,涉及源码: /framework/base/core/java/android/os/Process.java /framework/base/core/jni/android_util_Pr 阅读全文
posted @ 2017-05-18 22:22 鸭子船长 阅读(5218) 评论(0) 推荐(0)
摘要: 一. 概述 当发生ANR(Application Not Response,对于Java进程可通过kill -3向目标进程发送信号SIGNAL_QUIT, 输出相应的traces信息保存到目录/data/anr/traces.txt;而对于Native进程可通过 debuggerd输出traces信 阅读全文
posted @ 2017-05-18 16:43 鸭子船长 阅读(2794) 评论(0) 推荐(0)
摘要: 一、概述 Android 6.0系统采用的art虚拟机,所有的Java进程都运行在art之上,当应用发生ANR(Application Not Response,其中最终的一个环节便是向目标进程发送信号SIGNAL_QUIT, 传统的linux则是终止程序并输出core;而对于Android进程来说 阅读全文
posted @ 2017-05-18 16:36 鸭子船长 阅读(1130) 评论(0) 推荐(0)
摘要: 一. 概述 当input事件处理得慢就会触发ANR,那ANR内部原理是什么,哪些场景会产生ANR呢。 “工欲善其事必先利其器”,为了理解input ANR原理,前面几篇文章疏通了整个input框架的处理流程,都是为了这篇文章而做铺垫。在正式开始分析ANR触发原理以及触发场景之前,先来回顾一下inpu 阅读全文
posted @ 2017-05-18 15:18 鸭子船长 阅读(9988) 评论(0) 推荐(1)
摘要: 一、概述 ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或 阅读全文
posted @ 2017-05-18 15:05 鸭子船长 阅读(969) 评论(0) 推荐(1)