- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MTK电话本模块设计
基于MTK电话本模块设计
摘要:对人机界面的设计与实现进行了研究和探讨,分析了MTK平台MMI层软件架构。以电话本模块为例,具体实现了模块的各功能与界面,提出了新的姓名快速查找算法。并根据编写的测试用例进行了软件测试,验证了设计的正确性和可行性。
关键词:MTK平台;MMI;电话本模块;软件测试
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)08-1821-02
随着全球信息化的到来,手机的产生和发展已经影响到社会生活的各个方面。近年来,基于MTK平台的研究成为了各个国产手机开发商研究的热点,本人以最具代表性的电话本为例,展开了深入的分析与研究,提出了新的姓名快速查找算法。
1 MTK平台MMI层架构
MMI(Man Machine Interface,人机接口),就手机领域来说,就是进行移动通信的人与提供移动通信的手机之间交互的界面,包括硬件和软件。MMI的整体框架如图1所示。MMI可以分为以下4个主要部分:(框架层)Frame Work,(应用层)Application,(UI层)UI Layer,MMI与L4层的通信。
2 电话本模块系统分析与设计
依据电话本模块的需求,从功能上分析,电话本需要实现显示电话号码列表、添加新条目、删除已有条目、查找条目、复制条目等基本功能。
在电话本应用目录文件中PhoneBookTypes.h中定义了一个非常重要的结构体:
mmi_phb_context_struct g_phb_cntx;
该结构体中含有很多成员,标识通讯录的一些状态标志,比如全局的矩阵型指针,系统设置,列表的索引等等变量。
在MTK的PhoneBook中,最重要的数据结构为MMI_PHB_ENTRY_BCD_STRUCT PhoneBook[MAX_PB_ENTRIES];其中PhoneBook为存储电话本的数组名,其容量大小为手机内存容量与SIM卡1及SIM卡2容量之和。但应注意的是,PhoneBook中的数组内容并不是连续的。例如,假设手机容量为300,SIM1为200,SIM2为100,则数组内容分配为: PhoneBook [0:299]+SIM1[300:499]+ SIM2[500:599]。SIM卡1的数据是从第301(非数组序号)开始是SIM卡1的电话本内容,顺序是SIM卡1的物理顺序(非拼音顺序)。同理,SIM卡2的数据是从501(非数组序号)个开始的。如果SIM卡1没满,则501到599之间的内容会是空的。如图2所示。
3 高级功能快速查找
系统在进行快速查找时,针对用户输入一个字母的情况进行了优化,也即用g_phb_qsearch_cache[]来保留每个电话条目的首个字的拼音(估计,这是用户用的最多的情况,这样用户输入一个字母进行查找时,会比较快。以下的分析是针对一个字母的快速查找,对于多个的情况是有些不同,但流程是一样的。
系统首先通过调用mmi_phb_quick_search_make_cache()来对g_phb_qsearch_cache[]数组进行赋值,其中,通过mmi_phb_quick_search_convert_cache()来对电话本的每个条目进行汉字到拼音的转换如(张XX→z)并存储到g_phb_qsearch_cache[]的相应位置,这样便完成了汉字到拼音的映射。
下面是如何进行查找的过程:
系统中进行查找的入口函数是mmi_phb_quick_search_find_entry(U8 *keyword), mtk就是顺着该函数来实现快速查找的。
大致的步骤如下:
第一,一个一个的跟待查找的字符比较看是否相等。
第二,如果相等会根据记录位置把g_phb_qsearch_bitmask[]中相应的位,进行置位。后面会详细说明g_phb_qsearch_bitmask[]的含义。
第三,只显示在第二步骤中,被置位的电话本记录的内容。显示函数为mmi_phb_quick_search_list_get_item()。
到此,就实现了电话本的查找与结果实现。下面还要说明几点具体的代码:
其中第一,如果用户输入一个字符进行查找,则在比较过程中,可以直接利用g_phb_qsearch_cache[]来进行匹配查找记录位置,这样速度大大提高,如果是输入几个字符进行查找,则要一个一个把电话本记录的名字转成拼音再进行比较。这种显然没有利用g_phb_qsearch_cache[]快。
第二步骤中,如果第一步骤中找到了与待查找字符相等的记录,则把g_phb_qsearch_bitmask[]对应的位置进行置位。
您可能关注的文档
最近下载
- 哈尔滨工程大学试卷2017级《高等数学下》期末试题.doc VIP
- 广东省广州市2024-2025学年高二上学期语文期末统考试卷(含答案).pdf VIP
- 《T_WD 121-2025 中药材产地仓建设与运营指南》.pdf
- 2025医疗器械注册人委托生产质量协议.docx VIP
- 2025年山东省农村商业银行招聘考试(法律)历年参考题库含答案详解.docx VIP
- 大卫不可以儿童绘本.pdf VIP
- 2025内蒙古交通集团有限公司社会化招聘100人笔试备考题库及答案解析.docx VIP
- 天坛玉格(奏授法职).docx VIP
- 围墙、绿化、室外铺装、景观、给排及消防水、配电、照明、弱电智能化系统施工组织设计210页.docx VIP
- ISO11135-2023年中文翻译解析.docx
原创力文档


文档评论(0)