BREW动态加载机制详解

需积分: 3 22 下载量 154 浏览量 更新于2024-11-16 收藏 59KB PDF 举报
"本文主要探讨了BREW平台的动态加载技术,从BREW应用程序的结构、Mod文件的作用、以及如何通过动态加载实现应用程序的实例化和接口管理等多个方面进行了深入剖析。" 在BREW平台上,一个BrewApp实际上是一个基于IApplet类的实例化对象。在开发过程中,开发者只需关注对接口的使用,而不需要关心具体的实现,因为这些实现都是通过虚函数指针来完成的。在编译和链接阶段,接口的使用就已经确定,但具体实现是在运行时动态绑定的。 Mod文件在BREW系统中扮演着关键角色,它对外暴露的唯一确定功能是Mod_Load函数的地址。当BREW系统加载应用程序时,首先将Mod文件加载到内存中,并立即执行这个Mod_Load函数。在执行Mod_Load的过程中,BREW会传递一个IModule接口,期待通过该函数的返回值获取实例化的IModule对象。 IModule对象对于BREW来说至关重要,因为它提供了对Module内存及内部Applet的管理。通过IModule实例,BREW可以调用IMODULE_CreateInstance方法,传入IShell和IApplet的指针。这个过程会触发AEEClsCreateInstance函数,实例化IApplet对象,并返回给BREW。这样,BREW就获得了对特定应用程序的访问权限,能够通过IApplet接口处理事件等操作。 同时,IShell指针的实例化使得应用程序在运行时能够访问BREW提供的所有服务。接口的映射和实例化在这个阶段完成,使得“使用”和“实现”紧密结合。每个接口的实例化都通过IShell的实例化过程完成,确保了应用程序能够正确地调用BREW的各种服务。 最后,用户(应用程序)和BREW各自获得了所需的对象,应用程序的实例化和接口绑定完毕,至此,BREW动态加载流程完成,应用程序可以开始执行其特定的功能。整个过程展示了BREW动态加载机制的灵活性和高效性,对于理解和开发BREW平台的应用程序具有重要的指导意义。