Android 中的 TextView 是整个 framework 中最复杂的控件之一,负责 Android 中显示文本的大部分工作,framwork 中的许多控件也直接或者间接的继承于 TextView,例如 Button,EditText 等。其内部实现也相当复杂,单论代码行数来说,android-22 中 TextView 有足足 9509 行,另外,TextView 中许多操作都非常繁重,例如 setText 操作,需要设置 SpanWatcher,或者需要重现创建一个 SpannableString,还需要根据情况重新创建 Text Layout,这些操作加起来之后令一次 setText 操作非常耗时。为了提升 TextView 的渲染效率,最近研究了一下预渲染的方法,接下来给大家讲解一下原理。