Android @font-face complex script support

Android uses Skia as a raster rendering engine, and like every other free software graphic program, for text display it uses FreeType2 for blitting pixels to screens.

Back in 2007 the Skia sourcecode was accidentally published, and “kickass type rendering” was one of the features mentioned. But I couldn’t find much more information about how Android text rendering work, other than it uses Freetype through Skia. So I posted a vague query on the skia-discuss mailing list, and was happy to get a great reply from the project lead, Mike Reed:

More android fonts would be excellent. Currently android does not enable the truetype instructions in freetype, as there are patent issues around that. Fortunately, the autohinter has done a good job for us when used a UI sizes. The browser is a special case, as it needs to have fractional positioning (for zoom). In that case we don’t hint in the horizontal direction at all (but do some light hinting in Y). This lets us draw the glyphs at subpixel positions in X. Complex script support is coming. We are looking at several libraries (pango, ICU layout, etc.). We intend to take advantage of opentype tables for shaping and cool ligature formation.

Which is excellent to know, especially about complex script support :-)

I read a nice interview with Mike a few months ago when I was researching Android, but I now can’t find it; it was quite funny though, he projected the Google vibe quite well, it was something like “Q, what are you working on next? A, Just simple engineering.” Shame I can’t find it now, but he is “a device software guru” and worked on the ill-fated QuickDraw GX and on font technology at Apple.

(This blog post explains to Android application developers how to use random fonts installed in an Android system.)

Creative Commons License
The Android @font-face complex script support by David Crossland, except the quotations and unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.


Leave a Reply