找回密码
 注册
搜索
查看: 3025|回复: 28

[讨论] 如何快速上手一个手机平台

[复制链接]
发表于 2007-4-19 15:43:52 | 显示全部楼层 |阅读模式
假如你以前在其它手机平台上开发过MMI APP,现在公司要更换手机平台,你如何能
快速了解新的手机平台?
      首先,你要有一个该平台的运行环境(象MTK,展讯都提供一套完整的软件方案)。经
过简单的调试,该运行环境编译通过,并且可以运行出WIn32模拟器。
      其次,找出手机软件的运行入口。所有的手机启动过程如下:开机 ---〉初始化硬件设
备----〉初始化软件(全局变量,读取nv数据等)----〉开机动画,搜寻网络,Sim卡等--->
Idle界面。在vc工程下,你可以搜寻"Init","Initialize","start","task"等关键字,可能会找
到很多c文件包含这些关键字。然后,你可以根据文件名,以及文件所属的路径,排除大
部分搜索结果。在剩下的每个搜索结果处,加一个断点。按“F5”调试,程序会停在某个
断点。这个断点向上看看,可以找到手机软件的运行入口。沿着这个断点跟下去,你就可
以发现APP初始化,读取nv,Sim ,显示Animation等等......
        第三,简单了解Idle。根据文件路径以及文件名,我们可以确定哪几个文件属于Idle
。一般来说,各个平台的Idle程序都比较乱,因为Idle修改的人多,上面Icon,状态特多。
在Idle文件里查找“create”“start”“entry”等关键字,通过设置断点,可以定位Idle的
入口及其出口。Idle不要细看,只要知道Idle的入口,以及从Idle如何进入MainMenu就行
了。
       第四,详细了解MainMenu。MainMenu是所有模块中比较简单的一个,程序代码也比
较少。只要了解了MenuMain,我觉得各位就可以在该平台上修改一些简单的Bug了。
       第五,自己动手写一个简单的App,在App中尝试使用各种控件。至于如何使用控件,
各位可以先看看哪些模块用到这些控件,把相关程序拷贝过来,稍加修改即可。
       第六,尝试添加修改图片字符串资源。
       第七,查找关键字“Timer”,看看程序如何使用Timer.
       第八,理解消息传递,窗口调用,信息保存等等。
       到此为止,你对一个新平台的MMI至少掌握了70%,至于其它的一些细枝末节,以后
工作中再慢慢细抠。
       各位对快速上手新平台有什么建议,请提出,大家一起讨论。
发表于 2007-4-20 09:12:28 | 显示全部楼层
顶,如此好文,不得不顶
点评回复

使用道具 举报

发表于 2007-4-20 23:29:44 | 显示全部楼层
差不多了,呵呵,还有了解一些每个注册的APP应用,其handle消息中的case都是由PS和ref底层传到MMI,MMI做出人机界面的响应等等操作;还需要了解一些GPIO口的应用!对于复杂的流程都可以进行TRACE跟踪或在simulater上进行模拟(除去一些对于硬件接口的调试),还有针对输入法lib 库与GUI控件的绑定,字库文件的index 与输入法对应等等;
点评回复

使用道具 举报

发表于 2007-5-11 20:10:52 | 显示全部楼层
好文章!!!!!!!
点评回复

使用道具 举报

发表于 2007-5-17 11:44:10 | 显示全部楼层
好文章。谢啦!
点评回复

使用道具 举报

发表于 2007-5-19 23:31:06 | 显示全部楼层
还有要看Release出来的文档
点评回复

使用道具 举报

发表于 2007-5-23 13:49:55 | 显示全部楼层
不错,写的很详细
点评回复

使用道具 举报

发表于 2007-6-1 15:21:02 | 显示全部楼层
好文章!
点评回复

使用道具 举报

发表于 2007-6-6 15:16:16 | 显示全部楼层
可以写一个简单的游戏,熟悉消息的流程,TIMER的运用,窗口的搭建,控件的使用,图片以及字符串资源的调用,因为游戏比较独立,自成一体,可以简单,也可以复杂。
点评回复

使用道具 举报

发表于 2007-6-6 17:12:10 | 显示全部楼层
我没做过手机的,一直在做MP3.感觉主要有以下几个步骤:
1. 平台的建立:主要是指编译环境及其方法.一般方案公司给出一个DEMO板的SDK包,我觉得首先要能够建立起一个可编译环境,动手试一下,生成二进制文件,下载到DEMO板上试一下,是不是可以跑起来.
2. 从整理上开始了解一些方案所支持的功能:要弄清楚它的系统构架.
3. 搞清楚图片资源在程序中的调用方法.
4. 从MainMenu主界面开始,试着用自己添加的图片替换掉原来的图片,并检查效果.
5. 然后一个子界面一个子界面的做好.一般会反复调整图片的位置等.
6. 研究每一条语句.
点评回复

使用道具 举报

发表于 2007-6-11 10:53:40 | 显示全部楼层
好文章,谢谢
点评回复

使用道具 举报

发表于 2007-7-1 10:37:23 | 显示全部楼层
楼主:
对于一个新手怎么样才能快速了解一个手机平台?
谢谢.
点评回复

使用道具 举报

发表于 2007-7-2 23:04:12 | 显示全部楼层
这个话题很不错,很有用,谢谢
点评回复

使用道具 举报

发表于 2007-7-22 00:36:51 | 显示全部楼层
对,新手如果想快速了解一个手机平台应该怎样呢?
点评回复

使用道具 举报

发表于 2007-7-23 09:00:21 | 显示全部楼层
难道这个世界有捷径可以走吗?
点评回复

使用道具 举报

发表于 2007-7-27 17:15:57 | 显示全部楼层
我想拜你为师收不收呀 QQ是535500525和我联系呀
点评回复

使用道具 举报

发表于 2007-8-2 16:00:18 | 显示全部楼层
嗯,文章不错,值得学习
点评回复

使用道具 举报

发表于 2007-8-8 11:47:58 | 显示全部楼层
有点意思
点评回复

使用道具 举报

发表于 2007-8-11 09:48:07 | 显示全部楼层
这样的入门方式有点局限呀,不了解整个系统就直接进行代码的跟踪学习不大好.
建议:
1. 首先学习使用平台编译工具,系统如何编译平台的? 有的是makefile, 有的通过XML方式.
2. 目录结构, MMI, driver, OS, ThirdParts SW如何组织的.
3. Debug如何使用.不是每个平台都有Simulator,如果没有模拟器,又不懂Debug,那看代码是很累的.

4. 进入软件学习, 如果是MMI, 看看UI怎么编排的, 基本上一个平台贯穿的都是UI的变化.资源(字串, 字库, 图片,铃声 )哪些硬件支持,那些软件处理.
5. 看看软硬中断处理. SMS, CALL, ALARM等...
点评回复

使用道具 举报

发表于 2007-8-18 10:31:47 | 显示全部楼层
真的好文章,对我很有帮助
谢谢[em01]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-26 01:23 , Processed in 0.071158 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表