程式總結:
通過和各位兄弟們交流,收穫不小,下面是我對這個程式運行機制的初步總結,可能不100%正確,錯誤之處希望大家指正。
0)準備:
啟動指令碼af***.sh,將最後面有一處"hildon-desktop"的注釋掉,再運行
>af***.sh start
如果不注釋,將啟動原來的圖形介面了。
1)編譯:
目前的目錄為src,命令:
>cd ../
>make
只運行make即可,這樣會在src目錄下產生一個hildon-desktop,這是一個指令檔,實際的可執行檔在./.libs/hildon-destop中,但是運行兩者沒有什麼區別。
2)運行
命令:
>cd src/
>run-standalone ./hildon-desktop
**************以上內容對大家沒有用,這裡開始有用資訊*****************************
程式會讀取設定檔,然後再根據設定檔載入,最後將圖形顯示出來。ctrl+c終止。
(具體名字記不住了,所以上面命令或者檔案名稱可能有些錯誤)
3)設定檔:
~/.osso下面的設定檔都是***.conf的,描述了外掛程式的全域屬性,供程式讀取,並且它將有某個欄位連向相應的***.desktop檔案。
/usr/share/application/hildon下面的檔案就是***.conf指定的***.desktop檔案,該檔案描述了外掛程式的具體屬性,其中包括某個欄位,該欄位指向運行外掛程式的具體模組一般為***.so檔案。我們要編寫的大概就是這個檔案吧。
**************以上內容對代碼可能沒用這裡是分析******************
4)程式碼分析:
在上次的基礎上我進一步分析了hd_desktop_load_containers,現在把它的大體過程寫出來:
hd_desktop_load_containers(...)
{
初始設定變數;
載入設定檔到keyfile;
for(每個外掛程式)
{
通過keyfile讀取設定檔中的各種參數資訊;
如果是home外掛程式
{
載入相應於home的資訊;
根據載入的資訊建立該外掛程式;
}
如果是panel外掛程式
{
載入相應於panel的資訊;
如果是panel中的非擴充外掛程式
{
建立非擴充panel(就是左側的);
}
如果是panel中的擴充外掛程式
{
建立擴充panel(就是頂部的"statusbar");
}
}
如果既不是home也不是panel
{
警示告;
}
為外掛程式連結訊號和回呼函數;
載入和顯示外掛程式;
}
釋放資源;
}