您的位置:首页 > 其它

浅析各种动态加载机制

2010-06-08 23:15 239 查看
目前而言,主流的平台都支持应用的动态加载机制,即,应用以文件形式存在于手机的文件系统中,当运行时才加载到内存中执行。

动态加载目前而言主要有3种实现方式:

1. 解释型:

如J2ME,Android平台以及BREW中的UIOne写的TrigML,实际的应用文件是字节码,并非可执行文件,运行时靠虚拟机即时解释执行。

2. 动态链接

这个需要操作系统和平台层面支持,如Linux,WM,Symbian等平台,开发生存的应用文件是二进制非完全链接的目标文件。 运行时加载后,靠操作系统进行即时的完全链接,然后执行。

3。 基于接口型

BREW就是属于这种。 由于BREW允许运行在非智能操作系统上,如Rex等,所以对操作系统的能力不能有奢求,比如动态链接能力等,所以,必须脱离操作系统,单独从BREW层面实现动态加载, 那么,显而易见,BREW的Mod必须是完全链接的可执行二进制文件,但是却又不能将具体平台的BREW实现链接进去,这对矛盾就是靠接口来解决的。 BREW的一切服务皆由接口体系提供。 对于编译期而言,接口服务就是虚表的一次函数指针调用。 由于是指针调用,所以,编译,链接都是可以通过的。 而该接口实例指针的真正绑定,就发生在运行时。 具体可以参见笔者写的 深入刨析BREW动态加载机制, 网上搜索的到, 本博客也将马上贴出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: