Is there a faster way to decode html characters to a string than Html.fromHtml()?
fromHtml()
does not have a high-performance HTML parser, and I have no idea how quick the toString()
implementation on SpannedString
is. I doubt either were designed for your scenario.
Ideally, the strings are clean before they get to a low-power phone. Either clean them up in the build process (for resources/assets), or clean them up on a server (before you download them).
If, for whatever reason, you absolutely need to clean them up on the device, you can perhaps use the NDK to create a C/C++ library that does the cleaning for you faster.
What about org.apache.commons.lang.StringEscapeUtils's unescapeHtml(). The library is available on Apache site.
(EDIT: June 2019 - See the comments below for updates about the library)
This is an incredibly fast and simple option: Unbescape
It greatly improved our parsing performance which requires every string to be run through a decoder.