google-gadget入門


1、什麼是google-gadgethtml

1.         google-gadgetgoogle的桌面小應用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 scriptxml文件,並用本平臺上的圖形程序顯示出來
如:在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」

相關文章
相關標籤/搜索