当一个程序第一次启动的时候,Android 会同时启动一个对应的主线程,这个主线程就是 UI 线程,也就是 ActivityThread。UI 线程主要负责处理与 UI 相关的事件,如用户的按键点击、用户触摸屏幕以及屏幕绘图等。系统不会为每个组件单独创建一个线程,在同一个进程里的 UI 组件都会在 UI 线程里实例化,系统对每一个组件的调用都从 UI 线程分发出去。所以,响应系统回调的方法永远都是在 UI 线程里运行,如响应用户动作的 onKeyDown() 的回调。 那为什么选择一个主线程干这些活呢?换个说法,Android 为什么使用单线程模型,它有什么好处?