Brew App的加载【YOYO来稿】

niki_june 发表于 2008-07-17 21:17:38

我的本意是想YOYO同学记录一下出差生活,结果到现在一篇相关的都没有,这还整开专业技术了,吓唬谁啊~~
写些大家看不懂的有意思吗?
不过据说,这方面的资料比较少,留个备份,多加几个标签或许有需要的人搜到呢

以下是全文内容:

静态的brew看得不多,应该是以前常说的core app吧,
KCP以前是为了和APP task联动用的,现在变成啥样了我也不知道。
只知道Brew app的一些东西,应该就是动态加载的Brew APP。

Brew App的概念类似windows上的动态链接文件(DLL)。
主要有 mod,mif,和bid文件。

1,mod文件 :
    brew app工程编译后的2进制文件,brew平台动态加载APP后执行这个文件。

2,mif文件:
   brew app的资源文件,文件名必须和mod文件一样。
   mif文件中记录了brew app的class ID,图片,作者名,版权信息,特权级别,网络访问级别等等。
   brew包自带有工具可以对mif文件编辑。

3,bid文件:
  由于brew app是特殊指定的,为了在Brew工程中能引用到class ID(C语言调用),所以要把BrewAPP的
  ClassID写在bid文件中,如 #define AEECLSID_I_LOVE_YOU 0x00001234
  切记class id要与mif中的一致。

4,BrewAPP入口:
  把brew app传进手机后,手机通过扫描mif文件列出所有的BrewAPP,
  通过按键启动某个APP时,Brew平台会调用每个APP的同一个函数地址。
  这个函数就是AEEClsCreateinstance, 也是每个APP的入口函数。
  程序员需要在AEEClsCreateInstance中判断传入的class id是否是自己app的ID: if( AEECLSID_I_LOVE_YOU == ClsId)
   如果是就需要做两件事:
    1,实例化Brew APP并注册事件处理函数I_Love_You_HandleEvent(),可以通过AEEApplet_New那个函数来实现。
    2, 向AEE返回  AEE_SUCCESS。
  这样你的Brew APP就会被成功的初始化和启动了。
 
5,事件处理函数:
   I_Love_You_HandleEvent注册成功后,AEE的所有event通知都会发给这个函数。
   比如,APP 启动,停止通知;Key event通知,等等。
   我们在这个函数通过 switch case来判断具体的事件类型,转向其它用户自定义的处理函数,如事件响应,窗体描画等等。

静态APP其实就是把APP的所有处理以及AEEClsCreateinstance函数地址直接编译到手机的rom中了,这样就不需要每次向手机
load APP了。 静态改动态关键点是AEEClsCreateinstance的处理Merge,和防止静态app有直接调用手机rom中的非AEE接口的代码。


曾经的这一天...


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论


  • iris
    2008-07-19 18:31:05 匿名 221.201.*.*

    嗯,的确很专业,一点也看不懂。加油YOYO,说不定将来出书呢!

    呵呵 就当尊重他点劳动成果吧


  • zy
    2008-07-19 21:03:25 匿名 119.112.*.*

    看的脑瓜子疼~~

    我也完完全全看不懂

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定