MTK的QQ软件源代码
说明:系统需求:
ROM:Code(60K) + Res(20K) = 80K
RAM:10K
可移植手机:
Hardware Platform:MT6223, MT6225, MT6226, MT6227, MT6228, MT6229。
目前已通过测试:MT6223, MT6225。
Release Verno:07A,07B,GEMINI.07B。
目前已通过测试:07A.07.36,07B.08.12,07B.08.16。
MAIN_LCD_SIZE:128X128, 128X160, 176X220, 240X320.
目前已通过测试:128X128, 240X320
移植包:
以下是移植包内修改及增加的文件说明:
[注]:若毕业论文http://www.youerw.com没附加说明,凡修改处均被注释 "xhc start" 及 "xhc end" 包围。
QQ Files:
vendor\xhc:
将此目录拷贝到工程相同目录下。
System Environment:
make\ CUSTOMER_GPRS.mak:
修改工程makefile。
make\plutommi\mmi_app:
将此目录下的三个文件merge到工程下同名文件中,如果是早期的代码如07A等,则改为将make\plutommi下的三个文件merge到工程下同名文件中。
adaptation\include\ctrl_buff_pool.h:
QQ长期访问GPRS网络有可能造成L1模块申请内存不足,从而引起手机复位,在此文件中适当修改了某些内存块的数量。因此问题并不常见,所以在移植的过程中可先忽略此文件,当QQ待机过程中频繁出现手机复位时再merge此文件。
applib\mem\include\app_mem_config.h与applib\mem\include\ app_mem.h:
添加系统内存。 MMI Environment:
plutommi\mmi\Xhc:
将此目录copy到plutommi\mmi\下。
plutommi\mmi\Inc\MMIDataType.h:
添加QQ相应的RESOURCE_BASE。
plutommi\mmi\Inc\TimerEvents.h:
添加QQ定时器。
plutommi\mmi\Inc\GlobalMenuItems.h:
添加QQ菜单ID。
plutommi\mmi\Framework\EventHandling\EventsSrc\ Event_handler.c:
添加系统消息钩子(此文件只在07B版本本文来自优文论文网中存在,如果没有此文件则忽略此步)。
plutommi\mmi\Framework\EventHandling\EventsSrc\ Events.c:
添加系统消息钩子(如果上一步的Event_handler.c没有则在此文件中修改,一般在07A或更早的版本则只修改此文件)。
plutommi\mmi\Framework\Tasks\TasksSrc\ MMITask.c:
QQ系统初始化入口。
plutommi\mmi\GUI\GUI_INC\ wgui_categories_enum.h:
添加QQ界面模板。
plutommi\mmi\IdleScreen\IdleScreenSrc\IdleApp.c:
QQ简易入口。 QQ Resource:
plutommi\Customer\Images\PLUTO240X320\MainLCD\XHC:
添加图像资源,如若LCD Size不同请自行修改相应目录。
copy后请自行压缩至image.zip。
plutommi\Customer\ResGenerator\makefile:
修改ResGenerator相关的makefile,在PLUTO_INC =\ 下添加一行如下:
-I "../../../vendor/xhc/common/inc" \
-I "../../../vendor/xhc/im/common/inc" \
-I "../../../vendor/xhc/im/qq/inc"
[注]:如果添加到结尾,请将上一行结尾处添加一个“\”。
plutommi\Customer\CustResource\PLUTO_MMI\ref_list.txt:
将ref_list.txt下的字串merge下项目同名文件中。
plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\Res_XHC.c:
QQ相关资源毕业论文http://www.youerw.com装载文件。
plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI\ Res_MainMenu.c:
将QQ添加到系统菜单里面。
plutommi\mmi\resource\PopulateRes.c:
装载QQ资源。
plutommi\Customer\CustResource\CustCoordinates.c:
QQ界面模板。
QQ客制化:
内存:
QQ在默认情况下使用系统ASM内存(ASM主要用于程序间大块内存共享),在进入QQ时,将从ASM预申请一大块内存,然后再内部创建动态内存池。
从ASM申请到的内存池大小由系统环境与自定义参数共同决定,其申请步骤如下:
先申请XHC_OPT_APP_MEM_SIZE大小(见XHC_custom.h),此为最优QQ内存池大小(QQ登陆以后如果没一个好友需耗内存30K,每多一个好友平均加100字节,聊天记录所耗内存另算)。
如果申请不到则看当前ASM还有多少剩余空间,当剩余值大于XHC_MIN_APP_MEM_SIZE时则全部申请过来,如果小于XHC_MIN_APP_MEM_SIZE则提示内存不足并请求系统将别的程序占用的内存释放掉。
当有别的程序需要内存时,ASM会强制将QQ退出。
如果ASM没开,请将XHC_custom.h中的以下行注释掉:
#define XHC_MEM_ASM
此时QQ将转而使用静态内存,请在XHC_custom.c中自定义下两行:
S32 XHC_static_mem_size = XHC_STATIC_MEM_SIZE;
S8* XHC_static_mem_ptr = XHC_static_mem;
数据账号:
数据账号的初始值在XHC_custom.c中定义,请修改以下行:
XHC_data_account_id = 14;
调试信息:
系统默认为记录当前的内存使用情况以及QQ运行状态,并将记录值写到手机的以下位置中:
[用户盘]:\ mem_dump.txt 记录内存使用情况,当QQ退出时会写到此文件中.
[用户盘]:\ IM\LOG\QQ.txt 本文来自优文论文网 实时记录QQ的运行状态。
调试信息会很耗系统资源,如果要关掉请打开XHC_custom.h中的以下行:
#define XHC_RELEASE
QQ入口:
QQ的入口函数为:
void mmi_qq_entry();
可在任意地方调用此函数进入QQ(注:QQ会自动判断当前的活动状态已进入不同的界面)。1403