软件部新员工培训期计划(MMI开发工程师)
2022-06-15
来源:知库网
软件新员工培训期计划(MMI开发工程师) 修改记录 版本号 V1.0 V1.1 V1.2 拟制人/修改人 佚名 Kite Kite 拟制/修改日期 2010-02-01 2010-02-11 2010-02-26 增加了常用软件安装、编译命令注意事项、实践部分注意点(字串资源添加部分); 依据yy的建议,增加版本修改部分,并对实践部分继续进行完善和补充,并对文档进行了标准化; 更改理由 1. 前言 本计划主要针对新入职的无工作经验的新员工在MTK平台的开发和日常相关工作的培训计划,培训主要关注点为日常工作的基本工作技能培养,有关系统性的深入培养暂不纳入本计划之内,有待工作中持续加强和通过内部专项培训进行提高。 对于有一定工作经验但无MTK平台经验的新入职员工,指导老师可以根据实际情况,调整培训计划,而不用完全按照本计划表进行。但是所作调整也需要另拟培训计划表,作为培训之依据,且培训之最终效果也应达到本计划中所列所有培训目标项。 对于有一定工作经验,且具MTK平台经验的新入职员工,指导老师可以依据本计划中所列的培训目标项对其进行评估。如果能达到我们培训目标的培训项可以略过;如果无法达到的,必须也按照本计划相应培训项的措施进行培养。 2. 开发环境搭建 常用软件安装指南 如下是常用软件的安装地址,相关软件的按照指导文档见:\\\\192.168.24.40\\编译环境\\SCM常用软件安装指南_最新版本.doc,重点需要注意的是ADS、CC和CQ的安装。 序号 1 2 3 4 软件 VC sourceinsight ultraedit beyond compare 说明 代码浏览器 文本编辑器 比较工具 下载地址 ftp://192.168.24.8/soft/MStudio98/ 网络下载,或者找周围同事 网络下载,或者找周围同事 网络下载,或者找周围同事 备注 \\\\192.168.24.40\\编译环境\\ActivePerl-5.8.6.811-MSWin32-x86-122208.5 6 perl ADS12 编译环境 编译环境 msi \\\\192.168.24.40\\编译环境\\ads_1.2 \\\\192.168.24.40\\编译环境\\ADS1.2 Patch To 7 8 9 10 ADS patch MinGW msys incredibuild 编译环境 编译环境 编译环境 分布式编译 Build 848 \\\\192.168.24.40\\编译环境\\MinGW \\\\192.168.24.40\\编译环境\\msys \\\\192.168.24.40\\分布式编译客户端极其补丁\\3.40 参照《SCM常用软件安装指南.doc》 注意安装在C盘 ADS12安装完毕之后,把ADS patch下的文件直接copy到安装目录下覆盖原文件即可 直接copy到ARM安装目录,与ADSv1_2目录并列 同上 Coordinator location, computer选择:192.168.24.100 运行key.bat文件即可,注意该软件有30天试用期,在试用期到期之前重新运行\\\\192.168.24.40\\分布式编译客户端极其补丁12 13 14 15 16 17 incredibuild Flashtool Cather Meta cc(clearcase) cq(clearquest) 分布式编译 工具 工具 工具 版本控制 故障管理 \\3.40\\incredibuild_3.40patch 找周围同事要 找周围同事要 找周围同事要 \\\\192.168.24.40\\clearcase_setup \\\\192.168.24.40\\cq key.bat,则恢复试用期到30天(有个task的补丁,可以每周自动更新时间为30天) 用于把bin文件下载到手机上,操作参考相关文档 用于调试跟踪故障,操作参考相关文档 查看手机文件系统,操作参考相关文档 参照《SCM常用软件安装指南.doc》 参照《SCM常用软件安装指南.doc》 常用软件安装注意要点 1、 ADS安装请注意导入license.dat(在ADS安装目录下),否则ADS编译报错; 2、 sourceinsight输入注册码后请注意不要回车,而应该点击OK按钮,否则回车会按照试用(try it)处理; 3、 分布式编译过程中运行build monitor可以观察到分布式编译所用到的计算机,其实也是判断分布式编译是否有效的一种方法; 4、 Ultraedit如果打开文本文件为乱码,请另存一下,然后从新打开; 5、 CC上软件版本config spec的查询,请登录http://192.168.24.15/cqweb/login(可以问技术管理部申请账号),选择版本管理系统登录进入,公共查询->版本跟踪->all_project,查找并选择项目名称,再选择“FOR自动编译”即可。 3. 基本技能学习 版本控制工具学习 关于CC、CQ使用的简单培训 学习目标: a. 会自己使用CC建立相应项目的代码环境;能够明白CC中label、branch、 vob、cs、节点、view等概念。 b. 能够熟悉CQ中BUG的管理流程。 (此时并不要求对CC其他功能的熟练使用,后续会有相应安排) 编译命令学习 学习target环境的编译命令 学习目标:能够区分new、remake、update、clean、resgen等的用法;编译出错如何在LOG目录下寻找相应信息。这里先简单介绍一下几个命令的区别: 1) new – 用于生成.bin文件,它包含以下动作clean + scan + compile + link 使用方法一般是这样的:make D901 gprs/gsm new 其中D901是cusotmer名称,为了表述方便以D901为例,gprs/gsm是project 2) update – 编译一个或多个模块,它包含以下动作:scan + compile + link。 使用方法是make D901 gprs/gsm update mmiresource,其中mmiresource 是具体某个模块的名称,update会首先检查文件之间的依赖关系,然后编译发生改变的代码。Update后面如果不跟模块名称,则是编译所有模块。 3) remake – 应该是最常用的编译命令,使用方法是: make D901 gprs/gsm remake mmiresource,它包含以下动作:compile + link 学习PC模拟器的编译 培训目标:学习modis的编译,能够生成所需要的工作组文件MoDIS.dsw,并在该工作组下进行代码调试。 一般情况下,为了产生modis.dsw文件,需要进行以下几步: make D901 gprs new make D901 gprs gen_modis make D901 gprs codegen_modis 其中命令new只需编译大约几分钟,等资源编译成功后,就可以终止,然后执行gen_modis,codegen_modis,生成工作组文件modis.dsw,就说明命令执行成功了。 以上简单介绍了比较常用的几个编译命令,具体请参考MTK文档《MTK_MakeBuild_Design_Customer.pdf》,该文档详细介绍了make指令、Gsm.mak、Option.mak、Verno_*.bld、make.bat,以及每条指令是怎么解析的,告诉开发人员如何新添加一个模块并编译它。 编译命令注意事项 1、 如果新员工对于GNU gcc编译过程有理解的话(没有这方面的经验,则可以补充一下这方面的知识,MTK的编译过程本质上也是对GNU gcc编译的应用,只不过做了一定的封装,并借助了perl语言),将有助于理解MTK的编译过程; 2、 不管是编译还是Modis编译,请事先启动分布式编译工具(Incredibuild Agent Tray-icon,启动之后在电脑屏幕右下角有一个箭头显示)以提高编译效率,否则编译时间会很长; 3、 VC可以直接关联分布式,这样在VC上就可以出现分布式的按钮; 4、 编译过程中请注意不要改动cmd窗口属性中缓冲区大小的设置,如果设置过大,可能因内存不足导致编译时间过长(即使是启动了分布式编译); 5、 在VC环境下运行Modis,如果出现头文件找不到的情况,请查看modis目录下各个子目录下相关ini文件中有关该头文件的指定路径,并检查该路径下是否存在该头文件; 6、 运行modis看不到界面,请检查MoDIS\\MoDIS\\Skins目录下的图片文件是否没有解压缩,从而造成图片资源无法加载; 7、 如果modis运行报有些函数或者变量找不到的链接错误,则在\\MoDIS\\drv_sim\\src\\w32_dummy_wndrv.c源文件中添加该函数或者变量定义,并重新运行即可; 8、 分布式编译错误排除:定位是哪个模块出现分布式编译错误,对该模块进行clean操作,重新对该模块单独进行remake,最后再对整个工程remake; 9、 如果只修改了*.lis文件(即增加了源文件,并且头文件没有被放在新增加的目录下),只需要remake;modis需要重新gen_modis。 4. MTK框架文档学习 本阶段主要进行MMI相关方面知识的学习,主要是MTK框架理论知识的学习,是比较重要的,为以后深入研究各个模块,解决系统性问题打下了基础。 学习目标:1. 大致了解MTK软件框架和相关的基本概念 2. 熟悉MTK的category概念 3. MMI框架的学习,MMI FrameWork,History机制,screen、app概念 4. 了解nvram的作用 MMI framework and architecture MMI Framework介绍了MTK的MMI方面的软件架构,这部分主要包括: 1. 事件的处理 2. 3. 4. 5. 6. 7. history的管理 OSL Wrapper NVRAM 文件系统管理 UI layer与Layer 4的交互 解触摸屏的响应机制 这部分的参考文档有: a. MMI_framework_and_architecture.pdf b. MMI Platform Source Code Training.pdf 如上两篇文档非常重要,要对整个MTK软件架构,尤其是MMI架构要有一个整理的理解,学习注意点: 1、 L4层很多术语和GSM/GPRS通信协议相关,要求新员工有一定的通信知识基础(没有学过的要补补基础课,比如通信原理、计算机网络、GSM/GPRS无线通信原理等,重点是对通信模型、OSI七层协议栈、GSM/GPRS相关的术语的理解); 2、 请参考傅贵写的MTK-MMI初学者培训文档,里面有详细的编程示例介绍。 NVRAM的学习 NVRAM为用户提供了数据存取的途径,用户可以以一种统一固定的方式访问NVRAM中的数据,而不用关心存储数据的物理设备的介质是EEPROM还是FLASH。所以当底层存储数据的介质变化时,用户上层的应用程序接口无需变化。 这部分主要的学习文档有: 1. NVRAM_Configuration_Guide_User(2).pdf 2. FS_NVRAM_Oct2004(1).pdf 3. NVRAM_Restore_Factory_Default_SOP.pdf File System的学习 这部分包括文件系统的API函数,以及file manager,其中file manager分为两部分:FMGR Engine,FMGR UI,FMGR Engine为audio 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代码结构。 5. 实践部分 这部分主要是完成一些简单任务: 1. 在模拟器上完成某个菜单下增加一个mytest菜单,mytest下有两个子菜单, 子菜单1用来一个list菜单,子菜单2用来弹出一个pop窗口,并且在定时30秒后自动退出。每个菜单需要使用新的字符串和icon。 培训目标:熟悉各类资源(字串、图片、菜单等)的使用、keyhandler的概念、hilight概念、定时器Timer使用; 2. 在现有8张墙纸基础上添加一张墙纸,以支持9张壁纸,并设置新加墙纸为缺省墙纸, 缺省屏保打开,等待时间为30秒 培训目标:nv的概念;nv项的修改 3. 客户版本制作 培训目标:与客户版本相关的文件熟悉,熟悉编译过程中这些客户资源相关的文件的来龙去脉;CC新文件提交,老文件修改;客户版本发布流程。 6. MTK开发工具使用 MTK开发工具主要包括以下几部分,这些工具都是以后工具过程中经常使用的: catch工具 – 手机的trace工具,通过把消息和trace打印到屏幕上,清晰地显示出手机的运行过。MTK release过来的Catcher可能隐藏一些消息。Catcher打印到屏幕的消息比较常用的函数有:PRINT_INFORMATION、kal_prompt_trace、kal_buffer_trace。具体使用说明请参照《Catcher_User_Manual_for_Customer_2007.11.30.pdf》。 Flash_tool.exe工具 – 用于下载.bin文件到手机。 File2Array.exe工具 – 转化mp3、图片文件为二进制文件,供程序使用。 META工具 – META可以查看手机文件系统,NVRAM项等。 1. 2. 3. 4. 7. 新员工技术小结 分配具体模块,熟悉该模块,解决该模块相应的故障,并负责研究该模块,写出相应模块的学习文档。 8. 部门转正评审 使用内部答辩会的形式进行转正答辩,由非指导方来对培训效果进行检验。 9. MMI学习要点总结 模块代码添加步骤 MTK MMI模块添加三步骤 1、 源文件的添加:添加新的MMI模块一般放在plutommi\\mmi\\目录下面,最好在plutommi\\mmi目录下另建子目录,头文件和源代码分开两个子目录存放,目录名称一般遵循如下命名规范:<模块名称>inc、<模块名称>src; 2、 模块的编译配置:在make目录下建立子目录(该子目录为功能名称和源文件所在目录名对应起来),该目录下依据如下命名规范分别创建4个文件:<功能名称>.lis、<模块名称>.pth、<模块名称>.inc、<模块名称>.def;其中inc文件中要包含本模块源文件所用到的所有头文件路径位置;def文件可以为空,如果缺少该文件,make gen_modis的时候可能会出异常; 3、 编译输出:在option.mak文件中添加模块名和宏开关,关键字为:COMPLIST和COM_DEFS,以确保所加代码能够被正确的编译; 以上三个步骤回答和解决了如下三个问题: 1、 你所编写的代码源文件和头文件在物理存储文件上是如何组织的(逻辑上的组织要看设计文档或者存在于编码者的脑子里)? 2、 你所编写的源码告知编译器如何编译(告知编译器源码的相对路径、源文件列表和头文件,其实这些配置文件的内容最终会被作为tcc编译命令的编译参数)? 3、 编译的输出是什么(编译的输出是库文件,最终体现在option.mak文件的配置中)? 字串资源添加步骤 1、 MMIDataType.h中添加两个宏定义:<模块名称>_BASE、<模块名称>_BASE_MAX,用于定义本模块资源ID的起始位和资源ID数量最大数,我们所有资源ID的定义都要基于<模块名称>_BASE这个宏进行累加; MMIDataType.h中的理解重点是两个宏定义:GET_RESOURCE_BASE(id)和GET_RESOURCE_MAX(id),这涉及到一 个##符号是宏组合的概念; 2、 在<模块名称>defs.h文件定义一个字串的枚举类型,用于罗列所有字串ID的定义; 3、 在ref_list_09A.xls定义各个字串的内容,要注意和defs.h中的ID要对应; 4、 在\\plutommi\\Customer\\CustResource\\PLUTO_MMI\\Res_MMI目录下新建一个源文件res_<模块名称>.c,新建一个函数并调用ADD_APPLICATION_STRING2宏添加本模块所用到的所有的字符资源; 5、 如果res_<模块名称>.c中包含了自定义的头文件,则需要在plutommi\\Customer\\ResGenerator\\makefile文件中添加该头文件的路径,以便编译res_<模块名称>.c文件时能够顺利编译通过,否则下一步的make命令可能执行报错;该makefile文件是资源装载预编译程序的makefile文件; 6、 执行资源编译命令:make <项目名称> gprs resgen; 7、 如果字串出现部分乱码,请检查在资料列表中资源的位置放的地方是否正确?比如把繁体字体和简体字体的位置搞反了。 屏幕模板理解重点 对于屏幕模板的理解重点是三个数据结构: 1、 组件结构,例子:const U8 categoryxxx[];该结构定义了一个Category中包含的控件(一个Category是由多个控件组成的); 2、 组件属性结构数组,例子:const S16 coordinate_setxxx[];该结构定义了一个Category中包含的控件属性; 3、 映射表(数组):dm_category_id_control_set map_struct g_category_controls_map;该映射表通过category_id建立起CategoryScreen、DM、TouchScreen之间的联系。 各种ShowCategoryScreen函数定义可以参考文档《MTK_MMI函数手册.pdf》,Category中所包含的控件定义可以在CustCoordinates.c中参阅到。 定时器的使用 MTK使用的定时器函数在Mmi_frm_timer_gprot.h中有定义,使用定时器的步骤如下: 1、 timer_id的定义,在TimerEvents.h中定义自己的timerID,请注意务必放在MAX_TIMERS之前定义; 2、 定义定时处理函数,在定时时间到达之后进行相关处理,典型的操作包括:StopTimer和GoBackHistory; 3、 在ShowCategoryScreen之后StartTimer; 4、 注意delay的时间为毫秒。 资源编译错误定位 资源编译可能出现的错误定位 1、 如果出现“Makefile:166: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.”类似的错误,请检查对应的makefile文件,可能是该makefile文件中出现了空 格; 2、 如果运行时字串显示不出来,请检查一下如下文件是否包含了自己定义的字串\\plutommi\\Customer\\CustResource\\ref_list.txt;如果没有,则有可能没有把该文件从code目录下copy过来,需要重新执行make <项目名称> gprs resgen。 其它注意事项 1、 各个版本的入口程序会与傅贵教材可能会有出入,请请教一下自己的师傅所取版本的入口程序位置; 2、 Modis能够编译通过,tcc未必能够编译通过,不同的编译器对于语法的规则要求是不同的,比如在VC下可能是warning,但在tcc环境下可能就是错误了;就个人感觉来说tcc的编译要比vc严格的多。 10. 常用Category速查 序号 Category编号 ShowCategory1Screen ShowCategory4Screen 1 ShowCategory6Screen ShowCategory55Screen ShowCategory56Screen 1 2 ShowCategory2Screen ShowCategory7Screen ShowCategory3Screen ShowCategory1Screen ShowCategory4Screen 3 ShowCategory6Screen ShowCategory55Screen ShowCategory56Screen ShowCategory23Screen ShowCategory24Screen 4 ShowCategory73Screen ShowCategory85Screen ShowCategory89Screen 5 ShowCategory101Screen ShowCategory5Screen ShowCategory21Screen ShowCategory9Screen ShowCategory58Screen ShowCategory59Screen ShowCategory60Screen 文本显示 列表 文本显示 列表 文本列表显示框 23:能够显示两列文本,icon在左 24:附带左右软键,icon在右 73:能够显示一列文本,两列icon,并有高亮参数 85:附带数字icon 89:与85的区别在于文本列自动生成 文本显示框,5附带左右软键,21附带左软键 文本显示框: 9的icon在文本下方; 58、59附带左右软件,icon在文本的左边,58和59只有一个参数的区别,后者参数为指针; 列表 文本列表显示框,4附带右软键及icon,6附带左右软键,使用场景示例:通讯录显示 提示 提示 列表 错误提示框,附带左右软键 选择提示框,附带左右软键,使用场景示例:删除提示 文本列表显示框,并能显示4列icon 列表 文本列表显示框,4附带右软键及icon,6附带左右软键,使用场景示例:通讯录显示 类型 说明 ShowCategory61Screen ShowCategory62Screen ShowCategory63Screen ShowCategory64Screen ShowCategory65Screen ShowCategory69Screen ShowCategory70Screen ShowCategory28Screen ShowCategory29Screen ShowCategory34Screen ShowCategory35Screen ShowCategory74Screen ShowCategory71Screen ShowCategory72Screen ShowCategory87Screen ShowCategory88Screen ShowCategory8Screen ShowCategory67Screen ShowCategory68Screen ShowCategory142Screen ShowCategory301Screen ShowCategory106Screen ShowCategory166Screen ShowCategory313Screen ShowCategory10Screen ShowCategory25Screen ShowCategory26Screen ShowCategory27Screen ShowCategory90Screen ShowCategory80Screen ShowCategory81Screen ShowCategory82Screen ShowCategory11Screen ShowCategory36Screen ShowCategory12Screen ShowCategory13Screen ShowCategory50Screen ShowCategory51Screen ShowCategory75Screen ShowCategory14Screen ShowCategory22Screen ShowCategory52Screen 复选 单选 时间/日期/日历 时间/日期/日历 图片/动画 图片/动画 图片/动画 图片/动画 文本显示 文本显示框,文本可编辑,69和70只有一个参数的区别,后者参数为指针 60、61附带标题,标题附带icon,60和61只有一个参数的区别,后者参数为指针 62、63附带icon并显示在中间,且不全屏显示,62和63只有一个参数的区别,后者参数为指针 64、65和62、63只有显示位置的区别:62、63的文本在上icon在下,64、65反之 文本显示 显示短信内容 文本显示 文本显示 进度显示 文本和图片显示,附带左右软键,35增加了一个可编辑的文本框 Scroll,用于显示较长的文本,尤其是一屏显示不完的,超出一屏可以滚动显示 进度显示框,71和72只有一个参数的区别,后者参数为指针 进度显示 进度条显示,88有主辅两个进度条 图片显示框,附带左右软键 8:可显示图片和文本 67:只显示icon 68:停用 显示图片 显示icon的消息框 显示动画:106用于显示屏保动画,166用于显示其它动画,313和166从参数上看无区别 系统时间显示框,附带左右软键 10:只显示系统时间 25:显示时间和日期并可以编辑 26:只显示日期并可编辑 27:只显示时间并可编辑 90: 80/81:公历显示 82:农历显示 单选按钮显示框,附带左右软键,36增加了一个高亮参数,使用场景示例:情景模式选择 11/12:复选按钮显示框,附带左右软键,11显示的列表是静态的,12显示的列表是动态的 50/51:51比50多了高亮参数 75:停用 九宫格显示 字符选择框,附带左右软键,使用场景示例:特殊字符选择 ShowCategory53Screen ShowCategory54Screen ShowCategory57Screen ShowCategory165Screen Popup 11. 《MMI实例训练.pdf》勘误 傅贵《MMI实例训练.pdf》(共108页)中有些是明显的错误,有些是因为软件版本升级而导致,在这里一并罗列出来,以便新员工查阅,避免无谓的时间浪费: 1、 72页代码15.4:I_MENUITEM_CENTER_ICON_Y应为UI_MENUITEM_CENTER_ICON_Y; 2、 73页代码15.5,函数gui_set_fixed_list_menu_item_functions的参数数量不够,这应该是软件版本的不一致所致,调整后的函数写法如下: gui_set_fixed_list_menu_item_functions( &My_fixed_list_menu, gui_show_fixed_icontext_menuitem, //display menuitem gui_measure_fixed_icontext_menuitem, //measure meuitem gui_highlight_fixed_icontext_menuitem, //highlight gui_remove_highlight_fixed_icontext_menuitem, //remove hilghligh gui_hide_fixed_icontext_menuitem, //hide meuitem resize_fixed_icontext_menuitem, //resize meuitem gui_get_fixed_icontext_menuitem_flag ); 建议gui_show_fixed_icontext_menuitem和resize_fixed_icontext_menuitem两个回调函数进行重写,否则15.5代码可能执行会报错; 3、 86页代码18.1:disable_menu_shortcut_box_display = 1;这行代码可以去掉,因为找不到定义的地方; 4、 87页代码18.4:这段代码应该放在代码18.3之前,否则执行会出错; 5、 91页代码19.2:这段代码:gui_measure_string(MMI_fixed_icontext_list_menuitems[index].item_texts, &w, &h);建议改为gui_measure_string((UI_string_type)MMI_fixed_icontext_list_menuitems[index].item_texts, &w, &h);代码:gui_print_bordered_text(MMI_fixed_icontext_list_menuitems[index].item_texts);建议改为:gui_print_bordered_text((UI_string_type)MMI_fixed_icontext_list_menuitems[index].item_texts); 如果不做这些修改,可能在VC下可以编译通过,tcc环境编译不过; 6、 99页代码20.2:这段代码应该放在wgui_categories_enum.h中,而不是wgui_categories_defs.h中,这应该是软件版本的不一致所致; 7、 106页代码20.7:void DrawCate888PenStatus(U8 *event_type, mmi_pen_point_struct point),建议改为void DrawCate888PenStatus(U8 event_type, mmi_pen_point_struct point);相应的107页中,DrawCate888PenStatus的第一个参数相应的改为MMI_PEN_EVENT_NONE等事件类型;如果不做这些修改,可能在VC下可以编 译通过,tcc环境编译不过; 8、 106页代码20.7:gui_printf((UI_string_type)\"%s{%d,%d}\这一句在VC下可以编译过,但在tcc编译环境下可能编译不过,建议改为gui_printf(\"%s{%d,%d}\。 12. 必要的流程知识,管理技能(建议统一培训) 12.1 bug解决流程 参考:《QC1058_CQ故障和变更管理规程_V1.0_20080425.doc》,老师指导 12.2 版本发布流程 参考:《QC1059_软件版本发布流程规范_V2.0_20080429.doc》,老师指导 12.3 项目流程 参考:《QB013_软件开发管理程序_V3.1_20100108.pdf》,老师指导 12.4 个人周报,项目周报使用 13. 必要的平台知识,工具使用(建议统一培训) *如何添加资源,华勤添加字串,图片,菜单的方法和流程 参考《MTK平台搭建流程和参考规范.doc》里资源管理部分,老师指导 *如何添加一个应用 参考《编译交流》里相关解答,老师指导 *很有用的几个编译命令:Checkobj,Checklog,-nofbs,Cfile 老师指导 *在那里添加修改宏,有哪些添加修改的规则和要求?哪些文件是平台的文件,哪些是项目的? 参考《MTK平台搭建流程和参考规范.doc》里文件框架部分,老师指导 *新人需要掌握的CC工具,比如创建分支,删除分支? 参考《编译交流》里分支管理工具部分,老师指导 *新人需要掌握的客户版本工具,比如创建客户版本文件工具 Hq_make_custom.pl工具使用方法介绍,老师指导 *编译中有哪些常见的文件copy关系,从而避免在不该修改的地方进行修改,导致修改无效? 参考《编译交流》里文件copy部分,老师指导 *几个vob的划分,cs的基本配置方法 Custom_vob一般为各平台的lib,modis PSvob为大部分代码所在 平台vob存工具和文档 Resource vob存字串资源 14. 参考学习文档列表 序号 1 2 3 4 5 文档 说明 备注 1、百度上可以下载到,共计108页; 可以问周围同事要,共计25页 可以问周围同事要,共计179页 《MMI实例训练.pdf》 傅贵所写的经典MTK MMI入门教材 共有三部分内容:1、Category的使用;《MTK源码总结.pdf》 2、自定义Category;3、History机制 《MTK_MMI函数手册.pdf》 常用函数速查