如何加速Android上的文本测量?

时间:2013-11-28 15:51:49

标签: android performance fontmetrics skia

我正在编写一个具有自定义文本布局引擎的应用程序,为此,我必须使用Paint类上的.getTextBounds()方法测量大量(数千)字符串。

确实有效。但在某些设备上,此测量值非常慢。

例如,测量10,000个5-6个字符长的单词

  • 三星Galaxy S2手机(或三星Galaxy系列中的任何其他设备):1.5秒
  • HTC Desire HD:约90秒。
  • 华硕Transformer TF300:约30秒

我已经完成了方法分析,我可以看到测量方法的原生Skia实现在某些设备上需要更长的时间。

我在测量过程中没什么好看的,我的代码看起来像这样:

Paint paint = new Paint();
Rect bounds = new Rect();
paint.setTextSize(22.0f);

for (int i = 0; i < input.length; i++) {
    paint.getTextBounds(input[i], 0, input[i].length(), bounds);
}

测量文字尺寸时有什么值得注意的吗? 制造商是否搞砸了与ROM中字体缓存实现相关的内容?我能做点什么吗?

0 个答案:

没有答案