我正在调查一个延迟,发生在我的android应用程序的第一次触摸输入之后。我使用了traceview,追踪到了番石榴Splitter初始化的~2秒延迟。
为什么要这么久?
我是否正确阅读了traceview的输出?
我能怎么办?
这是调用Splitter的行:

String desc = /* loaded from assets */
List<String> descList = Lists.newArrayList(Splitter.on("\n").split(desc));

最佳答案

我认为这可能与Guava Charmatcher static initialization slowhttp://code.google.com/p/guava-libraries/issues/detail?id=1192有关,因为在构造拆分器时需要构造charmatcher。正如您在traceview中看到的,很多时间都花在CharMatcher.<clinit>(clinit=类初始化)上。
你在用什么版本的番石榴?

10-08 03:15