TypeArray是所有类型数组的构造器的原型,类似于所有数组类型的父类,也有点像泛型。它是没有暴露出构造器的,只能通过使用类似Object.getPrototypeOf(Int8Array.prototype)的方式进行访问。比如获取某种类型的数组:
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.DrawableTextView);
用它获取到某种类型的数组后,会保存原有的数据类型,因此可以获取某个属性组的不同数据类型。
我个人理解是attributeSet也是一个数据,只是数组的数据由不同的类型组成。
例子(本例是Android的xml文件为例):
这里有四个attribute,也就是为DrawableTextView添加了四个属性,为元素添加属性,元素可以理解为某个类型数组(类似于C语言中的结构体和java的复杂数据类型)的对象。使用TypeArray可以保存他的某个对象,从而获取对象里面包含的数据类型和值(这样理解的话就是把DrawableTextView当成了一个复杂数据类型)。
当然,你也可以把attrbute理解为一个复杂数据类型,DrawableTextView理解为复杂数据类型数组。那么元素指的就是一个复杂数据类型数组的对象。