1

这三个开源库在android中使用非常频繁。我只知道这些库是用来处理字体的。我在想这些图书馆有什么区别,它们是否相互关联?或者他们可以互相替代。

4

1 回答 1

10

OpenType不是一个库,它是“智能”字体的标准,是最广泛使用的高级排版格式和对复杂书写系统的支持。

ICU是一个支持 Unicode 的库,它提供了许多功能,如 Unicode 字符属性、Unicode 双向算法实现、编码转换等。ICU 还提供了一个 OpenType 实现,ICU LayoutEngine,但它不被 Android AFAIK 使用,它也是无人维护的,将在某个时候被 HarfBuzz 取代。

HarfBuzz是一个文本整形库,简而言之,它需要一个字体、一个文本字符串和一些属性(脚本、语言、可选的 OpenType 功能)并返回一系列字体字形 ID,渲染引擎会将它们绘制在屏幕上。它主要是一个 OpenType 实现,但可以支持其他字体技术。它是一个低级库,需要对字体和文本渲染有所了解才能正确使用。

于 2013-04-10T20:40:10.440 回答