这三个开源库非常常用于android。我只知道这些库用于处理字体。 我在想这些图书馆之间的区别是什么?它们是否相互关联?或者他们可以互相替代。
答案 0 :(得分:9)
OpenType不是一个库,它是“智能”字体的标准,是高级排版和复杂书写系统支持最广泛使用的格式。
ICU是一个支持Unicode的库,它提供了许多功能,如Unicode字符属性,Unicode双向算法实现,编码转换等。 ICU还提供了一个OpenType实现,ICU LayoutEngine,但Android AFAIK没有使用它,它也没有维护,在某些时候将被HarfBuzz取代。
HarfBuzz是一个文本整形库,简而言之,它需要一个字体,一串文本和一些属性(脚本,语言,可选的OpenType特性)并返回一系列字体字形ID,渲染引擎将在屏幕上绘制它们。它主要是一个OpenType实现,但可以支持其他字体技术。它是一个低级库,需要了解字体和文本呈现才能正确使用。