1、什么是google-gadgethtml
1. google-gadget:google的桌面小应用java
2. 通常窗口不大,看起来很炫(窗口不一样区域可设置不一样透明度),能够随意移动,叠放,能够显示在普通应用之上(置顶)linux
3. 想一想看,把实时汇率gadget拖到桌面上置顶,你能够一只眼写着文档,一只眼扫着你的股票外汇和期货;打开multinote记事本,列上一天的日程表,随时编辑,而不用在应用之间切来切去……ubuntu
2、原理及实现api
1. 组成
google-gadget由两部分组成:桌面应用程序+gadget引擎浏览器
2. 桌面应用程序网络
1) gg文件
桌面应用程序通常是以.gg为扩展名的文件
gg文件为zip压缩文件,只是扩展名为gg
gg文件能够本身编写,也能够从网上下载
它能够是本地应用,也能够是网络应用,通常网络应用使用https协议链接
实现逻辑的语言用java script框架
2) 一个桌面应用的组成curl
a) main.xml 程序主框架实现的xml文件,含界面和函数调用函数
b) main.js 程序主逻辑实现的java script脚本,主要函数的实现
c) gadget.gmanifest 属性文件,双击它可运行程序
d) en/strings.xml 语言文件,用于本地化
e) background.png 背景图,支持透明背景
f) icon_large.gif 大图标
g) icon_small.gif 小图标
3) 运行gadget桌面应用程序
a) 在window平台上,双击gg文件启动应用(启动前需安装过google桌面
b) 在Linux平台上,双击gg文件启动应用(启动应用前,需先启动引擎)
c) 程序不须要编译,经过引擎运行在各个平台上
4) 使用场景
它能够做为一个独立的应用好比小工具,游戏之类,有其界面中操做;也能够做为漂亮的桌面图标,经过它开启其它应用
3. gadget引擎
1) gadget引擎解析java script和xml文件,并用本平台上的图形程序显示出来
如:在linux平台写桌面应用,通常用gtk/qt这些图形化工具,写代码编译后执行,而gadget应用是用java script编写逻辑,用xml描述界面后,打包成gg文件(不用编译),运行时gadget引擎把它翻译成了gtk或者qt程序,而后运行,它屏蔽了不一样平台,不一样程序设计语言不一样的细节。即便你对某个平台不熟悉,也能够轻松地写程序了。
2) 只要把gadget引擎移植到手机之类的嵌入式系统中,系统就能够运行各类gadget应用,和浏览器比起来,灵活,流量还小,系统资源占用小
3、安装google-gadget
1. Windows
http://desktop.google.com/
点击安装google桌面
2. Linux
按网页 http://code.google.com/p/google-gadgets-for-linux/wiki/HowToBuild 安装
如下是我在安装时遇到的问题,和简要步骤
1) 操做系统
我使用ubuntu 8.04 DVD版,可正常安装
也试过suse, 可是由于编译器版本的差别,老是编不过
2) 下载源码
http://google-gadgets-for-linux.googlecode.com/files/google-gadgets-for-linux-0.10.5.tar.bz2
3) 安装依赖包
$ apt-get install libmozjs-dev libgstreamer-plugins-base0.10-dev libcurl3-openssl-dev libdbus-1-dev libxul-dev
安装时若提示某个包没法安装,多是系统默认的软件源不包含该软件,须要从新指定软件源
$ vi /etc/apt/sources.list 写入新的软件源
$ apt-get update 使刚设置的软件源生效
如下网站中列出了不少可用的软件源,我试过台湾的那个速度很快
http://hi.baidu.com/leonkuo1984/blog/item/6624fe3db1b4d1e83c6d976d.html
4) 编译
$./configure
$ make; make install
5) 运行gadget引擎
$ ggl-gtk
此时在工具条上能看到四个小方块的图标,点开它的菜单,能够添加gadget和打开侧栏等
4、gadget引擎代码介绍(Linux中源码gtk部分为例)
1. 每一个桌面应用开启两个独立gtk窗口(独立窗口),一个窗口是应用的内容,另外一个用于显示菜单区域
2. 窗口不一样区域显示不一样透明度的效果效果经过cairo实现,gtk的基本控制只能设置窗口的异形和总体透明度
3. 代码google-gadgets-for-linux-0.10.5/ggadget/gtk/single_view_host.cc是桌面应用对应gtk窗口的源码,能够经过修改它来改变桌面风格及窗口逻辑
5、写gadget桌面应用程序
1. 建立一个新的gardge应用
1) 教程
http://code.google.com/intl/zh-CN/apis/desktop/docs/Tutorials/GadgetDesigner/index.html
2) 注意
若是有些版本的gadget designer没法自动生成gg包,以使用如下方法
a) 进入新建应用的目录,选中全部文件
b) 点右键,选添加到压缩文件
c) 设置生成压缩文件的位置为上层目录,并指定ZIP压缩
d) 把生成的压缩包扩展名改成.gg,便可正常运行
2. 修改一个已有的gardet应用
1) 教程
http://code.google.com/intl/zh-CN/apis/desktop/docs/Tutorials/ModifyHelloWorld/index.html
2) 用一个应用改出别一应用时,记住要在gadget.gmanifest文件中修改id号,由于同时不能运行两个ID号同样的应用
若没有ID号生成工具,能够google上查关键字”uuid generator”