@cyysu
2018-08-10T01:06:45.000000Z
字数 1843
阅读 1018
- 时间:2017年8月31日
- 作者:chen yuan
- 邮箱:chenyuan@ypmingjiang.cn
- 描述:OSGI框架移植篇
- 版本:V2.0
嵌入式Linux
OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范。OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范。简单来说,OSGi可以认为是Java平台的模块层。OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语,这些组件能够组装进一个应用和部署中。
链接:http://pan.baidu.com/s/1eRA2Kuu 密码:wbph
这里不打算介绍怎么建立工程,建立工程的教程在网上有很多,我这里主要讲一些可能你会遇到的问题。1.Q: Eclipse没有plugin in Project选项?A: 可以参考这篇博客 http://blog.csdn.net/sidihuo/article/details/407475252.Q: 启动OSGI Framework发现有很多错误?A: 可以在Windows->Preferences->Plug-in Development->Target Platform 建立自己的平台3.Q: OSGI框架Eclipse的实现在哪里找到?A: 在Eclipse的软件目录下的plugins中可以找到类似这个org.eclipse.osgi_3.3.2.R33x_v20080105.jar的jar文件4.Q: 不在Eclipse环境下运行OSGI框架?A: 只需要在一个目录下建立如下目录mj@DZ:~/桌面/DemoTest$ tree.├── configuration│ └── config.ini├── org.eclipse.osgi_3.4.0.v20080605-1900.jar└── plugins└── Demo_1.0.0.jarDemo_1.0.0.jar文件是自己开发的Bundle,plugins文件夹就是存放Bundle的地方,在configuration中存放的是OSGI启动的配置文件,看到这个config.ini,大家有没有感觉很熟悉呢,对,他和我们的eclipse软件目录下的那个config.ini是同样的作用,eclipse这个软件的整体设计也是按照OSGI框架来设计的。下面我们来看一下config.ini里面的内容是什么。mj@DZ:~/桌面/DemoTest/configuration$ cat config.iniosgi.noshutdown=trueosgi.bundles.defaultStartLevel=4osgi.bundles=reference\:file\:plugins/Demo_1.0.0.jar@1:start
如果采用我上面给出的软件来编写程序,那么可以省略第三个步骤,在建立工程时也不会存在一些报错信息,这个是笔者亲测的。好了,话不说,开始我们的目标平台移植,这个就要借助我们上一篇的CVM移植篇的平台了,如果还没看,这里提供通道。https://www.zybuluo.com/cyysu/note/864194准备好了环境,那么将我们上面问答里面的文件scp到我们的开发板。执行过程如下。[root@M3352 opt]# lsbin/ configuration/ equinox.jar* lib/ plugins/[root@M3352 opt]# ./bin/cvm -jar equinox.jar -consoleosgi> hello osgi!!!osgi> ssFramework is launched.id State Bundle0 ACTIVE org.eclipse.osgi_3.3.2.R33x_v200801051 ACTIVE Demo_1.0.0osgi> stop 1goobye osgi!!!osgi> exit[root@M3352 opt]#
移植工作到此就彻底结束了,剩下的工作为上层JAVA开始调用我们的底层C代码,这一部分的内容会放在JNI搭建篇进行讲述。如果本文存在什么不正之处,还请您指出,或者您有什么疑惑地方环境私信交流。