[关闭]
@cyysu 2018-08-10T01:06:45.000000Z 字数 1843 阅读 919

OSGI框架移植篇

  • 时间:2017年8月31日
  • 作者:chen yuan
  • 邮箱:chenyuan@ypmingjiang.cn
  • 描述:OSGI框架移植篇
  • 版本:V2.0

嵌入式Linux


简介

  1. OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范。OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范。简单来说,OSGi可以认为是Java平台的模块层。
  2. OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语,这些组件能够组装进一个应用和部署中。

软件链接

  1. 链接:http://pan.baidu.com/s/1eRA2Kuu 密码:wbph

建立工程与解惑

  1. 这里不打算介绍怎么建立工程,建立工程的教程在网上有很多,我这里主要讲一些可能你会遇到的问题。
  2. 1.
  3. Q: Eclipse没有plugin in Project选项?
  4. A: 可以参考这篇博客 http://blog.csdn.net/sidihuo/article/details/40747525
  5. 2.
  6. Q: 启动OSGI Framework发现有很多错误?
  7. A: 可以在Windows->Preferences->Plug-in Development->Target Platform 建立自己的平台
  8. 3.
  9. Q: OSGI框架Eclipse的实现在哪里找到?
  10. A: Eclipse的软件目录下的plugins中可以找到类似这个org.eclipse.osgi_3.3.2.R33x_v20080105.jarjar文件
  11. 4.
  12. Q: 不在Eclipse环境下运行OSGI框架?
  13. A: 只需要在一个目录下建立如下目录
  14. mj@DZ:~/桌面/DemoTest$ tree
  15. .
  16. ├── configuration
  17.    └── config.ini
  18. ├── org.eclipse.osgi_3.4.0.v20080605-1900.jar
  19. └── plugins
  20. └── Demo_1.0.0.jar
  21. Demo_1.0.0.jar文件是自己开发的Bundleplugins文件夹就是存放Bundle的地方,在configuration中存放的是OSGI启动的配置文件,看到这个config.ini,大家有没有感觉很熟悉呢,对,他和我们的eclipse软件目录下的那个config.ini是同样的作用,eclipse这个软件的整体设计也是按照OSGI框架来设计的。下面我们来看一下config.ini里面的内容是什么。
  22. mj@DZ:~/桌面/DemoTest/configuration$ cat config.ini
  23. osgi.noshutdown=true
  24. osgi.bundles.defaultStartLevel=4
  25. osgi.bundles=reference\:file\:plugins/Demo_1.0.0.jar@1:start

目标平台

  1. 如果采用我上面给出的软件来编写程序,那么可以省略第三个步骤,在建立工程时也不会存在一些报错信息,这个是笔者亲测的。
  2. 好了,话不说,开始我们的目标平台移植,这个就要借助我们上一篇的CVM移植篇的平台了,如果还没看,这里提供通道。
  3. https://www.zybuluo.com/cyysu/note/864194
  4. 准备好了环境,那么将我们上面问答里面的文件scp到我们的开发板。执行过程如下。
  5. [root@M3352 opt]# ls
  6. bin/ configuration/ equinox.jar* lib/ plugins/
  7. [root@M3352 opt]# ./bin/cvm -jar equinox.jar -console
  8. osgi> hello osgi!!!
  9. osgi> ss
  10. Framework is launched.
  11. id State Bundle
  12. 0 ACTIVE org.eclipse.osgi_3.3.2.R33x_v20080105
  13. 1 ACTIVE Demo_1.0.0
  14. osgi> stop 1
  15. goobye osgi!!!
  16. osgi> exit
  17. [root@M3352 opt]#

结束语

  1. 移植工作到此就彻底结束了,剩下的工作为上层JAVA开始调用我们的底层C代码,这一部分的内容会放在JNI搭建篇进行讲述。如果本文存在什么不正之处,还请您指出,或者您有什么疑惑地方环境私信交流。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注