Android 中文联系人拼音排序及检索补丁3.5版 for Android 2.1/eclair (测试版) 2010年03月11日技术androidSunner 下载地址: http://sunner.cn/pinyin-patch-eclair-beta.zip 由于本人没有装eclair,所以不能测试。有谁在用,就帮忙测试看看吧。 相关文章: 中文排序补丁 for Android 2.1 (Eclair) Android中文联系人拼音排序及检索补丁3.5版 for Android 1.6/donut Android 2.1 (Eclair)的中文联系人拼音检索(App方案) Android中文联系人拼音排序及检索补丁3.5版 for Android 1.5(0623更新) Android 2.1 (Eclair)的中文联系人拼音检索问题
好像有点问题,搜索栏中输入英文,没有联系人结果 在contacts中的分类,貌似乱了,例如c开头的有: jiaxxx knigt_xxxx 中山航服 不知道怎么回事,我的是KiNgxKxlicK AOSP 2.1的1.61 版 http://forum.xda-developers.com/showthread.php?p=5831768&posted=168 回复
这位朋友,可以试试蛋总做的补丁,http://kugou.me/2.1/,我用在king aosp2.1的1.8.1下检索还不行,但排序可以了,所以也不用刷包了,提取出libicudata.so,push进去。 回复
我只用了里边的libicudata.so。很好,联系人拼音首字母分组正确。但是拖动的时候定位有点奇怪。比如拖动时显示的字母变成G的时候,屏幕上显示的第三个才是G开头的,前面两个是F开头的。 至于拨号键盘的拼音智能搜索,据说是eclair里的数据库结构变了。我不清楚,我刷的是BeAsia 1.0,里边已经有拨号键盘拼音智能搜索的解决方案了。 回复
Nexus One,刷过CM。 排序效果不好,而且出了通讯录之外,软件名称也排序了,原来中文名的软件都在最后的现状按拼音排正确了。 但是通讯录里仍旧看不出变化……不知道是不是跟怎么填写通讯录有关,我只填了FN和LN,有的只填了FN,请教按照API排序正确填法如何? 简单列下当前通讯录排序(只列姓FN):先排的是纯字母(B/E/F/J),丁、何、俞、冯、邢、刘、卓 回复
我看了一下日文排序实现的代码,发现整个类是自动化完成的,程序会检索这个顺序表,然后返回顺序值。只要改了这张表,就能实现联系人的拼音排序。不过我对unicode没有什么研究,研究了网上的几种方案以后也没找到完美的解答 (转gb2312只能检索6k字,用pinyin4j又怕社区不接受)。。。。望指教 日文排序的字符顺序表是这样子的: static private final String[] sSections = { ” “, // Sections of SectionIndexer should start with ” ” (some components assume it). “\u3042”, “\u304B”, “\u3055”, “\u305F”, “\u306A”, // a, ka, sa, ta, na “\u306F”, “\u307E”, “\u3084”, “\u3089”, “\u308F”, // ha, ma, ya, ra, wa “\uFF21”, “\uFF22”, “\uFF23”, “\uFF24”, “\uFF25”, // full-width ABCDE “\uFF26”, “\uFF27”, “\uFF28”, “\uFF29”, “\uFF2A”, // full-width FGHIJ “\uFF2B”, “\uFF2C”, “\uFF2D”, “\uFF2E”, “\uFF2F”, // full-width KLMNO “\uFF30”, “\uFF31”, “\uFF32”, “\uFF33”, “\uFF34”, // full-width PQRST “\uFF35”, “\uFF36”, “\uFF37”, “\uFF38”, “\uFF39”, // full-width UVWXY “\uFF40”, // full-width Z “\u6570”, “\u8A18” // alphabets, numbers, symbols }; 回复
这段代码看上去好像是用来在contacts.apk中分段显示联系人的。排序在android中还是依赖于icu4c的库。在最新的代码中已经有针对中文排序进行编译的icu4c了。不太容易解决的是直接输入拼音检索。对日文有一些叫normalization的处理,看上去好像是解决用英文字母检索日文的,但又不确定。 回复
请问”Android中文联系人排序及检索补丁的原理(090819更新)” 里提到的 icu4c 及其中提及的数据库 在2.1中是否已有大变化?如非,我想参照你的方法尝试修改一下, thx! ps:还未看源码。希望完成手头工作后再开始,故偷懒直接问 sunner兄 回复
CyanogenMod 5.0.7 (Eclair) 已经可以在 G1/G2 上用了,性能甚至比 Donut 还好,3D Gallery 也比 KiNgxKxlicK ASOP 流畅很多,推荐升级。然后,请更新这个补丁吧…… 回复
实际上这个版本还只是 experimental 的,不过我们试用觉得已经很稳定了。在官方论坛的 Experimental MOD 版里有原帖。 http://forum.cyanogenmod.com/index.php?/topic/2688-cyanogenmod-5-for-dreammagic-would-you-like-a-pony-v507-test1-04292010/ 回复
好像有点问题,搜索栏中输入英文,没有联系人结果
在contacts中的分类,貌似乱了,例如c开头的有:
jiaxxx
knigt_xxxx
中山航服
不知道怎么回事,我的是KiNgxKxlicK AOSP 2.1的1.61 版
http://forum.xda-developers.com/showthread.php?p=5831768&posted=168
问题这么严重啊。2.1实在没有什么特别吸引我的卖点,不大想升
这位朋友,可以试试蛋总做的补丁,http://kugou.me/2.1/,我用在king aosp2.1的1.8.1下检索还不行,但排序可以了,所以也不用刷包了,提取出libicudata.so,push进去。
我只用了里边的libicudata.so。很好,联系人拼音首字母分组正确。但是拖动的时候定位有点奇怪。比如拖动时显示的字母变成G的时候,屏幕上显示的第三个才是G开头的,前面两个是F开头的。
至于拨号键盘的拼音智能搜索,据说是eclair里的数据库结构变了。我不清楚,我刷的是BeAsia 1.0,里边已经有拨号键盘拼音智能搜索的解决方案了。
数据库结构和检索的索引生成方式都完全变了。现在官方代码里,日文的检索貌似已经可用了(不懂日文,没法测试),顺着这个接口就可以做中文的了。也许中文支持也不远了
Nexus One,刷过CM。
排序效果不好,而且出了通讯录之外,软件名称也排序了,原来中文名的软件都在最后的现状按拼音排正确了。
但是通讯录里仍旧看不出变化……不知道是不是跟怎么填写通讯录有关,我只填了FN和LN,有的只填了FN,请教按照API排序正确填法如何?
简单列下当前通讯录排序(只列姓FN):先排的是纯字母(B/E/F/J),丁、何、俞、冯、邢、刘、卓
我看了一下日文排序实现的代码,发现整个类是自动化完成的,程序会检索这个顺序表,然后返回顺序值。只要改了这张表,就能实现联系人的拼音排序。不过我对unicode没有什么研究,研究了网上的几种方案以后也没找到完美的解答 (转gb2312只能检索6k字,用pinyin4j又怕社区不接受)。。。。望指教
日文排序的字符顺序表是这样子的:
static private final String[] sSections = {
” “, // Sections of SectionIndexer should start with ” ” (some components assume it).
“\u3042”, “\u304B”, “\u3055”, “\u305F”, “\u306A”, // a, ka, sa, ta, na
“\u306F”, “\u307E”, “\u3084”, “\u3089”, “\u308F”, // ha, ma, ya, ra, wa
“\uFF21”, “\uFF22”, “\uFF23”, “\uFF24”, “\uFF25”, // full-width ABCDE
“\uFF26”, “\uFF27”, “\uFF28”, “\uFF29”, “\uFF2A”, // full-width FGHIJ
“\uFF2B”, “\uFF2C”, “\uFF2D”, “\uFF2E”, “\uFF2F”, // full-width KLMNO
“\uFF30”, “\uFF31”, “\uFF32”, “\uFF33”, “\uFF34”, // full-width PQRST
“\uFF35”, “\uFF36”, “\uFF37”, “\uFF38”, “\uFF39”, // full-width UVWXY
“\uFF40”, // full-width Z
“\u6570”, “\u8A18” // alphabets, numbers, symbols
};
这段代码看上去好像是用来在contacts.apk中分段显示联系人的。排序在android中还是依赖于icu4c的库。在最新的代码中已经有针对中文排序进行编译的icu4c了。不太容易解决的是直接输入拼音检索。对日文有一些叫normalization的处理,看上去好像是解决用英文字母检索日文的,但又不确定。
nexus one CM的补丁不知道什么时候能做个?网络上提供的一些排序补丁会让有些使用日语的程序出问题。
联系人简拼检索还是效果不佳。
推荐 supereclair 比较好用 还有一些mod
请问还会更新吗? 在milestone 2.1 下,检索不行。
不会了。变化太大了,而且我个人还用不到。抱歉了
请问”Android中文联系人排序及检索补丁的原理(090819更新)” 里提到的 icu4c 及其中提及的数据库 在2.1中是否已有大变化?如非,我想参照你的方法尝试修改一下, thx!
ps:还未看源码。希望完成手头工作后再开始,故偷懒直接问 sunner兄
完全变了,旧机制被完全抛弃了
相关的排序代码可以开源么?我知道Android是开源系统,但是只是想要修改一下排序应该不需要去熟悉那么大的系统,只需要编译出几个so就好了吧。。。猜想中
不好意思,原来已经有原理解释和代码的博文了,没做搜索就发问,无视我吧。。。。
CyanogenMod 5.0.7 (Eclair) 已经可以在 G1/G2 上用了,性能甚至比 Donut 还好,3D Gallery 也比 KiNgxKxlicK ASOP 流畅很多,推荐升级。然后,请更新这个补丁吧……
啊?有这等好事?看来这个劳动节又要劳动了
Cm官网上没有5.0.7啊。G1那里还是4.2.15.1啊
test2已经出来了,修正了耗电的问题。除了要wipe一下比较麻烦,别的基本都ok了。 耐心等待ing
实际上这个版本还只是 experimental 的,不过我们试用觉得已经很稳定了。在官方论坛的 Experimental MOD 版里有原帖。 http://forum.cyanogenmod.com/index.php?/topic/2688-cyanogenmod-5-for-dreammagic-would-you-like-a-pony-v507-test1-04292010/
等C大刷CM 2.1 嘿嘿