【发布时间】:2012-06-12 10:39:26
【问题描述】:
我开发了一个小型 EMF 项目作为 OSGi Bundle。现在我想在带有 Apache Felix 的 android 上使用它。 EMF 使用一些标准的 java 库。像 java.xml.xxx。通常 OSGi 系统包会导出这些。但在我的 android 案例中,它看起来像这样:
系统包 (0)
Bundle-Description = 此捆绑包是系统特定的;它实现了各种系统服务。
Bundle-ManifestVersion = 2
Bundle-Name = 系统包
Bundle-SymbolicName = org.apache.felix.framework
捆绑版本 = 4.1.0.SNAPSHOT
Export-Package = org.osgi.framework;版本="1.6.0", org.osgi.framework.launch;版本="1.0.0", org.osgi.framework.wiring; 版本="1.0.0", org.osgi.framework.startlevel;版本="1.0.0", org.osgi.framework.hooks.bundle;版本="1.0.0", org.osgi.framework.hooks.resolver;版本="1.0.0", org.osgi.framework.hooks.service;版本="1.1.0", org.osgi.framework.hooks.weaving;版本="1.0.0", org.osgi.service.packageadmin;版本="1.2.0", org.osgi.service.startlevel;版本=“1.1.0”,org.osgi.service.url; 版本=“1.0.0”,org.osgi.util.tracker;版本="1.5.0"
出口服务 = org.osgi.service.packageadmin.PackageAdmin,org.osgi.service.startlevel.StartLevel,org.osgi.service.url.URLHandlers
提供能力 =
这与普通系统包的系统包导出相比没什么 ;-) 不知道有没有作用:我是这样开始Felix的:
Properties configArg = new Properties();
File chacheDir = this.getFilesDir();
configArg.setProperty(Constants.FRAMEWORK_STORAGE, chacheDir.getAbsolutePath());
configArg.setProperty("osgi.shell.telnet.ip", ipadd);
configArg.setProperty("osgi.shell.telnet.port", "6666");
Felix felix = new Felix(configArg);
try{
felix.start();
...
现在的问题是,我如何获得系统包中缺少的标准 java 包。
【问题讨论】:
标签: android osgi bundle packages apache-felix