软件部新员工培训期计划【MMI开发工程师】

日期:查看:668

软件部新员工培训期计划【MMI开发工程师】


软件新员工培训期计划(MMI开发工程师)


修改记录


版本号


拟制人/修改人


拟制/修改日期


更改理由


V1.0


佚名


2010-02-01


V1.1


Kite


2010-02-11


增加了常用软件安装、编译命令注意事项、实践部分注意点(字串资源添加部分);


V1.2


Kite


2010-02-26


依据yy的建议,增加版本修改部分,并对实践部分继续进行完善和补充,并对文档进行了标准化;


【更多 免费素材,微信lbgzkf1】





前言


本计划主要针对新入职的无工作经验的新员工在MTK平台的开发和日常相关工作的培训计划,培训主要关注点为日常工作的基本工作技能培养,有关系统性的深入培养暂不纳入本计划之内,有待工作中持续加强和通过内部专项培训进行提高。


对于有一定工作经验但无MTK平台经验的新入职员工,指导老师可以根据实际情况,调整培训计划,而不用完全按照本计划表进行。但是所作调整也需要另拟培训计划表,作为培训之依据,且培训之最终效果也应达到本计划中所列所有培训目标项。


对于有一定工作经验,且具MTK平台经验的新入职员工,指导老师可以依据本计划中所列的培训目标项对其进行评估。如果能达到我们培训目标的培训项可以略过;如果无法达到的,必须也按照本计划相应培训项的措施进行培养。


开发环境搭建


常用软件安装指南


如下是常用软件的安装地址,相关软件的按照指导文档见:\\192.168.24.40\编译环境\SCM常用软件安装指南_最新版本.doc,重点需要注意的是ADS、CC和CQ的安装。


序号


软件


说明


下载地址


备注


1


VC


 


ftp://192.168.24.8/soft/MStudio98/


2


sourceinsight


代码浏览器


网络下载,或者找周围同事


3


ultraedit


文本编辑器


网络下载,或者找周围同事


【更多 免费素材,微信lbgzkf1】


4


beyond compare


比较工具


网络下载,或者找周围同事


5


perl


编译环境


\\192.168.24.40\编译环境\ActivePerl-5.8.6.811-MSWin32-x86-122208.msi


6


ADS12


编译环境


\\192.168.24.40\编译环境\ads_1.2


参照《SCM常用软件安装指南.doc》


注意安装在C盘


7


ADS patch


编译环境


\\192.168.24.40\编译环境\ADS1.2 Patch To Build 848


ADS12安装完毕之后,把ADS patch下的文件直接copy到安装目录下覆盖原文件即可


8


MinGW


编译环境


\\192.168.24.40\编译环境\MinGW


直接copy到ARM安装目录,与ADSv1_2目录并列


9


msys


编译环境


\\192.168.24.40\编译环境\msys


同上


10


incredibuild


分布式编译【更多 免费素材,微信lbgzkf1】


\\192.168.24.40\分布式编译客户端极其补丁\3.40


Coordinator location, computer选择:192.168.24.100


12


incredibuild


分布式编译


\\192.168.24.40\分布式编译客户端极其补丁\3.40\incredibuild_3.40patch


运行key.bat文件即可,注意该软件有30天试用期,在试用期到期之前重新运行key.bat,则恢复试用期到30天(有个task的补丁,可以每周自动更新时间为30天)


13


Flashtool


工具【更多免费素材,微信 lbgzkf1】


找周围同事要


用于把bin文件下载到手机上,操作参考相关文档


14


Cather


工具


找周围同事要


用于调试跟踪故障,操作参考相关文档


15


Meta


工具


找周围同事要


查看手机文件系统,操作参考相关文档


16


cc(clearcase)


版本控制


\\192.168.24.40\clearcase_setup


参照《SCM常用软件安装指南.doc》


17


cq(clearquest)


故障管理


\\192.168.24.40\cq


参照《SCM常用软件安装指南.doc》


常用软件安装注意要点


ADS安装请注意导入license.dat(在ADS安装目录下),否则ADS编译报错;


sourceinsight输入注册码后请注意不要回车,而应该点击OK按钮,否则回车会按照试用(try it)处理;


分布式编译过程中运行build monitor可以观察到分布式编译所用到的计算机,其实也是判断分布式编译是否有效的一种方法;


Ultraedit如果打开文本文件为乱码,请另存一下,然后从新打开;


CC上软件版本config spec的查询,请登录http://192.168.24.15/cqweb/login(可以问技术管理部申请账号),选择版本管理系统登录进入,公共查询->版本跟踪->all_project,查找并选择项目名称,再选择“FOR自动编译”即可。


基本技能学习


版本控制工具学习


关于CC、CQ使用的简单培训【更多免费 素材,微信lbgzkf1】


学习目标:


a. 会自己使用CC建立相应项目的代码环境;能够明白CC中label、branch、


vob、cs、节点、view等概念。


b. 能够熟悉CQ中BUG的管理流程。


(此时并不要求对CC其他功能的熟练使用,后续会有相应安排)


编译命令学习


学习target环境的编译命令


学习目标:能够区分new、remake、update、clean、resgen等的用法;编译出错如何在LOG目录下寻找相应信息。这里先简单介绍一下几个命令的区别:


new – 用于生成.bin文件,它包含以下动作clean + scan + compile + link


使用方法一般是这样的:make D901 gprs/gsm new


其中D901是cusotmer名称,为了表述方便以D901为例,gprs/gsm是project


update – 编译一个或多个模块,它包含以下动作:scan + compile + link。


使用方法是make D901 gprs/gsm update mmiresource,其中mmiresource


是具体某个模块的名称,update会首先检查文件之间的依赖关系,然后编译发生改变的代码。Update后面如果不跟模块名称,则是编译所有模块。


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,以及每条指令是怎么解析的,告诉开发人员如何新添加一个模块并编译它。


编译命令注意事项


如果新员工对于GNU gcc编译过程有理解的话(没有这方面的经验,则可以补充一下这方面的知识,MTK的编译过程本质上也是对GNU gcc编译的应用,只不过做了一定的封装,并借助了perl语言),将有助于理解MTK的编译过程;


不管是编译还是Modis编译,请事先启动分布式编译工具(Incredibuild Agent Tray-icon,启动之后在电脑屏幕右下角有一个箭头显示)以提高编译效率,否则编译时间会很长;


VC可以直接关联分布式,这样在VC上就可以出现分布式的按钮;


编译过程中请注意不要改动cmd窗口属性中缓冲区大小的设置,如果设置过大,可能因内存不足导致编译时间过长(即使是启动了分布式编译);


在VC环境下运行Modis,如果出现头文件找不到的情况,请查看modis目录下各个子目录下相关ini文件中有关该头文件的指定路径,并检查该路径下是否存在该头文件;


运行modis看不到界面,请检查MoDIS\MoDIS\Skins目录下的图片文件是否没有解压缩,从而造成图片资源无法加载;


如果modis运行报有些函数或者变量找不到的链接错误,则在\MoDIS\drv_sim\src\w32_dummy_wndrv.c源文件中添加该函数或者变量定义,并重新运行即可;


分布式编译错误排除:定位是哪个模块出现分布式编译错误,对该模块进行clean操作,重新对该模块单独进行remake,最后再对整个工程remake;


如果只修改了*.lis文件(即增加了源文件,并且头文件没有被放在新增加的目录下),只需要remake;modis需要重新gen_modis。


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方面的软件架构,这部分主要包括:


事件的处理


history的管理


OSL Wrapper


NVRAM


文件系统管理


UI layer与Layer 4的交互


解触摸屏的响应机制


这部分的参考文档有:


a. MMI_framework_and_architecture.pdf


b. MMI Platform Source Code Training.pdf


如上两篇文档非常重要,要对整个MTK软件架构,尤其是MMI架构要有一个整理的理解,学习注意点:


L4层很多术语和GSM/GPRS通信协议相关,要求新员工有一定的通信知识基础(没有学过的要补补基础课,比如通信原理、计算机网络、GSM/GPRS无线通信原理等,重点是对通信模型、OSI七层协议栈、GSM/GPRS相关的术语的理解);


请参考傅贵写的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的学习【更多免费素材,微信lbgzkf1 】


模块研究


在学习了以上理论知识之后,可以选择一个模块为入口点,来进行代码研读,以一斑以窥全局,这样可以快速地熟悉MTK代码结构。


实践部分


这部分主要是完成一些简单任务:


1.在模拟器上完成某个菜单下增加一个mytest菜单,mytest下有两个子菜单,


子菜单1用来一个list菜单,子菜单2用来弹出一个pop窗口,并且在定时30秒后自动退出。每个菜单需要使用新的字符串和icon。


培训目标:熟悉各类资源(字串、图片、菜单等)的使用、keyhandler的概念、hilight概念、定时器Timer使用;


2. 在现有8张墙纸基础上添加一张墙纸,以支持9张壁纸,并设置新加墙纸为缺省墙纸,


缺省屏保打开,等待时间为30秒


培训目标:nv的概念;nv项的修改


3.客户版本制作


培训目标:与客户版本相关的文件熟悉,熟悉编译过程中这些客户资源相关的文件的来龙去脉;CC新文件提交,老文件修改;客户版本发布流程。


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项等。


新员工技术小结


分配具体模块,熟悉该模块,解决该模块相应的故障,并负责研究该模块,写出相应模块的学习文档。


部门转正评审


使用内部答辩会的形式进行转正答辩,由非指导方来对培训效果进行检验。


MMI学习要点总结


模块代码添加步骤


MTK MMI模块添加三步骤


源文件的添加:添加新的MMI模块一般放在plutommi\mmi\目录下面,最好在plutommi\mmi目录下另建子目录,头文件和源代码分开两个子目录存放,目录名称一般遵循如下命名规范:<模块名称>inc、<模块名称>src;


模块的编译配置:在make目录下建立子目录(该子目录为功能名称和源文件所在目录名对应起来),该目录下依据如下命名规范分别创建4个文件:<功能名称>.lis、<模块名称>.pth、<模块名称>.inc、<模块名称>.def;其中inc文件中要包含本模块源文件所用到的所有头文件路径位置;def文件可以为空,如果缺少该文件,make gen_modis的时候可能会出异常;


编译输出:在option.mak文件中添加模块名和宏开关,关键字为:COMPLIST和COM_DEFS,以确保所加代码能够被正确的编译;


以上三个步骤回答和解决了如下三个问题:


你所编写的代码源文件和头文件在物理存储文件上是如何组织的(逻辑上的组织要看设计文档或者存在于编码者的脑子里)?


你所编写的源码告知编译器如何编译(告知编译器源码的相对路径、源文件列表和头文件,其实这些配置文件的内容最终会被作为tcc编译命令的编译参数)?


编译的输出是什么(编译的输出是库文件,最终体现在option.mak文件的配置中)?


字串资源添加步骤


MMIDataType.h中添加两个宏定义:<模块名称>_BASE、<模块名称>_BASE_MAX,用于定义本模块资源ID的起始位和资源ID数量最大数,我们所有资源ID的定义都要基于<模块名称>_BASE这个宏进行累加; MMIDataType.h中的理解重点是两个宏定义:GET_RESOURCE_BASE(id)和GET_RESOURCE_MAX(id),这涉及到一个##符号是宏组合的概念;


在<模块名称>defs.h文件定义一个字串的枚举类型,用于罗列所有字串ID的定义;


在ref_list_09A.xls定义各个字串的内容,要注意和defs.h中的ID要对应;


在\plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下新建一个源文件res_<模块名称>.c,新建一个函数并调用ADD_APPLICATION_STRING2宏添加本模块所用到的所有的字符资源;


如果res_<模块名称>.c中包含了自定义的头文件,则需要在plutommi\Customer\ResGenerator\makefile文件中添加该头文件的路径,以便编译res_<模块名称>.c文件时能够顺利编译通过,否则下一步的make命令可能执行报错;该makefile文件是资源装载预编译程序的makefile文件;


执行资源编译命令:make <项目名称> gprs resgen;


如果字串出现部分乱码,请检查在资料列表中资源的位置放的地方是否正确?比如把繁体字体和简体字体的位置搞反了。


屏幕模板理解重点


对于屏幕模板的理解重点是三个数据结构:


组件结构,例子:const U8 categoryxxx;该结构定义了一个Category中包含的控件(一个Category是由多个控件组成的);


组件属性结构数组,例子:const S16 coordinate_setxxx;该结构定义了一个Category中包含的控件属性;


映射表(数组):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中有定义,使用定时器的步骤如下:


timer_id的定义,在TimerEvents.h中定义自己的timerID,请注意务必放在MAX_TIMERS之前定义;


定义定时处理函数,在定时时间到达之后进行相关处理,典型的操作包括:StopTimer和GoBackHistory;


在ShowCategoryScreen之后StartTimer;


注意delay的时间为毫秒。


资源编译错误定位


资源编译可能出现的错误定位


如果出现“Makefile:166: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.”类似的错误,请检查对应的makefile文件,可能是该makefile文件中出现了空格;


如果运行时字串显示不出来,请检查一下如下文件是否包含了自己定义的字串\plutommi\Customer\CustResource\ref_list.txt;如果没有,则有可能没有把该文件从code目录下copy过来,需要重新执行make <项目名称> gprs resgen。


其它注意事项


各个版本的入口程序会与傅贵教材可能会有出入,请请教一下自己的师傅所取版本的入口程序位置;


Modis能够编译通过,tcc未必能够编译通过,不同的编译器对于语法的规则要求是不同的,比如在VC下可能是warning,但在tcc环境下可能就是错误了;就个人感觉来说tcc的编译要比vc严格的多。


常用Category速查


序号


Category编号


类型


说明


1


ShowCategory1Screen


ShowCategory4Screen


ShowCategory6Screen


ShowCategory55Screen


ShowCategory56Screen


列表


文本列表显示框,4附带右软键及icon,6附带左右软键,使用场景示例:通讯录显示


1


ShowCategory2Screen


提示【更多免费素 材,微信lbgzkf1】


错误提示框,附带左右软键


ShowCategory7Screen


提示


选择提示框,附带左右软键,使用场景示例:删除提示


2


ShowCategory3Screen


列表


文本列表显示框,并能显示4列icon


3


ShowCategory1Screen


ShowCategory4Screen


ShowCategory6Screen


ShowCategory55Screen


ShowCategory56Screen


列表


文本列表显示框,4附带右软键及icon,6附带左右软键,使用场景示例:通讯录显示


4


ShowCategory23Screen


ShowCategory24Screen


ShowCategory73Screen


ShowCategory85Screen


ShowCategory89Screen


列表


文本列表显示框


23:能够显示两列文本,icon在左


24:附带左右软键,icon在右


73:能够显示一列文本,两列icon,并有高亮参数


85:附带数字icon


89:与85的区别在于文本列自动生成


ShowCategory101Screen


列表


5


ShowCategory5Screen


ShowCategory21Screen


文本显示【更 多免费素材,微信lbgzkf1】


文本显示框,5附带左右软键,21附带左软键


ShowCategory9Screen


ShowCategory58Screen


ShowCategory59Screen


ShowCategory60Screen


ShowCategory61Screen


ShowCategory62Screen


ShowCategory63Screen


ShowCategory64Screen


ShowCategory65Screen


文本显示


文本显示框:


9的icon在文本下方;


58、59附带左右软件,icon在文本的左边,58和59只有一个参数的区别,后者参数为指针;


60、61附带标题,标题附带icon,60和61只有一个参数的区别,后者参数为指针


62、63附带icon并显示在中间,且不全屏显示,62和63只有一个参数的区别,后者参数为指针


64、65和62、63只有显示位置的区别:62、63的文本在上icon在下,64、65反之


ShowCategory69Screen


ShowCategory70Screen


文本显示


文本显示框,文本可编辑,69和70只有一个参数的区别,后者参数为指针


ShowCategory28Screen


ShowCategory29Screen


文本显示


显示短信内容


ShowCategory34Screen


ShowCategory35Screen


文本显示


文本和图片显示,附带左右软键,35增加了一个可编辑的文本框


ShowCategory74Screen


文本显示


Scroll,用于显示较长的文本,尤其是一屏显示不完的,超出一屏可以滚动显示


ShowCategory71Screen【更多免费素 材,微信lbgzkf1】


ShowCategory72Screen


进度显示


进度显示框,71和72只有一个参数的区别,后者参数为指针


ShowCategory87Screen


ShowCategory88Screen


进度显示


进度条显示,88有主辅两个进度条


ShowCategory8Screen


ShowCategory67Screen


ShowCategory68Screen


图片/动画


图片显示框,附带左右软键


8:可显示图片和文本


67:只显示icon


68:停用


ShowCategory142Screen


图片/动画


显示图片


ShowCategory301Screen


图片/动画


显示icon的消息框


ShowCategory106Screen


ShowCategory166Screen


ShowCategory313Screen


图片/动画


显示动画:106用于显示屏保动画,166用于显示其它动画,313和166从参数上看无区别


ShowCategory10Screen


ShowCategory25Screen


ShowCategory26Screen


ShowCategory27Screen


ShowCategory90Screen


时间/日期/日历


系统时间显示框,附带左右软键


10:只显示系统时间


25:显示时间和日期并可以编辑


26:只显示日期并可编辑


27:只显示时间并可编辑


90:


ShowCategory80Screen


ShowCategory81Screen


ShowCategory82Screen


时间/日期/日历


80/81:公历显示


82:农历显示


ShowCategory11Screen


ShowCategory36Screen


单选


单选按钮显示框,附带左右软键,36增加了一个高亮参数,使用场景示例:情景模式选择


ShowCategory12Screen


ShowCategory13Screen


ShowCategory50Screen


ShowCategory51Screen


ShowCategory75Screen


复选


11/12:复选按钮显示框,附带左右软键,11显示的列表是静态的,12显示的列表是动态的


50/51:51比50多了高亮参数


75:停用


ShowCategory14Screen


九宫格显示


ShowCategory22Screen


字符选择框,附带左右软键,使用场景示例:特殊字符选择


ShowCategory52Screen


ShowCategory53Screen


ShowCategory54Screen


ShowCategory57Screen



ShowCategory165Screen【更 多免费素材,微信lbgzkf1】


Popup


《MMI实例训练.pdf》勘误


傅贵《MMI实例训练.pdf》(共108页)中有些是明显的错误,有些是因为软件版本升级而导致,在这里一并罗列出来,以便新员工查阅,避免无谓的时间浪费:


72页代码15.4:I_MENUITEM_CENTER_ICON_Y应为UI_MENUITEM_CENTER_ICON_Y;


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代码可能执行会报错;


86页代码18.1:disable_menu_shortcut_box_display = 1;这行代码可以去掉,因为找不到定义的地方;


87页代码18.4:这段代码应该放在代码18.3之前,否则执行会出错;


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环境编译不过;


99页代码20.2:这段代码应该放在wgui_categories_enum.h中,而不是wgui_categories_defs.h中,这应该是软件版本的不一致所致;


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环境编译不过;


106页代码20.7:gui_printf((UI_string_type)"%s{%d,%d}", event_type, point.x, point.y);这一句在VC下可以编译过,但在tcc编译环境下可能编译不过,建议改为gui_printf("%s{%d,%d}", event_type, point.x, point.y)。


必要的流程知识,管理技能(建议统一培训)


12.1bug解决流程


参考:《QC1058_CQ故障和变更管理规程_V1.0_20080425.doc》,老师指导


12.2版本发布流程


参考:《QC1059_软件版本发布流程规范_V2.0_20080429.doc》,老师指导


12.3项目流程


参考:《QB013_软件开发管理程序_V3.1_20100108.pdf》,老师指导


12.4个人周报,项目周报使用


必要的平台知识,工具使用(建议统一培训)


*如何添加资源,华勤添加字串,图片,菜单的方法和流程


参考《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存字串资源


参考学习文档列表


序号


文档


说明


备注


1


《MMI实例训练.pdf》


傅贵所写的经典MTK MMI入门教材


1、百度上可以下载到,共计108页;【更多免费素材,微信 lbgzkf1】


2


《MTK源码总结.pdf》


共有三部分内容:1、Category的使用;2、自定义Category;3、History机制


可以问周围同事要,共计25页


3


《MTK_MMI函数手册.pdf》


常用函数速查


可以问周围同事要,共计179页


4



5




(阅读全部图文内容,您需要先登录!)


推荐阅读
扫码登录

客服微信:lbgzkf1

笔杆子文库客服微信

客服咨询

《笔杆子文库》微信端

笔杆子文库微信端

微信端
返回顶部