小部件的介绍

  

,,,小部件的字面意思是小部件,所以在PC端和手机客户端,能漂浮在桌面或者网页的的独立小窗口程序都叫做部件。

  

,,,先来介绍一下PC端部件。其中网页小部件最为简单,只是一段html和js代码,浏览器在显示网页的同时,执行这段代码,从而呈现出小部件效果。将此技术发挥到极致的是WebQQ。

  

,,,比较复杂的是桌面小部件。以下部件都指的是桌面小部件。

  

,,,首先,来了解一下操作系统的UI框架:

  

,,,内核层,- - - - - -→,图像层,- - - - - - - - - -在桌面层(以独立的进程存在),

  

,,,Mac系统和Windows系统框架一致,只是每层的实现及API不同。如果想实现一个部件程序,在UI功能上就必须和桌面层进行交互,甚至更底层地和图像层进行交互,从而实现桌面的定制效果和自身的图像展示。但是每个部件都这样实现,工作量巨大,所以业界仿造网页小部件的模式,先开发出一个桌面小部件引擎,来封装和底层操作系统交互的部分。而每个部件应用都只是一个javascript、html、css或falsh脚本的打包。

  

,,,关于部件引擎,首先是根据不同操作系统定制的mac系统有自带的引擎,Windows7多也有,叫做gidget.Google,雅虎等大公司也实现了自己的小部件引擎,这些第三方的引擎和操作系统自带的引擎相比,不同点在于操作系统自带的引擎可以调用很多操作系统自带的功能,而第三方的引擎却可以维护一个自己的小部件生态环境,原因是每个部件引擎都有自己专有的部件应用库,类似苹果的应用模式,这就涉及到另一个问题,小部件引擎面向小部件程序的API标准。现在的情况是:每个引擎虽然支持的语言基本都是js、html、css等,但都有自己的API标准。这造成的情况是,用脚本写的一个小部件应用只能在指定的引擎上运行,而在其他引擎上却不行,至少需要改50%的代码量。针对这种情况,有公司和机构推行统一widget API协议,但是只推广了50%,况且还有的引擎还支持c++, c#,烦恼js。

  

,,,(小部件引擎部分功能需要用到浏览器引擎部分模块)

  

,,,下面来谈一下手机端的部件。手机操作系统厂商摒弃了引擎执行脚本的小部件模式,比如android自带的小部件框架,运行开发者用java和xml进行开发,即和传统的android应用程序一样,而iOS的仪表板框架(它是类部件效果,你也可以通过和iOS的图像层,桌面层进行底层交互,开发出真正的部件应用,当然这违背了iPhone的界面设计理念)也只开放了obj-C接口。然而第三方公司也积极在手机端布局自己的小部件引擎,类似桌面上做的那样,幻想形成自己手机端部件生态系统。比如中国移动公司,有自己的引擎,仅限于android,并提出了自己的一套API标准;91年手机助手也实现了自己的小部件引擎,但是她里面的部件应用很少,且基本上都是自己的开发的。

  

参考链接:http://zhidao.baidu.com/question/165925753.html
  http://www.docin.com/p - 83005256. - html
  http://blog.csdn.net/wanghero/article/details/4159832
  http://www.zte.com.cn/cndata/magazine/zte_communications/2011/2/articles/201103/t20110323_225089.htm
  http://team.i.sohu.com/blog/view/73357267.htm
  http://cdmd.cnki.com.cn/article/cdmd - 10013 - 2010224799. - htm
  http://news.newhua.com/news/2011/0402/119288_2.shtml
  http://wenku.baidu.com/view/127ad4fe700abb68a982fb7e.html
  http://www.apple.com/downloads/dashboard/sports/106millos.html
  http://it.sohu.com/20081218/n261292433.shtml
  http://blog.tianya.cn/blogger/post_read.asp?BlogID=200349& PostID=18997419
  http://tech.sina.com.cn/s/2011-04-20/18115429700.shtml
  http://wenku.baidu.com/view/8f59c1fe770bf78a65295487.html
  ,

小部件的介绍