还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件新员工培训期计划(开发工程师)MMI修改记录拟制人/修版本号拟制/修改日期更改理由改人佚名V
1.02010-02-01VI.1Kite2010-02-11增加了常用软件安装、编译命令注意事项、实践部分注意点(字串资源添加部分);V
1.2Kite2010-02-26依据yy的建议,增加版本修改部分,并对实践部分继续进行完善和补充,并对文档进行了标准化;前言
1.本计划主要针对新入职的无工作经验的新员工在平台的开发和日常相关工作的培训计划,培训主要MTK关注点为日常工作的基本工作技能培养,有关系统性的深入培养暂不纳入本计划之内,有待工作中持续加强和通过内部专项培训进行提高对于有一定工作经验但无平台经验的新入职员工,指导老师可以根据实际情况,调整培训计划,而MTK不用完全按照本计划表进行但是所作调整也需要另拟培训计划表,作为培训之依据,且培训之最终效果也应达到本计划中所列所有培训目标项对于有一定工作经验,且具平台经验的新入职员工,指导老师可以依据本计划中所列的培训目标项MTK对其进行评估如果能达到我们培训目标的培训项可以略过;如果无法达到的,必须也按照本计划相应培训项的措施进行培养开发环境搭建
2.常用软件安装指南如下是常用软件的安装地址,相关软件的按照指导文档见编译环境常用软件安装指南一段新版本\\
192.
168.
24.40\\SCM doc,重点需要注意的是、和的安装A DS C CCQ序号软件说明下载地址备注1VC比较工具网络下载,或者找周围同事compareShowCategory301Screen图片/动画显示icon的消息框ShowCategory106Screen显不动画106用于显示屏保动囱,166用于显示其它动画,313和166从参数上看无区ShowCategory166Screen图片/动画别ShowCategory313Screen系统时间显示框,附带左右软键ShowCategory1OScreen10只显示系统时间ShowCategory25Screen25显示时间和日期并可以编辑ShowCategory26Screen时间/日期/日历ShowCategory27Screen26只显示日期并可编辑ShowCategory90Screen27只显示时间并可编辑90ShowCategory80Screen80/81公历显示ShowCategory81Screen时间/日期/日历82农历显示ShowCategory82ScreenShowCategory11Screen单选ShowCategory36Screen单选按钮显示框,附带左右软键,36增加/个局亮参数,使用场景不例t青景模式选择ShowCategory12Screen11/12复选按钮显示框,附带左右软键,11显示的列表是静态的,12显示的列表是动态ShowCategory13Screen的ShowCategory50Screen复选50/5151比50多了高亮参数ShowCategory51Screen75停用ShowCategory75Screen九宫格显示ShowCategory14Screen字符选择框,附带左右软键,使用场景示例特殊字符选择ShowCategory22ScreenShowCategory52ScreenShowCategory53ScreenShowCategory54ScreenShowCategory57ScreenShowCategory165Screen Popup《实例训练》勘误
10.MMI.pdf傅贵《实例训练》(共页)中有些是明显的错误,有些是因为软件版本升级而导致,在这里MMI.pdf108一并罗列出来,以便新员工查阅,避免无谓的时间浪费、页代码应为
17215.4I_MENUITEM_CENTER_ICON_Y;UI_MENUITEM_CENTER_ICON_Y、页代码的参数数量不够,这应该是软件版本的不一致
27315.5,^gui_set_fixed_list_menu_item_functions所致,调整后的函数写法如下(gui_set_fixed_list_menu_item_functionsMy_fixed_list_menu,gui_show_fixed_icontext_menuitem,//display menuitemgui_measure_fixed_icontext_menuitem,//measure meuitemgui_highlight_fixed_icontext_menuitem,//highlightgui_remove_highlight_fixed_icontext_menuitem,//remove hilghlighguihide fixedicontext menuitem,//hide meuitemresize_fixed_icontext_menuitem,//resize meuitem;gui_get_fixed_icontext_menuitem_flag建议和两个回调函数进行重写,否gui_show_fixed_icontext_menuitem resize_fixed_icontext_menuitem则代码可能执行会报错;
15.
5、页代码这行代码可以去掉,因为找不到定义的地方;
38618.1disable_menu_shortcut_box_display=1;、页代码这段代码应该放在代码之前,否则执行会出错;
48718418.
3、页代码这段代码
59119.2建议改为gui_measure_stringMMI_fixed_icontext_list_menuitemslindex].item_texts,w,h;;gui_measure_stringUI_string_typeMMI_fixed_icontext_list_menuitems[index].item_te xts,w,h代码为gui_print_bordered_textMMI_fixed_icontext_list_menuitems[index].item_texts;^i!Z^如果不做gui_print_bordered_textUI_string_typeMMI_fixed_icontext_list_menuitems|index].ite m_texts;这些修改,可能在下可以编译通过,环境编译不过;VC tcc、页代码这段代码应该放在中,而不是中,这应
69920.2wgui_categories_enum.h wgui_categories_defs.h该是软件版本的不一致所致;、页代码建议改为
710620.7void DrawCate888PenStatusU8*event_type,mmi_pen_point_struct point,void;相应的页中,DrawCate888PenStatusU8event_type,mmi_pen_point_struct point107的第一个参数相应的改为等事件类型;如果不做这些DrawCate888PenStatus MMI_PEN_EVENT_NONE修改,可能在下可以编译通过,环境编译不过;VC tcc
8、106页代码
20.7gui_printfUI_string_typen%s{%d,%d}”,event_type,point.x,point.y;这一句在VC下可以编译过,但在tcc编译环境下可能编译不过,建议改为gui_printfn%s{%d,%d}n,event_type,point.x,point.yo必要的流程知识,管理技能(建议统一培训)IL解决流程
12.1bug参考《故障和变更管理规程》,老师指导QC1058_CQ_VL0_
20080425.doc版本发希流程
12.2参考《—软件版本发布流程规范》,老师指导QC1059_V
2.0_
20080429.doc项目流程
12.3参考《一软件开发管理程序》,老师指导QB013_V
3.l_
20100108.pdf个人周报,项目周报使用
12.
4.必要的平台知识,工具使用(建议统一培训12D*如何添加资源,华勤添加字串,图片,菜单的方法和流程参考《平台搭建流程和参考规范.》里资源管理部分,老师指导MTK doc*如何添加一个应用参考《编译交流》里相关解答,老师指导*很有用的几个编译命令Checkobj,Checklog,-nofbs,Cfile老师指导*在那里添加修改宏,有哪些添加修改的规则和要求?哪些文件是平台的文件,哪些是项目的?参考《平台搭建流程和参考规范.》里文件框架部分,老师指导MTK doc*新人需要掌握的工具,比如创建分支,删除分支?CC参考《编译交流》里分支管理工具部分,老师指导*新人需要掌握的客户版本工具,比如创建客户版本文件工具工具使用方法介绍,老师指导Hq_make_custoni.pl*编译中有哪些常见的文件关系,从而避免在不该修改的地方进行修改,导致修改无效?copy参考《编译交流》里文件部分,老师指导copy*几个的划分,的基本配置方法vob cs一般为各平台的Custom_vob lib,modis为大部分代码所在PSvob平台存工具和文档vob存字串资源Resource vob.参考学习文档列表13序号文档说明备注1《MMI实例训练.pdf》傅贵所写的经典MTK MMI入门教材
1、百度上可以下载到,共计108页;共有三部分内容
1、Category的使用;2《MTK源码总结.pdf》
2、自定义Category;3History机制可以问周围同事要,共计25页《MTK_MMI函数手3册.pdf》常用函数速查可以问周围同事要,共计179页45\\
192.
168.
24.40\编译环境\ActivePerl-
5.
8.
6.81l-MSWin32-x86-l
22208.msi编译环境5perl参照《SCM常用软件安装指南.doc》注意安6ADS12编译环境\\
192.
168.
24.40\编译环境\ads_
1.2装在C盘\\
192.
168.
24.40\编译环境\ADSL2Patch ToADS12安装完毕之后,把ADS patch下的文7ADS patch编译环境Build848件直接copy到安装目录下覆盖原文件即可直接copy到ARM安装目录,与ADSvl_2目8MinGW编译环境W
192.
168.
24.
40、编译环境\MinGW录并列9msys编译环境W
192.
168.
24.
40、编译环境\msys同上\\
192.
168.
24.40\分布式编译客户端极其补丁Coordinator location,computer选10incredibuild分布式编译\
3.40W
192.
168.
24.100运行key上at文件即可,注意该软件有30天试用期,在试用期到期之前重新运行key.bat,\\
192.
168.
24.40\分布式编译客户端极其补丁则恢复试用期到30天(有个task的补丁,可12分布式编译以每周自动更新时间为30天)incredibuild\
3.40\incredibuild_
3.40patch用于把bin文件下载到手机上,操作参考相工具找周围同事要关文档13Flashtool工具找周围同事要用于调试跟踪故障,操作参考相关文档14Cather工具找周围同事要查看手机文件系统,操作参考相关文档15Meta16ccclearcase版本控制W
192.
168.
24.40\clearcase_setup参照《SCM常用软件安装指南doc》17cqclearquest故障管理\\
192.
168.
24.40\cq参照《SCM常用软件安装指南doc》常用软件安装注意要点、安装请注意导入(在安装目录下),否则编译报错;1ADS license.dat ADSADS、输入注册码后请注意不要回车,而应该点击按钮,否则回车会按照试用()处理;2sourceinsight0K tryit、分布式编译过程中运行可以观察到分布式编译所用到的计算机,其实也是判断分布式编译是3build monitor否有效的一种方法;、如果打开文本文件为后码,请另存一下,然后从新打开;4Ultraedit L上软件版本的查询,请登录会自己使用建立相应项目的代码环境;能够明白中CC configspec CCCC labelbranch、、节点、等概念vob csview能够熟悉中的管理流程b.CQ BUG(此时并不要求对其他功能的熟练使用,后续会有相应安排)CC编译命令学习学习环境的编译命令target学习目标能够区分、等的用法;编译出错如何在new remakeupdate cleanresgen LOG目录下寻找相应信息这里先简单介绍一下几个命令的区别)用于生成文件,它包含以下动作1new-.bin clean+scan+compile+link使用方法一般是这样的make D901gprs/gsm new其中是名称,为了表述方便以为例,是D901cusotmer D901gprs/gsm project)编译一个或多个模块,它包含以下动作2update-scan+compile+linko使用方法是其中make D901gprs/gsm updatemmiresource,mmiresource是具体某个模块的名称,会首先检查文件之间的依赖关系,然后编译发生改变update的代码后面如果不跟模块名称,则是编译所有模块Update)应该是最常用的编译命令,使用方法是3remake-它包含以下动作make D901gprs/gsm remakemmiresource,compile+link学习模拟器的编译PC培训目标学习的编译,能够生成所需要的工作组文件并在该工作组下modis MoDIS.dsw,进行代码调试一般情况下,为了产生文件,需要进行以下几步modis.dswmake D901gprs newmakeD901gprs gen_modismake D901gprs codegen_modis其中命令只需编译大约几分钟,等资源编译成功后,就可以终止,然后执行new gen_modis,生成工作组文件就说明命令执行成功了codegen_modis,modis.dsw,以上简单介绍了比较常用的几个编译命令,具体请参考文档MTK《》该文档详细介绍了指令、MTK_MakeBuild_Design_Customer.pdf,make Gsm.mak、以及每条指令是怎么解析的,告诉开发人员如何新添加一Option.mak Verno_*.bld make.bat,个模块并编译它编译命令注意事项、如果新员工对于编译过程有理解的话(没有这方面的经验,则可以补充一下这方1GNU gcc面的知识,的编译过程本质上也是对编译的应用,只不过做了一定的封装,MTK GNUgcc并借助了语言),将有助于理解的编译过程;perl MTK、不管是编译还是编译,请事先启动分布式编译工具(启动2Modis IncredibuildAgent Tray-icon,之后在电脑屏幕右下角有一个箭头显示)以提高编译效率,否则编译时间会很长;、可以直接关联分布式,这样在上就可以出现分布式的按钮;3VC VC、编译过程中请注意不要改动窗口属性中缓冲区大小的设置,如果设置过大,可能因内4cmd存不足导致编译时间过长(即使是启动了分布式编译);、在环境下运行如果出现头文件找不到的情况,请查看目录下各个子目录下5VC Modis,modis相关文件中有关该头文件的指定路径,并检查该路径下是否存在该头文件;ini、运行看不到界面,请检查目录下的图片文件是否没有解压缩,从6modis MoDIS\MoDIS\Skins而造成图片资源无法加载;、如果运行报有些函数或者变量找不到的链接错误,则在7modis源文件中添加该函数或者变量定义,并重新运行\MoDIS\drv_sim\src\w32_dummy_wndrv.c即可;、分布式编译错误排除定位是哪个模块出现分布式编译错误,对该模块进行操作,重8clean新对该模块单独进行最后再对整个工程;remake,remake、如果只修改了*』文件(即增加了源文件,并且头文件没有被放在新增加的目录下),只9is需要;需要重新remake modisgen_modiso框架文档学习
3.MTK本阶段主要进行相关方面知识的学习,主要是框架理论知识的学习,是比较重MMI MTK要的,为以后深入研究各个模块,解决系统性问题打下了基础学习目标.大致了解软件框架和相关的基本概念1MTK熟悉的概念
2.MTK category框架的学习,机制,概念
3.MMI MMIFrameWork,History screenapp了解的作用
4.nvramMMI frameworkand architecture介绍了的方面的软件架构,这部分主要包括MMI FrameworkMTK MMI事件的处理
1.的管理
2.history
3.OSL Wrapper
4.NVRAM文件系统管理
5.与的交互
6.UI layerLayer4解触摸屏的响应机制
7.这部分的参考文档有a.MMI_framework_and_architecture.pdfb.MMI PlatformSource CodeTraining.pdf如上两篇文档非常重要,要对整个软件架构,尤其是架构要有一个整理的理解,MTK MMI学习注意点、层很多术语和通信协议相关,要求新员工有一定的通信知识基础(没有1L4GSM/GPRS学过的要补补基础课,比如通信原理、计算机网络、无线通信原理等,重点是GSM/GPRS对通信模型、七层协议栈、相关的术语的理解;OSI GSM/GPRS、请参考傅贵写的初学者培训文档,里面有详细的编程示例介绍2MTK-MMI的学习NVRAM为用户提供了数据存取的途径,用户可以以一种统一固定的方式访问中NVRAM NVRAM的数据,而不用关心存储数据的物理设备的介质是还是所以当底层存储数EEPROM FLASH据的介质变化时,用户上层的应用程序接口无需变化这部分主要的学习文档有
1.NVRAM_Configuration_Guide_User
2.pdf
2.FS_NVRAM_Oct2004l.pdf
3.NVRAM_Restore_Factory_Default_SOP.pdf的学习File System这部分包括文件系统的函数,以及其中分为两部分API file manager,filemanagerFMGR为等提供了文件操Engine,FMGR ULFMGR Engineaudio player,Image viewer,camera,profile作的接口这部分的参考文档有
1.Presentation-FileSystem-
20040702.pdf
2.MMI_DD_File_Manager.pdf
3.DD_FRM_GDI.pdf
4.DD_FRM_GDI_ROTATE.pdf
5.Training_GDI.pdf的学习GDI模块研究在学习了以上理论知识之后,可以选择一个模块为入口点,来进行代码研读,以一斑以窥全局,这样可以快速地熟悉代码结构MTK实践部分
4.这部分主要是完成一些简单任务在模拟器上完成某个菜单下增加一个菜单,下有两个子菜单,
1.mytest mytest子菜单用来一个菜单,子菜单用来弹出一个窗口,并且在定时秒后自动退1list2pop30出每个菜单需要使用新的字符串和icon培训目标熟悉各类资源(字串、图片、菜单等)的使用、的概念、概念、keyhandler hilight定时器使用;Timer在现有张墙纸基础上添加一张墙纸,以支持张壁纸,并设置新加墙纸为缺省墙纸,缺省
2.89屏保打开,等待时间为秒30培训目标的概念;项的修改nv nv客户版本制作
3.培训目标与客户版本相关的文件熟悉,熟悉编译过程中这些客户资源相关的文件的来龙去脉;新文件提交,老文件修改;客户版本发布流程CC开发工具使用
5.MTK开发工具主要包括以下几部分,这些工具都是以后工具过程中经常使用的MTK工具-手机的工具,通过把消息和打印到屏幕上,清晰地显示出手机的运行
1.catch tracetrace过过来的可能隐藏一些消息打印到屏幕的消息比较常用的MTK releaseCatcher Catcher函数有具体使用说明请参照PRINTJNFORMATION kal_prompt_trace kal_buffer_traceo《》Catcher_User_Manual_for_Customer_
2007.
11.
30.pdf工具-用于下载文件到手机
2.Flash_tool.exe.bin工具-转化、图片文件为二进制文件,供程序使用
3.File2Array.exe mp3工具可以查看手机文件系统,项等
4.META-META NVRAM新员工技术小结
6.分配具体模块,熟悉该模块,解决该模块相应的故障,并负责研究该模块,写出相应模块的学习文档部门转正评审
7.使用内部答辩会的形式进行转正答辩,由非指导方来对培训效果进行检验学习要点总结
8.MMI模块代码添加步骤模块添加三步骤MTK MMI、源文件的添加添加新的模块一般放在目录下面,最好在1MMI plutommi\mmi\目录下另建子目录,头文件和源代码分开两个子目录存放,目录名称一般遵循如下命名plutommi\mmi规范〈模块名称、<模块名称,;Ainc src、模块的编译配置在目录下建立子目录(该子目录为功能名称和源文件所在目录名对应起来),2make该目录下依据如下命名规范分别创建个文件<功能名称>、<模块名称〉、<模块名称〉、
4.lis.pth.inc<模块名称〉;其中文件中要包含本模块源文件所用到的所有头文件路径位置;文件可以为空,.def incdef如果缺少该文件,的时候可能会出异常;make gen_modis、编译输出在文件中添加模块名和宏开关,关键字为和以确保所3option.mak COMPLISTCOM_DEFS,加代码能够被正确的编译;以上三个步骤回答和解决了如下三个问题、你所编写的代码源文件和头文件在物理存储文件上是如何组织的(逻辑上的组织要看设计文档或者存在1于编码者的脑子里)?、你所编写的源码告知编译器如何编译(告知编译器源码的相对路径、源文件列表和头文件,其实这些配2置文件的内容最终会被作为编译命令的编译参数)?tec、编译的输出是什么(编译的输出是库文件,最终体现在文件的配置中)?3ption.mak字串资源添加步骤、中添加两个宏定义模块名称>、〈模块名称〉用于定义本模块1MMIDataType.h V_BASE_BASE_MAX,资源的起始位和资源数量最大数,我们所有资源的定义都要基于<模块名称>这个宏ID IDID_BASE进行累加;中的理解重点是两个宏定义()MMIDataType.h GET_RESOURCE_BASE id^()这涉及到一个##符号是宏组合的概念;GET_RESOURCE_MAX id,、在〈模块名称,文件定义一个字串的枚举类型,用于罗列所有字串的定义;2defs.h ID、在定义各个字串的内容,要注意和中的要对应;3ref_list_09A.xls defs.h ID、在目录下新建一个源文件模块名称〉4\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI res_v.c,新建一个函数并调用宏添加本模块所用到的所有的字符资源;ADD_APPLICATION_STRING
2、如果<模块名称〉中包含了自定义的头文件,则需要在5res_.c plutommi\Customer\ResGenerator\makefile文件中添加该头文件的路径,以便编译〈模块名称〉文件时能够顺利编译通过,否则下一步的res_.c make命令可能执行报错;该文件是资源装载预编译程序的文件;makefile makefile、执行资源编译命令项目名称,;6make vgprs resgen、如果字串出现部分乱码,请检查在资料列表中资源的位置放的地方是否正确?比如把繁体字体和简体字7体的位置搞反了屏幕模板理解重点对于屏幕模板的理解重点是三个数据结构、组件结构,例子口;该结构定义了一个中包含的控件(一个是1const U8categoryxxx CategoryCategory由多个控件组成的);、组件属性结构数组,例子;该结构定义了一个2const S16coordinate_setxxx[]Category中包含的控件属性;、映射表数组;该映射表通过建立起3dm_category_id_control_set map_struct g_category_controls_map category_id、之间的联系CategoryScreen DMTouchScreen各种函数定义可以参考文档《函数手册》,中所包含的控件ShowCategoryScreen MTK_MMI.pdf Category定义可以在中参阅到CustCoordinates.c定时器的使用使用的定时器函数在中有定义,使用定时器的步骤如下MTK Mmi_frm_timer_gprot.h、的定义,在中定义自己的请注意务必放在之前定义;1timer_id TimerEvents.h timerlD,MAX.TIMERS、定义定时处理函数,在定时时间到达之后进行相关处理,典型的操作包括和;2StopTimer GoBackHistory、在之后;3ShowCategoryScreen StartTimer、注意的时间为毫秒4delay资源编译错误定位资源编译可能出现的错误定位如果出现1Makefile:166:***missing separatordid youmean TABinstead of8spaces.类似的错误,请检查对应的文件,可能是该文件中出现了空格;Stop.”makefile makefile、如果运行时字串显示不出来,请检查一下如下文件是否包含了自己定义的字串2;如果没有,则有可能没有把该文件从目录下\plutommi\Customer\CustResource\ref_list.txt codecopy过来,需要重新执行项目名称,make gprsresgeno其它注意事项、各个版本的入口程序会与傅贵教材可能会有出入,请请教一下自己的师傅所取版本的入口程序位置;
1、能够编译通过,未必能够编译通过,不同的编译器对于语法的规则要求是不同的,比如在2Modis tcc下可能是但在环境下可能就是错误了;就个人感觉来说的编译要比严格的多VC warning,tcc tccVC常用速查
9.Category字号编号类型说明CategoryShowCategory1ScreenShowCategory4Screen列表文本列表显示框,4附带右软键及icon,6附带左右软键,使用场景示例通讯录显示ShowCategory6ScreenShowCategory55ScreenShowCategory56Screen1ShowCategory2Screen提示错误提示框,附带左右软键ShowCategory7Screen提小选择提示框,附带左右软键,使用场景示例删除提示2ShowCategory3Screen列表文本列表显示框,并能显示4列iconShowCategory1ScreenShowCategory4Screen3ShowCategory6Screen列表文本列表显示框,4附带右软键及icon,6附带左右软键,使用场景示例通讯录显示ShowCategory55ScreenShowCategory56Screen文本列表显示框ShowCategory23Screen23能够显示两列文本,icon在左ShowCategory24Screen24附带左右软键,icon在右4ShowCategory73Screen列表73能够显不一列文本,两列icon,并有高亮参数ShowCategory85Screen85附带数字iconShowCategory89Screen89与85的区别在于文本列自动生成列表ShowCategory101ScreenShowCategory5Screen5文本显示框,5附带左右软键,21附带左软键文本显示ShowCategory1ScreenShowCategory9ScreenShowCategory58Screen文本显示框ShowCategory59Screen9的icon在文本下方;ShowCategory60Screen
58、59附带左右软件,icon在文本的左边,58和59只有一个参数的区别,后者参数为指ShowCategory61Screen文本显示针;ShowCategory62Screen
60、61附带标题,标题附带icon,60和61只有一个参数的区别,后者参数为指针
62、63ShowCategory63Screen附带icon并显示在中间,且不全屏显示,62和63只有一个参数的区别,后者参数为指针ShowCategory64Screen
64、65和
62、63只有显示位置的区别
62、63的文本在上icon在下,
64、65反之ShowCategory65ScreenShowCategory69Screen文本显示文本显示框,文本可编辑,69和70只有一个参数的区别,后者参数为指针ShowCategory70ScreenShowCategory28Screen文本显示显示短信内容ShowCategory29ScreenShowCategory34Screen文本显示文本和图片显示,附带左右软键,35增加了一个可编辑的文本框ShowCategory35ScreenShowCategory74Screen文本显示Scroll,用于显示较长的文本,尤其是一屏显示不完的,超出一屏可以滚动显示ShowCategory71Screen进度显示进度显示框,71和72只有一个参数的区别,后者参数为指针ShowCategory72ScreenShowCategory87Screen进度显示进度条显示,88有主辅两个进度条ShowCategory88Screen图片显示框,附带左右软键ShowCategory8Screen8可显示图片和文本ShowCategory67Screen图片/动画67只显示iconShowCategory68Screen68停用图片/动画显示图片ShowCategory142Screen。
个人认证
优秀文档
获得点赞 0