转载请标注:
披萨大叔的博客 http://blog.csdn.net/qq_27258799/article/details/51372052
如果您觉得这篇文章对您有帮助,请点下文章最下面的赞~
楼主最近在项目中使用了网上的一个带首字母索引的ListView,发现每次ListView数据初始化的速度奇慢,如果是调试模式下,简直是等到天荒地老。于是用Traceview分析了下中间的过程,不会用Traceview的,传送门在此:Android性能分析工具Traceview的使用
使用pinyin4j时,它内部要先初始化,第一次初始化大约花费2秒。然后就去网上搜了搜有没有替代方案,最后发现了TinyPinYin库,一共只有5个文件:
我们对比下这两个库:
库 | 大小 | 功能 | 初始化速度 |
---|---|---|---|
pinyin4j | 200Kb左右 | 处理声调、方言、多音字 | ~2000ms |
TinyPinyin | 90K左右 | 生成的拼音不包含声调,也不处理多音字,默认一个汉字对应一个拼音 | 无需初始化,稳定调用 |
而楼主的情况,只是简单的取首字母进行排序,所以很明显,用TinyPinyin更好,最后使用的效果也和预期一致。
总结:如果我们只是用作首字母排序,那用pinyin4j简直是用大炮轰蚊子,TinyPinyin才是更好的选择。
最后放上楼主用Eclipse打好的jar包:
TinyPinyin.jar