您的位置:首页 > 移动开发

手机开发之三:CoreApp的深入分析

2013-06-13 15:07 204 查看
四.CoreApp的深入分析

目前参考代码里面的CoreApp所完成的工作比较多且杂,主要说来有如下几件事。

a)系统组件初始化;

b)开机Logo的显示;

c)Sim卡检测和Pin码校验;

d)系统状态信息更新;

i.电池状态;

ii.网络信号;

iii.网络模式;

e)IAnnunciator的维护与更新;

f)通话处理,打电话的输入框;

g)主菜单处理;

h)手机各种设置功能的处理;

i)关机键的处理;

  目前CoreApp里面的代码,完成了太多的事,其实完全可以剥离成不同的模块来完成,大致可以分成如下几个部分。

  1、总控模块;(CoreApp)

  总控模块,主要完成手机按下开机键之后的各种初始化工作,同时此模块也是整个手机的控制中心,由它来完成手机的一些全局性工作,主要有如下几项。

  1.系统初始化、Sim卡检测和Pin码校验;

  2.开机Logo或者开机动画的显示;

  3.底层服务程序的启动;(WmsApp、DialApp等);

  4.系统配置信息的统一管理;

  由于写配置信息到NV上面是一件非常慢的工作,每次上层App改变配置之后都去操作NV,很影响速度。所以,可以在内存中开一个配置信息的Buffer,上层App操作的实际上是这个Buffer,然后由Core在空闲的时候再统一写到NV上去。

  5.关机处理;

  [注]

  由于CoreApp是在Idle Applet的界面之下,所以,为了能够实现“一键回菜单”的功用,有可能需要修改ui_task里面的Key处理函数,将所有的Key消息转发给 Core,这样Core就可以得到所有的Key事件了。(现在的ui_task只把Key事件发送给了AEE,而AEE只会将Key事件发送给当前活动 Applet)。

  2、Idle模块;

  主要完成待机界面的画图工作,主要有两部分:

  1.系统信息指示栏;

  2.待机界面(位图、动画、时钟、日历等);

  3.软键

  [注]

  Idle只负责界面工作,不负责具体的系统状态信息的获取工作,这个工作将由其它模块完成。

  3、Polling

  手机状态信息查询模块,主要是完成手机各种状态信息的更新与维护。主要有如下几种:

  a.电池强度;

  b.网络信号强度;

  c.网络模式(C/G);

  d.PLMN网络名;

  e.短消息、通话状态、闹铃;(这个由专门的模块完成,不在Polling之列);

  f.各种外设信息;(USB、耳机插入等);

  g.其它各种杂项信息;

  4、Menu模块

  菜单模块主要分两部分,一部分是主菜单的实现,另一个子菜单的实现。一般来讲,手机上的菜单系统应该是由Menu模块去统一完成,而不是由每一个子程 序去手动完成。菜单模块一般只需要负责到主菜单、二级菜单和三级菜单就Ok了。三级菜单之后的界面,就由每一个App单独去维护了。

  5、其它功能App模块;

  每一个功能模块,由一个专门的App来完成,这样的话,模块的独立性强,便于单独开发。模块间通过App启动和消息传送的方式来发生关系和进行模块间通信。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: