文档章节

google-gadget入门

learningloong
 learningloong
发布于 2010/09/24 17:52
字数 1317
阅读 691
收藏 1


一、什么是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”

本文转载自:http://learningloong.blog.163.com/blog/static/162308124201082310207226

共有 人打赏支持
learningloong
粉丝 4
博文 16
码字总数 0
作品 0
长春
私信 提问
Google 收购 iGoogle gadgets 开发公司 Labpixies

为了满足用户对于个性化首页的需求,Google 于 2005年发布了支持 gadget 的 iGoogle, 而 Labpixies 正是第一批为 iGoogle 开发 gadget 的公司之一。在随后的几年内,Google 和 Labpixies 在...

红薯
2010/04/27
631
1
Gadget Runner

这个Chrome扩展可以直接打开iGoogle的gadget小程序,也就是说数以千计 的iGoogle gadget都可以直接嵌入到Chrome里,在任何时间一键调用比如: 嵌入YouTube 嵌入Google Street View街景 嵌入F...

匿名
2010/01/04
500
0
Portal和OpenSocial

最近有个任务,就是要做一个像Igoogle一样可以拖拽的页面,然后开发一些小控件,可以动态维护和布局。之前没有接触过,感觉可能就是些JS,外加两张表存储控件位置,觉得应该还能实现,就试着...

wuxian_Abs
2014/09/12
0
0
OpenSocial容器--Shindig

shindig是apache的一个开源项目,实现了google的opensocial容器开源项目。 提供了一个开源的Open Social容器。有了它,就可以轻松支持Open Social啦,目前它提供了java和php两种版本。 下图是...

匿名
2008/10/29
18.8K
0
SideShow Gadget本地存储实现

1、说明 标准的Sideshow设备连接PC后,由PC上Sideshow管理中心负责向Sideshow设备添加Gadget应用,该Gadget实例被Sideshow设备缓存到内存中。当Sideshow设备未连接PC,掉电重启后,所有原先添...

技术小美
2017/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

第二个JAVA应用

第二个JAVA应用 方法一:配置文件: # cd /usr/local/tomcat/conf/# vim server.xml</Host> <Host name="www.wangzb.cc" appBase="/data/wwwroot/www.wangzb.cc" //引用所......

wzb88
18分钟前
0
0
2019年阿里Java面试必问:JVM与性能优化+Redis+设计模式+分布式

前言 一年之计在于春 金三银四已经要到来,2019的新的开始,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度? 面试:如果不准备充分的面试,完全是浪费时间,更是对...

火力全開
27分钟前
0
0
详解:Redis主从技术的应用

Redis复制 在生产环境中,Redis通过持久化功能(RDB和AOF技术)保证了即使在服务器重启的情况下也不会损失(或少量损失)数据。但是由于数据是存储在一台服务器上的,如果这台服务器出现硬盘...

问题终结者
32分钟前
0
0
RocketMQ高性能之底层存储设计

说在前面 RocketMQ在底层存储上借鉴了Kafka,但是也有它独到的设计,本文主要关注深刻影响着RocketMQ性能的底层文件存储结构,中间会穿插一点点Kafka的东西以作为对比。 例子 Commit Log,一...

薛定谔的旺
44分钟前
4
0
实战:基于Spring Boot快速开发RESTful风格API接口

写在前面的话 这篇文章计划是在过年期间完成的,示例代码都写好了,结果亲戚来我家做客,文章没来得及写。已经很久没有更新文章了,小伙伴们,有没有想我啊。言归正传,下面开始,今天的话题...

JAVA_冯文议
52分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部