下面对有关eSF应用程序的一些基本单元进行简要介绍:

1、内存:

和标准Java不同,在eSF应用程序开发中,很多地方我们都需要考虑内存问题。打印机也是有内存的,从经济角度来说,每台打印机内部的内存都是有控制的。当我们创建一个eSF程序时,我们要给出这个程序所占内存多大,这需要在build.xml中指定,当我们将应用程序安装在打印机上时,应用程序会向打印机申请需要的内存,若此时打印机内存能够满足应用程序,那么安装成功;若此时打印机内存不够,那么将只能申请应用程序的一部分内存,此时,应用程序是运行不起来的,要么将内存全部申请下来,要么卸载此应用程序。当然,也可以在程序运行时,动态分配内存,这种情况适合对图片等占用内存较大资源的处理,但切记,用完后一定要记得释放,以免带来内存泄露。当应用程序内存泄露较为严重时,可能会导致打印机崩溃,这种情况下只有重启打印机。

2、版本:

在OSGi框架中,不同版本会有对不同组件的支持。举个例子:打印机A的标准是基于版本1的OSGi框架,但安装在打印机A中的某应用程序只有成功调用函数B才会运行起来,但函数B包含在某一组件C中,而版本1的OSGi框架是不支持组件C的,但版本2的OSGi框架是支持组件C的,所以要想使该应用程序成功运行,必须要使用版本2的OSGi框架,这是就要指定应用程序的框架版本了,这也需要在build.xml中实现,如下:<property name="bundle.requiredVersions" value="com.lexmark.ui;2.0"/>,此时该应用程序就可以成功运行了,但要安装在基于版本2的OSGi框架的打印机上才能运行,在打印机A上也是不能运行的。