基于webkit核心的移动中间件设计

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:sly4352
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  
  摘要:为实现移动设备应用快速开发和跨平台发布的目的,而设计并开发了基于webkit的中间件平台。本文介绍了该中间件的架构和各层的功能。接着介绍了程序开发中的关键工作,对JSCore模块进行扩展。通过对该模块的扩展,增强了中间件平台的功能,充分发挥了移动设备特有的优势。后面介绍了应用开发框架和管理模块。它们的存在,不仅可以加快应用程序开发的速度,而且还为应用程序提供了一个发布交流的平台,使开发者和最终用户更加方便的交流。
  关键词:Android;iOS;webkit;中间件
  中图分类号:TN949.197 文献标识码:A文章编号:1007-9599 (2012) 06-0000-02
  一、设计目的
  目前移动网络终端种类型号繁多,每种类型的终端开发接口不统一,使得同一种应用要在不同的平台上都要进行开发或移植。因为终端设备支持的开发语言和运行库不统一,因此对应用开发者所需的技术要求很高,开发和调试难度也相应增大,从而导致开发周期长,开发费用高。
  为了解决上述问题,对webkit进行封装,并对javascriptcore模块进行扩展,解除webkit作为网页浏览工具的一些限制,使之支持移动终端本地功能调用。基于这样的中间件进行软件开发,既可以实现跨平台的优点,又能够不受浏览器本身特点的限制,从而达到降低开发周期,节省开发成本的目的。本文主要介绍了基于webkit中间件的设计架构,并简要介绍了如何对javascriptcore模块进行扩展,从而增减webkit的功能。
  二、中间件架构设计
  
  图1 中间件架构
  如图1所示,中间件平台采用了四层架构模式:系统适配层、Webkit核心、应用开发框架与管理层以及应用层。
  (一)操作系统:目前移动设备快速发展,其所采用的操作系统非常多。主流的智能系统有Android、iOS和Symbian,另外一些国际大厂还在开发新的操作系统。这就为软件开发带来了很大的难度,不仅开发人员熟悉多种系统平台软件开发知识,还要额外增加软件的开发周期和成本。本中间件设计的目的就是为了屏蔽操作系统的差异性,使同一款软件可以部署到不同的操作系统,从而节省开发周期与费用。
  (二)操作系统适配层:适配层主要解决两件事情:1.适配不同的操作系统;2.提供设备特有的功能:如定位、照相、拨打电话、文件访问等。webkit功能虽然强大,但是其作为浏览器的核心而开发出来,因此其本身存在一些限制:如本地文件的访问、设备特有功能的调用等。因此,我们在本层提供了一些设备特有功能调用的接口,从而丰富与曾加应用软件的功能。
  (三)Webkit核心层:本层包含了webkit的所有功能,并且对JavaScriptCore进行了扩展,使应用开发人员可以像调用js标准接口一样调用扩展接口。本层和系统适配层构成了中间件的核心。通过他们配合,就可以进行应用的开发和调试了。
  (四)应用开发与管理层:为了方便应用程序的开发工作,本层提供了一些基本的功能,如页面跳转、js加载、footer、header加载等功能。为了使多个应用共存与更新,本层还提供了下载、注册与卸载功能。在应用浏览界面,不仅可以方便的查看与搜索服务器上提供的所有应用,还可以进行应用程序的下载、更新和删除等操作。从而方便中间件用户获取更多、更新的应用程序。
  (五)应用层:应用开发人员可以使用应用框架快速的进行程序开发,是应用程序方便的与自己的服务器进行数据交换与展示。因为中间件是基于webkit进行开发的,所以开发应用程序和开发网页使用的技术完全相同。程序的布局、调试很大一部分工作都可以在本地浏览器里面进行,而不必使用模拟器调试。因此使用中间件进行开发,对于页面开发人员来说,学习成本几乎为零。
  三、JavaScriptCore功能扩展
  为了不增加应用程序开发的复杂性,移动设备特殊功能的提供都采用javascript接口的方式提供。因此,进行JavaScriptCore功能扩展是中间件开发的一个重要工作,主要步骤如下:
  (一)添加TestObject.h, TestObject.cpp, TestObject.idl三个文件,并放到Source/WebCore/page目录下。
  TestObject.h内容如下,主要完成类的定义:
  #ifndef TestObject_h
  //头文件引用 "PlatformString.h"
  namespace WebCore
  class TestObject : public RefCounted
  public:
  static PassRefPtr create() return adoptRef(new TestObject());
  String showTest() const;
  private:
  TestObject();
  #endif
  TestObject.cpp文件内容如下,用来实现类的各种功能。在实际开发中,会把这些内容以第三方组件的形式提供:
  #include "config.h"
  #include "TestObject.h"
  namespace WebCore {
  TestObject::TestObject() { }
  String TestObject:: showTest () const
  return "Here is test"; stObject.idl文件内容如下:
  module window {
  interface [OmitConstructor] TestObject {
  readonly attribute DOMString showTest;
  (二)更改Source/WebCore/page/下的DOMWindow.h文件,完成注册功能:
  class TestObject;
  //……
  public:
  TestObject* testObject() const;
  TestObject* optionalTestObject() const { return m_testObject.get(); }
  private:
  mutable RefPtr m_testObject;
  (三)更改Source/WebCore/page/下的DOMWindow.cpp文件,添加接口实现:
  TestObject* DOMWindow::testObject() const
  if (!m_testObject)
  m_testObject = TestObject::create();
  return m_testObject.get();
  (四)在DOMWindow::clear()函数中添加下面代码,完成JS对象清除工作:
  m_testObject = 0;
  (五)更改DOMWindow.idl文件,添加:
  attribute [Replaceable] TestObject testObject;
  通过以上步骤就可以完成对jscore的扩展工作。完成编译后,就可以在javascript代码中调用testObject. showTest,以检测添加是否成功。
  四、应用框架与管理:
  应用框架主要包括下面一些功能:
  (一)页面代码加载:把JS数组里面保存的页面加载到现有的框架中。其中页面框架由三部分组成:标题(title)、内容(content)和页脚(footer)。对于这种形式的应用,采用框架开发非常便利。
  (二)JS代码加载:根据不同的页面,加载不同的JS代码。虽然这里进行了JS的切换,但是只要把全局变量定义到公有js中,就可以实现变量的全局化。
  (三)小工具:为了减小代码体积,我们提供了一个小工具,可以方便的把html代码转换成JS数组。这样做不仅可以减少代码的体积,同时还可以间接实现全局变量,增加程序的灵活性。
  应用程序管理:
  为了方便程序的共享,我们开发了一个基于中间件的程序管理应用。该应用和我们的应用发布服务器进行通讯,可以实时获得服务器上面发布的所有应用。在管理程序中,主要提供了以下功能:程序浏览、搜索、下载、卸载、评论、推荐等功能。不仅可以方便用户的使用,还可以返回用户的使用心得,以便于程序的改进。
  五、小结
  本文介绍了基于webkit中间件的设计,通过测试和应用开发可知,它不仅可以方便应用程序的跨平台开发,而且降低了开发周期和难度。对于快速开发与部署应用,有着极大地优势。中间件通过对javascriptcore的扩展,可以方便的使用移动设备本地的一些特殊功能。因此,弥补了把webkit直接作为中间件的不足,扩大了其应用的范围。
  参考文献:
  [1]蒋章概,陈榕.基于CAR构件的WebKit本地扩展策略[J].计算机应用,2009(29):195-197
  [2]李中跃,郭萍.Webkit中 JsCore的扩展方法[J].辽宁省交通高等专科学校学报,2009(11):16-18
  [3]构建webkit环境[DB/OL].2012-03-14 http://www.webkit.org/building/tools.html
  [作者简介]
  郑允升(1982-),男,江苏徐州人,硕士研究生,主要研究方向为嵌入式系统开发、浏览器开发;
  袁军(1984-),男,山东烟台人,硕士研究生,主要研究方向为计算机图形学,嵌入式系统开发;
  
其他文献
摘要:研究制川乌白芍配伍药对的不同配伍比例在水煎液环境中对总生物碱含量的影响,探讨配伍规律的科学性和合理性。采用酸性染料比色法测定乌头类总生物碱的含量。结果与制川乌单煎液相比较,制川乌白芍1:1,2:1配伍组含量降低,而2:3,1:2配伍组含量升高。在各配伍组中,总生物碱含量大小为制川乌白芍2:3>1:2>2:1>1:1。在制川乌配伍白芍各配伍组中,总生物碱含量呈现升高趋势,为不同配伍关系在临床使
多功能显示器的总体设计方案,从硬件平台设计、可靠性设计、安全性设计、维修性设计、舒适性设计、环境适应性设计多方面综合设计。
随着网络的日益扩展和网络技术的飞速发展,网络开展业务获得巨大空间的同时,在网络管理方面也提出了更高的质量要求。在网络管理中,存在着一系列的问题,制约网络管理的科学发展。
描述了侧装药金属风暴武器系统内弹道的物理过程,建立了内弹道数学模型,并以发射五发某枪弹为例进行了计算.计算结果表明:射击频率越高,相邻两发弹间的内弹道过程耦合现象越
毗邻颗粒链球菌为兼性厌氧、触酶阴性的革兰阳性球菌,是人类口腔、泌尿生殖道和肠道的正常菌群,宿主免疫力低下时可引起各种机会感染[ 1 ]。我们于2018年5月13日从发热患者1
摘要:引入了基于XML的Web服务框架检索,可以解决当前在UDDI中存在的问题。它位于UDDI顶部,使用UDDI的数据项和WSDL文件,它提供Web服务的查询结果排名并找到替代Web服务相似性度量。此外,我们讨论改善此Web服务检索框架性能所需的相关工作和特征。  关键词:XML;WEB服务;检索;评价  中图分类号:TP391.3 文献标识码:A 文章编号:1007-9599 (2012) 19