google gadget学习

来源:互联网 发布:kali linux入侵教程 编辑:程序博客网 时间:2024/06/11 23:49

 

一、什么是google-gadget

1.         google-gadgetgoogle的桌面小应用

2.         一般窗口不大,看起来很炫(窗口不同区域可设置不同透明度),可以随意移动,叠放,可以显示在普通应用之上(置顶)

3.         想想看,把实时汇率gadget拖到桌面上置顶,你可以一只眼写着文档,一只眼扫着你的股票外汇和期货;打开multinote记事本,列上一天的日程表,随时编辑,而不用在应用之间切来切去……

二、原理及实现

1.         组成
google-gadget
由两部分组成:桌面应用程序+gadget引擎

2.         桌面应用程序

1)        gg文件
桌面应用程序一般是以.gg为扩展名的文件
gg
文件为zip压缩文件,只是扩展名为gg 
gg
文件可以自己编写,也可以从网上下载
它可以是本地应用,也可以是网络应用,一般网络应用使用https协议连接
实现逻辑的语言用java script

2)        一个桌面应用的组成

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 scriptxml文件,并用本平台上的图形程序显示出来
如:在linux平台写桌面应用,一般用gtk/qt这些图形化工具,写代码编译后执行,而gadget应用是用java script编写逻辑,用xml描述界面后,打包成gg文件(不用编译),运行时gadget引擎把它翻译成了gtk或者qt程序,然后运行,它屏蔽了不同平台,不同程序设计语言不同的细节。即使你对某个平台不熟悉,也可以轻松地写程序了。

2)        只要把gadget引擎移植到手机之类的嵌入式系统中,系统就可以运行各种gadget应用,和浏览器比起来,灵活,流量还小,系统资源占用小

三、安装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和打开侧栏等

四、gadget引擎代码介绍(Linux中源码gtk部分为例)

1.         每个桌面应用开启两个独立gtk窗口(独立窗口),一个窗口是应用的内容,另一个用于显示菜单区域

2.         窗口不同区域显示不同透明度的效果效果通过cairo实现,gtk的基本控制只能设置窗口的异形和整体透明度

3.         代码google-gadgets-for-linux-0.10.5/ggadget/gtk/single_view_host.cc是桌面应用对应gtk窗口的源码,可以通过修改它来改变桌面风格及窗口逻辑

五、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”

 

原创粉丝点击